是否有可能拥有像“本地”这样的东西。 Ruby的gem存储库?
我正在使用没有管理员权限的自定义Linux发行版。 Ruby安装在机器上(v.1.8.7),但显然没有“宝石”#39;或者'捆绑'或者安装的任何东西。我需要使用像Nokogiri这样的Ruby宝石。
是否可以使用Ruby gems而无需通过gem install
安装它们?
答案 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_HOME
和GEM_PATH
以指向主目录中您希望安装所有gem的位置。有关其内容的说明,请参阅“What's the difference between GEM_HOME and GEM_PATH?”。
您还需要向/home/my_user_name/rubygems/bin
添加PATH
之类的内容,以便shell可以找到gem
命令。