29

我想通过下载任何需要的文件并将它们带到另一台没有互联网连接的机器上来安装指南针。我已经下载了 compass 的源包,当我在未连接的机器上运行 gem 时,它抱怨缺少依赖项。有什么解决办法吗?

4

3 回答 3

46

这正是我遇到的问题。
搜索了一段时间后,我找到了一个使用 Bundler https://bundler.io/的解决方案

使用依赖项获取 Gem:

  • 创建一个新文件夹,其中包含一个名为 Gemfile 的文件。
  • 将您想要依赖的源和 Gem 写入文件
  • 例子:

    来源 "http://rubygems.org"
    gem 'rails', '3.2.1'

  • 在此文件夹中打开命令行并执行:捆绑安装
  • 这应该下载并安装所有依赖项
  • 如果您想查看它,请执行命令捆绑列表
  • 执行命令捆绑包
  • 这应该创建目录结构供应商/缓存
  • 在缓存目录中现在是您的 gem 所需的所有依赖项

在没有互联网连接的机器上安装 Gem:

  • 将缓存文件夹复制到机器
  • 在缓存文件夹中打开命令行并执行gem install --local Gemname.gem
  • 例子:

gem install --local rails-3.2.1.gem

于 2012-02-16T13:41:54.047 回答
4

我做了

export GEM_HOME=.
export GEM_PATH=.
gem install --no-ri --no-rdoc --install-dir . <gem>
于 2012-09-29T02:23:07.950 回答
3

嗯。这有点难。gem dependency将向您显示一个 gem 的依赖关系,但它不会一直沿树向下。

➔ gem dependency compass
Gem compass-0.10.5
  haml (>= 3.0.4, runtime)

Gem compass-0.10.6
  haml (>= 3.0.4, runtime)

➔ gem dependency haml   
Gem haml-3.0.21
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.22
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.23
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.24
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

“开发”意味着只有在开发 gem 本身时才需要它。“运行时”意味着您需要它来使用它。

所以在这种情况下,唯一的依赖是haml。如果它是一个更复杂的宝石,我不知道生成整棵树的好方法。

于 2010-12-10T02:13:42.370 回答