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

“gem安装”如何工作? 这并不直观

我的gem真的在这里:

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

但一个惯用的“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 

那有什么问题?

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

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

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

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

问题是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安装期望find安装gem的地方。 所以,你的问题的解决办法是将gem从当前位置复制到预期的目录,即

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

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

PS如果在运行$ gem环境时 ,会得到一个“未定义的方法'manage_gems'for Gem:Module(NoMethodError)”错误,然后编辑/ usr / bin / gem ,确保文件的前三行看起来像这样:

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