【问题标题】:Local gem repository? Install a ruby gem without 'gem'?本地 gem 存储库?安装没有“宝石”的红宝石宝石?
【发布时间】:2014-03-27 08:40:46
【问题描述】:

是否有可能为 Ruby 提供“本地”gem 存储库之类的东西?

我正在开发一个没有管理员权限的自定义 Linux 发行版。机器上安装了 Ruby(v.1.8.7),但显然没有安装“gem”或“bundle”或其他任何东西。我需要使用一些像 Nokogiri 这样的 Ruby gem。

是否可以在不通过gem install 安装的情况下使用 Ruby gem?

【问题讨论】:

    标签: ruby rubygems


    【解决方案1】:

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

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

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

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

    但请记住,首先您必须对所有 Nokogiri 先决条件执行相同操作。 IE。 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 命令。

    【讨论】:

    • ...先生,这是我问题的完美答案。十分感谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2017-08-10
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多