下载所有宝石依赖项

时间:2010-12-09 20:29:46

标签: ruby rubygems compass-sass

我想通过下载任何所需文件并将其带到另一台机器没有互联网连接来安装指南针。我已经下载了罗盘的源代码包,当我在非连接的机器上运行gem时,它抱怨缺少依赖项。任何解决方案?

3 个答案:

答案 0 :(得分:41)

这就是我遇到的问题 经过一段时间的搜索,我找到了一个使用Bundler https://bundler.io/

工作的解决方案

获取具有依赖关系的宝石:

  • 使用名为Gemfile的文件创建一个新文件夹。
  • 将您希望拥有依赖项的Source和Gem写入文件
  • BSP:
      

    来源“http://rubygems.org
      宝石'轨道','3.2.1'

  • 在此文件夹中打开一个命令行和一个执行:捆绑安装
  • 这应该下载并安装所有Dependencys
  • 如果您想看到
  • ,请执行命令捆绑列表
  • 执行命令捆绑包
  • 这应该创建目录结构供应商/缓存
  • 目录中的目录现在是您的宝石所需的所有Dependencys

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

  • 将缓存文件夹复制到计算机
  • 在缓存文件夹中打开一个命令行并执行 gem install --local Gemname.gem
  • BSP:
      

    gem install --local rails-3.2.1.gem

答案 1 :(得分:4)

我做了

export GEM_HOME=.
export GEM_PATH=.
gem install --no-ri --no-rdoc --install-dir . <gem>

答案 2 :(得分: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)

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

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