web-dev-qa-db-ja.com

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

Ubuntu 9.10

インストールされたばかりのnewgem

gem install newgem

そして私がしようとすると

newgem new_project

私は得る

adam@adam-ubuntu:~$ newgem newproject
newgem: command not found

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

adam@adam-ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/adam/.gem

そして私の宝石環境

adam@adam-ubuntu:~$ 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ディレクトリはパス上にあるので、なぜコマンドを見つけることができませんか?

20
robodisco

$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を開くたびに手動で設定する必要がなくなります。

30
rubiii

(@John Franklinのコメントを盗むだけ)

$ gem environment

EXECUTABLE DIRECTORY。次に、その値をPATHに(.bashrcまたは他のシェル構成ファイルに)入れます。

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

シェルをリロードすると、インストールされたgemを使用できるようになります。

2
Niels Bom

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

rvm use 1.9.3

または

rvm use --default 1.9.3
1
vish