Ubuntu 10.04 LTS に Ruby をパッケージでインストールした環境で、stompserver をインストールしたのだが、bin/stompserver が見つからない。そこで verbose モードで再イントールしてみた。
$ sudo gem install stompserver -V
(略)
Installing gem stompserver-0.9.9
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/History.txt
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/Manifest.txt
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/README.txt
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/Rakefile
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/STATUS
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/bin/stompserver
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/client/README.txt
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/client/both.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/client/consume.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/client/send.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/config/stompserver.conf
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/etc/passwd.example
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/protocols/http.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/protocols/stomp.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/queue.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/queue/activerecord_queue.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/queue/ar_message.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/queue/dbm_queue.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/queue/file_queue.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/queue/memory_queue.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/queue_manager.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/stomp_auth.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/stomp_frame.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/stomp_id.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/stomp_user.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/test_server.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/lib/stomp_server/topic_manager.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/setup.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/test/tesly.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/test/test_queue_manager.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/test/test_stomp_frame.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/test/test_topic_manager.rb
/var/lib/gems/1.9.1/gems/stompserver-0.9.9/test_todo/test_stomp_server.rb
/var/lib/gems/1.9.1/bin/stompserver
Successfully installed stompserver-0.9.9
1 gem installed
Installing ri documentation for stompserver-0.9.9...
Updating class cache with 1855 classes...
Installing RDoc documentation for stompserver-0.9.9...
$
Ruby をパッケージでインストールするのには慣れていないので var の下とは考えなかった。
$ ls /var/lib/gems/1.9.1/bin/
catstomp prettify_json.rb rake sow stompserver
edit_json.rb rackup rubyforge stompcat thin
$
最初はシンボリックリンクでも張ろうと思ったのだが、/var/lib/gems/1.9.1/bin の下を見ると結構インストールされる。仕方が無いので PATH を切ることにした。
ホームディレクトリ直下の .bashrc に下記を追加した。
export PATH=/var/lib/gems/1.9.1/bin:$PATH
これでうまく行っているのだが、Ubunts の流儀ではシステムワイドの PATH はどこで設定するのだろう。面倒だからそこの設定を変更したいのだが。普通に考えると /etc/bashrc か /etc/profile なのだが、/etc/bashrc は無くて代わりに /bash.bashrc がある。そしてそのファイルの先頭の方に、下記の記述が。
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
また /etc/profile.d というディレクトリがあり、その内容を /etc/profile の中で実行している。アップグレードの際などに上書きされる可能性を考えると、/etc/profile.d にファイルを置いて、ローカルの設定を書くのが良いのかも知れない。
Google 先生に聞いてみると、Q: システムワイドの環境変数を設定するにはどうすればいいですか? という文章が見つかった。対象とするバージョンがかなり低いが、/bash.bashrc に追加しろと。
最初にまあ、/etc/profile.d の下にファイルを作る方法をやってみた。これは失敗。理由は不明。次にやってみたのが /bash.bashrc に追加する方法。これは成功。
$ echo $PATH
/home/sadayuki/bin:/var/lib/gems/1.9.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$
上記のように、$HOME/.profile で追加される /home/sadayuki/bin が先頭になっている。まあ、指示通りなので良しとしよう。