2009年7月29日水曜日

Ubuntu の alternative システム

alternative システムは、
同じ機能をもつ複数のプログラムを一つのシステムにインストールして、 共存させることを可能とする仕組みだそうです。
(そんな仕組みがあって、知らず知らずのうちに使っていたとは…)

例えば、java というコマンドをたどっていくと、/etc/alternatives/java にシンボリックリンクが張られています。
さらにその先は、/usr/lib/jvm/java-6-sun/jre/bin/java にリンクが張られていたりします。

$ which java
/usr/bin/java

$ ll /usr/bin/java
lrwxrwxrwx 1 root root 22 Jun 30 09:29 /usr/bin/java -> /etc/alternatives/java

複数の java のパッケージをインストールした場合、alternatives の設定を変更することで、
どの java コマンドを使うか明示的に切り替えることができます。
PATH の設定を変えても java が切り替わらない方は、この設定を確認すると良いと思います。

alternatives の設定を変更するには、update-alternatives コマンドを使います。
自分でシンボリックリンクを張り替えるよりは、このコマンド使った方が安全そうです。

java コマンドの実態を java-6-sun に切り替える場合は、以下のようにします (番号を選択)。

# update-alternatives --config java

There are 4 alternatives which provide `java'.

 Selection    Alternative
-----------------------------------------------
         1    /usr/bin/gij-4.2
 +        2    /usr/lib/jvm/java-gcj/jre/bin/java
         3    /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
*         4    /usr/lib/jvm/java-6-sun/jre/bin/java

Press enter to keep the default[*], or type selection number: 4
Using '/usr/lib/jvm/java-6-sun/jre/bin/java' to provide 'java'.

参考:
http://manpages.ubuntu.com/manpages/hardy/ja/man8/update-alternatives.8.html

関連情報:
まさおのブログ (表): Ubuntu 複数インストールされている java を切り替え

2009年7月28日火曜日

Ubuntu でパッケージのソースコードを入手する

あるコマンドのソースコードを調べてみたいとか、見てみたいということがあります。
そんなときは apt-get で簡単にソースコードを取ってくることができます。

以下は dig コマンドのソースを取ってくる場合の例。

1. which コマンドで dig コマンドの保存場所を調べます。

# which dig
/usr/bin/dig

2. dpkg コマンドで dig コマンドが含まれるパッケージを調べます。

# dpkg -S /usr/bin/dig
dnsutils: /usr/bin/dig

3. dnsutils のソースコードを apt-get で取得します。

# mkdir dig
# cd dig
# apt-get source dnsutils

4. ls で見るとこんな感じになります。

あとは bind9-9.4.2.dfsg.P2 ディレクトリ内を調べます。
他のコマンドでも同様のやり方でいけます。

# ls
bind9-9.4.2.dfsg.P2                     bind9_9.4.2.dfsg.P2-2ubuntu0.1.dsc
bind9_9.4.2.dfsg.P2-2ubuntu0.1.diff.gz  bind9_9.4.2.dfsg.P2.orig.tar.gz

Ubuntu でマニュアルをインストール (manpages-ja, manpages-ja-dev)

Ubuntu では、関数系のオンラインマニュアルが、デフォルトではインストールされません。
以下のようにしてインストールします。

# apt-get install manpages-ja
# apt-get install manpages-ja-dev

2009年7月27日月曜日

[Obsolete] Ubuntu で DHCP サーバ

この投稿は古くなりました (2013/06/19)。
こちらを参照してください。
まさおのブログ (表): Ubuntu で DHCP サーバ

Ubuntu で DHCP サーバの設定をするときのメモ。

今回の例では、eth1 に DHCP サーバの設定をします。
(eth0 側には DHCP サーバを立てません)
そのうち、Ubuntu をルータにします。今回はその前準備ということで。

1. dhcp3-server をインストールします。

# apt-get install dhcp3-server

2. DHCP サーバを立てるインターフェイスを eth1 に限定します。

# vi /etc/default/dhcp3-server
INTERFACES=""
↓
INTERFACES="eth1"

3. dhcpd.conf を編集します。

設定例。ちなみに eth1 の IP アドレスは 192.168.10.1 です。
その他、細かい設定の説明は省略。
domain-name は適当に。

# vi /etc/dhcp3/dhcpd.conf
option domain-name "hogehoge.local";
option domain-name-servers 192.168.10.1;

default-lease-time 600;
max-lease-time 7200;

subnet 192.168.10.0 netmask 255.255.255.0 {
 range 192.168.10.10 192.168.10.30;
 option domain-name-servers 192.168.10.1;
 option domain-name "hogehoge.local";
 option routers 192.168.10.1;
 option subnet-mask 255.255.255.0;
 option broadcast-address 192.168.10.255;
 default-lease-time 600;
 max-lease-time 7200;
}

Ubuntu の emacs で alt+<, alt+> が効かない

Ubuntu の Emacs で alt+<, alt+> が、なぜか効かない。
alt+< : ファイルの先頭に移動
alt+> : ファイルの最後に移動
(Esc+<, Esc+> は効くのに)

Emacs 使いには、必須のキーバインドなんですが、レイアウト(なんだこれ?)のキーバインドになっていました。
その設定を解除します。

ツールバーの 「システム」 → 「設定」 → 「キーボード」
「キーボードの設定」 の 「レイアウトタブ」を選択し、
「レイアウトのオプション」 で 「Layout switching」 を選択、
Alt+Shift change layout. のチェックを外します。

この設定はインストールの度にしないといけないのか? むむっ。

2009年7月26日日曜日

Ubuntu で FTP サーバを設定する

Ubuntu で FTP サーバを立てるときのメモ。
FTP デーモンはいろいろあるのですが (pureftpd, proftpd, vsftpd,...) Fedora の時も使っていた vsftpd にします。

1. vsftpd をインストールします。

# apt-get install vsftpd

2. vsftpd.conf を書き換えます。

# vi /etc/vsftpd.conf
anonymous_enable=YES
local_umask=022
local_enable=YES
(設定するのは、ひとまずこれぐらいですね)

3. vsftpd を再起動します。

# /etc/init.d/vsftpd restart

4. 他の端末からアクセスできるか確認します。

192.168.0.1 は、設定した端末の IP アドレス。

$ ftp 192.168.0.1

/home/ftp が anonymous FTP サーバの root になります。

5. ローカルユーザで、ホームディレクトリにログインしたい場合。

下記の設定が必要。

# vi /etc/vsftpd.conf
(下記を追加)
allow_writeable_chroot=YES
# chmod a-w /home/user

■ 2009/07/30 追記:

設定に local_enable=YES を追加しました。

■ 2014/04/19 追記:

ローカルユーザで、ホームディレクトリにログインしたい場合の設定を追加。

● vsftpd, Ubuntu, FTP, ftp, サーバ, サーバー, server, 設定

2009年7月25日土曜日

proxy サーバ経由で git を使う方法

proxy サーバの配下で git を使う方法です。調べると結構引っかかりました。
参考にさせていただいた方々に感謝。とても重宝しています。

1. まず、corkscrew をインストールします。

# apt-get install corkscrew

2. git-proxy.sh を作成します。

proxy.hogehoge は proxy サーバ名。

# vi /usr/local/bin/git-proxy.sh
#/bin/bash
CORKSCREW=`which corkscrew`
$CORKSCREW proxy.hogehoge 8080 $1 $2

3. git-proxy.sh に実行権を与えます。

# chmod 755 /usr/local/bin/git-proxy.sh

4. ~/.bashrc に以下を追加します。

# vi ~/.bashrc
export GIT_PROXY_COMMAND=/usr/local/bin/git-proxy.sh

5. あとは通常通り、git を使用します。

参考:
http://mkosaki.blog46.fc2.com/blog-entry-700.html
http://d.hatena.ne.jp/rx7/20080703/p1
まさおのブログ (表): Android ソースを http 経由で取得する ( corkscrew 無しで )

● git, proxy, corkscrew, プロキシ, 経由

2009年7月23日木曜日

[Obsolete] 文字列検索に Perl の ack コマンドを使う

この投稿は古くなりました (2011/1/19)。
こちらを参照してください。
まさおのブログ (表): grep -r のかわりに ack-grep を使う

ちょっとした文字列の検索には grep を使いますが、いくつかのディレクトリをまたいだりする場合は、Perl の ack を使った方が早いです。

インストールは以下のようにやります。

# cpan App::Ack

使い方は以下の通り。サブディレクトリ以下も検索してくれます。

$ ack hogehoge
  (hogehoge を検索)
$ ack -i hogehoge
  (-i: 大文字小文字を区別しない)

● cpan, ack, perl

Ubuntu に ssh でアクセスできるようにする

Ubuntu はデフォルトで ssh デーモンがインストールされていません。
次のコマンドでインストールしてやる必要があります。

# apt-get install openssh-server

以上です。

2009年7月22日水曜日

Ubuntu で Samba

Ubuntu で Samba の設定。
(smb.conf のコメントに writable がないのはなぜだろう)

1. まず、samba をインストールします。

# apt-get install samba

2. Samba アクセス用のパスワードを設定します。

# smbpasswd -a UserName
(UserName の部分は適当に書き換えます)

3. smb.conf を編集します (ホームディレクトリを共有する場合の例)。

writable 以外の項目はコメントアウトされているのを外して編集。
writable = yes は追加します。

# vi /etc/samba/smb.conf
[homes] セクションを以下のように編集
  comment = Home Directories
  browseable = yes
  create mask = 0644
  directory mask = 0755
  valid users = %S
  writable = yes

4. samba デーモンを起動します。

# /etc/init.d/samba start
または
# /etc/init.d/smbd start
# /etc/init.d/nmbd start

5. sysv-rc-conf で起動時に Samba が起動するように設定します。

この設定は不要かもしれません。インストール時に起動するように設定されるかも。

# sysv-rc-conf
samba の RunLevel 2345 を有効にします。

6. Windows からアクセスできるか確認します。

エクスプローラで \\192.168.0.1\UserName でアクセスできるか確認。 パスワードを聞かれたら、2. で設定したパスワードを入力。

2009年7月18日土曜日

[Obsolete] Ubuntu で Synergy を設定する (obsolete)

この投稿は古くなりました (2013/5/20)。
こちらを参照してください。
まさおのブログ (表): Ubuntu 12.04 で Synergy を設定する

Ubuntu で Synergy を使うときのメモ。

1. synergy をインストールする

# apt-get install synergy

2. /etc/gdm/Init/Default を編集する

# vi /etc/gdm/Init/Default
末尾 exit 0 の前に以下を挿入
/usr/bin/synergyc 192.168.0.1     (192.168.0.1 は Synergy サーバの IP アドレス)

3. システム→セッション→自動起動するプログラムに以下を追加

$ /usr/bin/synergyc 192.168.0.1     (192.168.0.1 は Synergy サーバの IP アドレス)

4. Synergy サーバ側の設定 (省略)

2009年7月17日金曜日

Vim で矩形編集

Linux で設定ファイルとかの編集は Vim を使うことがたびたびあります。
シェルスクリプトや設定ファイルで、複数行のコメントをまとめて外したり、
コメントアウトしたり。
そんなときに必要なコマンドをまとめます。
うまくいかんやん。という場合は、Vim を使ってない可能性があります。
which vi で、Vi の実態が何か辿っていくと良いでしょう。
(vi.tiny だったりする)

矩形選択方法は、編集モードにして、Ctrl-v で始点を決定して、カーソルを移動します。
その後で、以下のコマンドを実行します (他にもありますが、使うのはこれぐらいでしょう)。

コマンド説明
d矩形を削除
I矩形の直前に追記 ("アイ"の大文字)
A矩形の直後に追記
c矩形を置換

以下、編集例。

■ d: 矩形範囲を削除 (コメントを外す場合等)

行頭の # 部分を Ctrl+v 押下後、カーソル移動で矩形選択し、d。

#aaa
#bbb
#ccc
↓
aaa
bbb
ccc

■ I: 矩形範囲の前に追記 (コメントアウトする場合等)

行頭を Ctrl-v 押下後、カーソル移動で矩形選択し、I + # + Esc。

aaa
bbb
ccc
↓
#aaa
#bbb
#ccc

■ A: 矩形範囲の直後に追記 (インデント整形したい場合等)

スペースを挿入したい部分で Ctrl+v 押下後、カーソル移動で矩形選択し、A + (スペース) + Esc)

aaa= 1
bbb= 1
ccc= 2
↓
aaa = 1
bbb = 1
ccc = 2

■ c: 矩形範囲を置換 (まとめてパラメータを置換する場合等)

パラメータ部分を Ctrl+v 押下後、カーソル移動で矩形選択し、c + 0 + Esc)

aaa = 1
bbb = 1
ccc = 2
↓
aaa = 0
bbb = 0
ccc = 0

2009年7月16日木曜日

Excel で今日の日付を入れるショートカット (Ctrl+;)

今日は Excel の小技。

Excel で今日の日付を入れる機会って結構あります。
昨日までは 2009/07/15 と、まじめに打ち込んでいました。
あぁ、そうです 10 年ぐらいはそうしていました。
今日からは Ctrl+; で入れるようにします。

他にも知らないショートカットってあるんだろうなぁ。


2009年7月9日木曜日

Firefox で PDF ファイルが表示できなくなった時の対処法

Windows の Firefox で PDF ファイルが表示できなくなることがたまにあります。
Adobe Reader をアップデートした後とかにダメになることがあります。
Adobe Reader がアップデートしたら、直るかなと思い、
しばらく我慢して、使い続けてみましたが、アップデートしても直りませんでした。
(ちょっとイライラ)

google で調べてみると、本家本元に情報がありました。
Firefox で PDF ファイルを表示する
説明の通りにやっていくと、あっさり解決。
「プラグインを再インストール」のところで直りました。
はやくやっとけば良かったな (反省)。

2009年7月3日金曜日

halt ユーザの作成方法 (Ubuntu)

Fedora で halt ユーザを作る方法を Ubuntu でやってもうまくいきませんでした。
Ubuntu でやる場合は以下の手順でやります。

GUI ログインする場合はシャットダウンできません。
CUI から halt ユーザでログインするとシャットダウンできます。

■ halt ユーザを作成 (今回は uid=14 で設定)

# useradd -u 14 -g 0 -d /sbin halt

■ shutdown 用シェルスクリプトを作成

# vi /usr/local/sbin/shutdown_now
#!/bin/sh
sudo /sbin/shutdown -h now

# chmod 755 /usr/local/sbin/shutdown_now

■ vipw で passwd ファイルを編集

# vipw
halt:x:14:0::/sbin:/usr/local/sbin/shutdown_now

(halt ユーザログイン時に /usr/local/sbin/shutdown_now が実行される)

■ vipw で shadow ファイルを編集

# vipw -s
halt::14427:0:99999:7:::

(halt: の後の * を削除します)

■ sudo 設定を編集

# visudo
halt    ALL=(ALL) NOPASSWD: /sbin/shutdown -h now

2009年7月1日水曜日

Ubuntu で 複数の NIC を使う

Ubuntu で複数の NIC を使用する場合のメモです (Ubuntu 8.04.2 LTS で確認)。
NIC とインターフェイスを明示的に割り当てる場合は、
/etc/udev/rules.d/70-persistent-net.rules を編集します。

ちなみに、Fedora は /etc/modules.conf を書き換えるだけです (説明省略)。

今回の例は、
マザーボードに搭載されている e1000e に eth0 を
PCI バスに差した 3c59x に eth1 を割り当てています。

最後の NAME="eth*" の部分を編集して、割り当てたい番号を設定すれば OK。

# vi /etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x8086:0x10de (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:22:44:66:88:AA", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x10b7:0x9050 (3c59x)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:55", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Ubuntu は NIC を差し替えても、このファイルは書き換わらず、追記されていきます。
なので、別の NIC に差し替えた後で起動すると、2 つしか NIC が無いのに、
eth0, eth2 が有効になります。困ったちゃんです。
そのうち Ubuntu の癖に慣れると思います。