From: Akira Hayakawa <ruby / i-mail.jp>
Subject: [ruby-list:45450] Re: sudo: gem: command not found
Date: Sun, 31 Aug 2008 12:50:51 +0900

おそらく「sudo ruby -S gem」で解決していると思いますが…

「sudo jruby -S gem install <package_name>」は
「sudo /usr/local/jruby/bin/jruby -S gem install <package_name>」と
する必要があると思います。うっかりしていました。

面倒ならばシェルエイリアスで。

> やはりjruby/bin経由だと、sudoが許してくれないという仕様なんですか。

おおかたrootの$PATHに /usr/local/jruby/bin が含まれていないからでしょう。

$ sudo sh -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

> 何ででしょう。利益ないと思いますが。

セキュリティの観点からrootの$PATHは最小限にしておくべきです。
$PATHが通ってない実行ファイルをsudoで実行するには、
フルパスで指定しなさいということだと思います。

> /usr/local/binにシンボリックリンク貼って逃げるのは簡単ですが、
> 以降すべて、jruby/binを回避する為にシンボリックリンクを貼るハメになりませんか?

コンピュータの世界では「yak shaving」が日常茶飯事です。○○を解決するに
は××を解決しないといけない、××を解決するには△△を解決しないといけ
ない〜という感じで、すべての問題にまじめに取り組むと(人間が)スタック
オーバーフローしてしまいます。だから、とりあえず逃げの一手を打ってオー
バーフローを防ぐことはよくやります。

シンボリックリンクという逃げの一手を打って、先に問題『EmacsでのRuby環境
を整える』を解決したほうが精神衛生上良いと思います。解決したら改めてシ
ンボリックリンクを削除し、sudoの問題解決をしてみては。

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/