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

JCL*_*CLL 41 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
Run Code Online (Sandbox Code Playgroud)

但一个惯用的"宝石安装"看不到它......

[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
Run Code Online (Sandbox Code Playgroud)

这有什么问题?

Osc*_*car 48

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


Har*_*ina 24

如果您需要在此示例foo-bar中构建/安装自己的gem文件,请进行更多说明.

gem build foo-bar.gemspec
gem install --local foo-bar-0.1.0.gem
Run Code Online (Sandbox Code Playgroud)

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


小智 12

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

$ gem environment
Run Code Online (Sandbox Code Playgroud)

这会给你一些类似的东西:

> 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
Run Code Online (Sandbox Code Playgroud)

创业板路径下的位置就是创业板安装期待找到宝石安装.因此,您的问题的解决方案是将gem从其当前位置复制到预期目录,即

$ cp my.gem /home/adminuser/.gem/ruby/1.8/
Run Code Online (Sandbox Code Playgroud)

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

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

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