本地宝石存储库?安装没有'宝石'的红宝石宝石?

时间:2014-03-27 08:40:47

标签: ruby rubygems

是否有可能拥有像“本地”这样的东西。 Ruby的gem存储库?

我正在使用没有管理员权限的自定义Linux发行版。 Ruby安装在机器上(v.1.8.7),但显然没有“宝石”#39;或者'捆绑'或者安装的任何东西。我需要使用像Nokogiri这样的Ruby宝石。

是否可以使用Ruby gems而无需通过gem install安装它们?

1 个答案:

答案 0 :(得分:6)

是。任何宝石都可以单独使用。您只需从github下载源代码,或下载gem并手动提取其内容。

完成后,您必须将gem的lib文件夹添加到Ruby的加载路径($:)中。例如:

$:.unshift(File.expand_path("nokogiri-1.6.1/lib"))
require 'nokogiri'

假设您在当前目录中运行Ruby,并且Nokogiri源位于nokogiri-1.6.1文件夹中。

但请记住,首先你必须对所有Nokogiri先决条件做同样的事情。即Nokogiri所依赖的所有图书馆。

我会做的另一个选择是在您的主目录中安装RubyGems。这可能会有点棘手,但是可以通过下载RubyGems包并运行类似的东西来实现:

ruby setup.rb --prefix=/home/my_user_name/rubygems

然后,您需要设置ENV变量GEM_HOMEGEM_PATH以指向主目录中您希望安装所有gem的位置。有关其内容的说明,请参阅“What's the difference between GEM_HOME and GEM_PATH?”。

您还需要向/home/my_user_name/rubygems/bin添加PATH之类的内容,以便shell可以找到gem命令。