如何安装下载的Ruby gem文件?

时间:2010-03-05 13:25:55

标签: rubygems

“gem install”如何运作?这不直观......

我的宝石真的在这里:

[root@localhost Téléchargement]# ll *.gem
-rw-rw-r-- 1 jean jean 16353818 mar  5 11:39 ruby-processing-1.0.9.gem

但是一个惯用的“宝石安装”看不到它......

[root@localhost Téléchargement]# gem install  ruby-processing-1.0.9.gem 
ERROR:  could not find gem ruby-processing-1.0.9.gem locally or in a repository

这有什么问题?

3 个答案:

答案 0 :(得分:48)

也许我还没有完全理解这个问题。但是如果你只是想在本地机器上安装一个gem,那么你需要从控制台进入的所有内容都进入包含你的gem和gem install --local your.gem的目录。

答案 1 :(得分:24)

如果您需要在此示例foo-bar中构建/安装自己的gem文件,还需要进一步说明。

gem build foo-bar.gemspec
gem install --local foo-bar-0.1.0.gem

我正在研究如何做到这一点,这篇文章是第一个结果:)

答案 2 :(得分:12)

问题是 gem install 正在寻找安装在其默认目录中的gem。你可以通过运行找出它的位置:

$ gem environment

这会给你类似的东西:

> RubyGems Environment:
>   - RUBYGEMS VERSION: 1.3.6
>   - RUBY VERSION: 1.8.6 (2007-09-24 patchlevel 111) [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/adminuser/.gem/ruby/1.8

GEM PATHS 位置是 gem install 期望找到要安装的宝石的位置。因此,您的问题的解决方案是将gem从其当前位置复制到预期目录,即

$ cp my.gem /home/adminuser/.gem/ruby/1.8/

如果您随后运行 gem install ,它将获取您的gem并安装它。确保以超级用户身份运行copy命令(sudo,如果你像我一样运行Ubuntu)

PS 如果,当您运行 $ gem environment 时,您会收到Gem:Module(NoMethodError)的“未定义方法'manage_gems'”错误,然后编辑 / usr / bin / gem 并确保文件的前三行如下所示:

  1. 要求'rubygems'
  2. 要求'rubygems / gem_runner'
  3. Gem.manage_gems