我最近升级到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是在我的道路这让我跑capmerbrails等。

更新您的PATH

如果由于某种原因,你的可执行文件目录是不是你的路径上(例如,如果它是/var/lib/gems/1.8/bin),那么你需要更新你的PATH变量。

假设你正在使用bash壳。您可以通过键入在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的一个共同的问题;有时宝石环境和宝石路不同步的:

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版本工作。快速mvln将解决这个问题。

如果您确实需要使用多个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 但它不保存...我怎样才能挽救我的路?

...谢谢

Resolvi:coloqueiø出口PATH = $ PATH:/var/lib/gems/1.8/bin没有〜/ .bashrc中! =]

MKMF是ruby1.9.1-dev软件包的一部分。该软件包包含需要为1.9.1扩展库的头文件。你需要做安装ruby1.9.1-dev软件包:

须藤易于得到安装ruby1.9.1-dev的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top