Ruby Gems返回"未找到命令"

rob*_*sco 17 ruby rubygems

Ubuntu 9.10

刚刚安装了newgem

gem install newgem
Run Code Online (Sandbox Code Playgroud)

当我尝试

newgem new_project
Run Code Online (Sandbox Code Playgroud)

我明白了

adam@adam-ubuntu:~$ newgem newproject
newgem: command not found
Run Code Online (Sandbox Code Playgroud)

我通过echo $ PATH检查了我的路径

adam@adam-ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/adam/.gem
Run Code Online (Sandbox Code Playgroud)

和我的宝石环境

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/
Run Code Online (Sandbox Code Playgroud)

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

rub*_*iii 30

您的$PATH变量需要包含Ruby的bin目录的确切路径.添加目录PATH不包括它的子文件夹.尝试通过以下方式添加bin目录:

export PATH=$PATH:/home/adam/.gem/ruby/1.8/bin
Run Code Online (Sandbox Code Playgroud)

或者如果您使用sudo以下方法安装了gem :

export PATH=$PATH:/usr/lib/ruby/gems/1.8/bin
Run Code Online (Sandbox Code Playgroud)

您可能希望将其添加到您的.bashrc文件中,这样您就不必在每次打开新bash时手动设置它.

  • 请注意,在某些版本的Ubuntu上,可以在*/var/lib/gems/1.8/bin*中找到1.8 gem bin路径.此命令也可以方便地将sudo路径添加到bash配置文件中*echo -e'\nexport PATH = $ PATH:/var/lib/gems/1.8/bin'>>〜/ .bashrc* (5认同)
  • 您可以通过运行"gem environment"找到确切的补丁.EXECUTABLE DIRECTORY是您需要的产品线. (2认同)

Nie*_*Bom 9

(只是窃取@John Franklin 的评论)

$ gem environment
Run Code Online (Sandbox Code Playgroud)

会告诉你的EXECUTABLE DIRECTORY。然后像这样(在你的 .bashrc 或其他 shell 配置文件中)把这个值放在你的 PATH 中。

export PATH="$PATH:/path/to/bin"
Run Code Online (Sandbox Code Playgroud)

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

  • 终于!谢谢你的盗窃:) (2认同)