15


7

Ruby Gemsは「コマンドが見つかりません」を返します

Ubuntu 9.10

newgemをインストールしました

gem install newgem

そして私が試みるとき

newgem new_project

私は

[email protected]:~$ newgem newproject
newgem: command not found

echo $ PATHでパスを確認しました

[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/adam/.gem

そして私の宝石環境

[email protected]:~$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.6
  - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/adam/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

私はパスなどでホットではありませんが、上記のすべてのgemディレクトリはパス上にあるので、なぜコマンドを見つけることができませんか?

3 Answer


28


`$ PATH`変数には、Rubyのbinディレクトリへの正確なパスを含める必要があります。 `PATH`にディレクトリを追加しても、そのサブフォルダは含まれません。 binディレクトリを追加してみてください:

export PATH=$PATH:/home/adam/.gem/ruby/1.8/bin

または、 `sudo`を使用してgemをインストールした場合:

export PATH=$PATH:/usr/lib/ruby/gems/1.8/bin

これを `.bashrc`ファイルに追加すると、新しいbashを開くたびにこれを手動で設定する必要がなくなります。


1


RVMを使用する場合(ほとんどの場合)、これは自動的に処理されます。 実際、パスに直接配置すると競合する場合があります。 ただし、使用するにはルビーを設定する必要があります。 コマンドラインでこれらのいずれかを実行します。

rvm use 1.9.3

or

rvm use --default 1.9.3


1


(@ジョン・フランクリンのコメントを盗むだけ)

$ gem environment

「EXECUTABLE DIRECTORY」を教えてくれます。 次に、その値がPATHにあるように(.bashrcまたは他のシェル構成ファイルに)入れます。

export PATH="$PATH:/path/to/bin"

シェルをリロードすると、インストールされたgemを使用できるはずです。