“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
这有什么问题?
答案 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 并确保文件的前三行如下所示: