Ruby Gems返回“未找到命令”

时间:2010-03-06 11:22:08

标签: ruby rubygems

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/

我对路径等不热,但上面列出的所有宝石目录都在路径上,那怎么来找不到命令?

3 个答案:

答案 0 :(得分: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 :(得分:1)

如果您使用RVM(大部分都是),那么它将为您解决此问题。实际上直接将它放在你的路径上可能会发生冲突。你必须设置一个ruby来使用。在命令行上运行其中一个。

rvm use 1.9.3

rvm use --default 1.9.3

答案 2 :(得分:1)

(只是偷了@John Franklin的评论)

$ gem environment

会告诉你EXECUTABLE DIRECTORY。然后把你的PATH中的任何值放在那里(在你的.bashrc或其他shell配置文件中)。

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

重新加载你的shell,然后你应该可以使用已安装的gem。