我最近升级到Ubuntu 9.04,我必须使用宝石的问题。 我安装了Ruby,RubyGems的和Rails使用apt-get处理。 该rails
的命令做的工作。
然后我Capistrano的安装和其他宝石,如Heroku的。 为了做到这一点,我用下面的命令:
sudo gem install XXX
当我想用cap
命令它不工作:
bash: cap: command not found
它与其他宝石的命令一样。
难道我有什么特别的事要做,以使宝石命令工作?
我最近升级到Ubuntu 9.04,我必须使用宝石的问题。 我安装了Ruby,RubyGems的和Rails使用apt-get处理。 该rails
的命令做的工作。
然后我Capistrano的安装和其他宝石,如Heroku的。 为了做到这一点,我用下面的命令:
sudo gem install XXX
当我想用cap
命令它不工作:
bash: cap: command not found
它与其他宝石的命令一样。
难道我有什么特别的事要做,以使宝石命令工作?
您可以在其中找到你的宝石所使用的存储gem environment
命令。 例如:
chris@chris-laptop:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.2
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/chris/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
如果你看一下“创业板的路径:”部分中,您可以看到宝石可以存储在两个地方对我的笔记本电脑: /usr/lib/ruby/gems/1.8
或.gem
目录在我家目录。
你也可以看到,可执行文件存储在可执行目录在这种情况下是/usr/bin
。
因为/usr/bin
是我的道路这让我跑cap
, merb
, rails
等。
如果由于某种原因,你的可执行文件目录是不是你的路径上(例如,如果它是/var/lib/gems/1.8/bin),那么你需要更新你的PATH变量。
假设你正在使用bash shell。 您可以通过键入在shell提示符下当前会话很快做到这一点; 让我们假设你想添加/var/lib/gems/1.8/bin
的路径:
export PATH=$PATH:/var/lib/gems/1.8/bin
然后按回车键。 这追加新路径到当前路径的末尾。 注意之间的冒号$PATH
和/var/lib/gems/1.8/bin
要为您将需要编辑或者您的所有会话设置的值.profile
或.bashrc
的文件和相同的行添加到文件的末尾。 我通常编辑我.bashrc
比这就是我一直在做的以外,没有理由的文件。 完成后,保存文件,然后通过键入刷新您的环境:
bash
在shell提示。 这将导致.bashrc
得到重读。
在任何时候,你可以检查的当前值$PATH
通过键入
echo $PATH
在shell提示。
下面是我自己的服务器,在我的用户名是“克里斯”的一个样本,机器名称为“克里斯 - 笔记本电脑”:
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
“ 虽然安装了Ruby宝石甚至不会加载突出使用多个不同版本的Ruby的一个共同的问题”; 有时宝石环境和宝石路不同步:
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
这里的任何Ruby进程正在寻找它的宝石只在一个地方。
:~/$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
- EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
- /home/mark/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
在宝石环境的输出仔细一看:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
这不是由Gem.path返回相同的路径:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
很难说究竟是什么造成lib/ruby
更改为lib/ruby1.9
但最有可能开发商与多个Ruby版本工作。 一个快速的mv
或ln
将解决这个问题。
如果确实需要使用多个Ruby版本的工作,那么你真的应该使用RVM 。
正如@克里斯指出的,你需要的宝石环境添加到您的路径。 你可以这样做:
echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc
在宝石的存储文件夹必须在你的路径,例如我的是:
/home/victor/.gem/ruby/1.8/bin
通过键入检查您的路径
echo $PATH
它作用似乎在安装RubyGems的时候,现在在Ubuntu 9.04,我有这个问题。 我注意到,在“宝石环境”可执行文件的目录是“/var/lib/gems/1.8/bin”,而不是“在/ usr / bin中” ......这是RubyGems的或与Ubuntu 9.04的一个问题?
我遇到的解决方案是“/var/lib/gems/1.8/bin”添加到我的$ PATH这样做:出口PATH = $ PATH:/var/lib/gems/1.8/bin但它不保存...我怎么能救我的路?
谢谢...
我决定:把出口PATH = $ PATH:/var/lib/gems/1.8/bin在〜/ .bashrc! =]
MKMF是ruby1.9.1-dev软件包的一部分。 该软件包包含需要为1.9.1扩展库的头文件。 你需要做安装ruby1.9.1-dev软件包:
命令和apt-get安装ruby1.9.1-dev的