【问题标题】:Download all gems dependencies下载所有 gem 依赖项
【发布时间】:2011-05-23 02:46:25
【问题描述】:

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

【问题讨论】:

  • 我不知道你的用例是什么,但如果你还没有使用 Bundler,我敢打赌它会解决你的一些问题。上手简单,呼吸新鲜空气。

标签: ruby rubygems compass-sass


【解决方案1】:

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

的解决方案

使用依赖项获取 Gem:

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

    来源“http://rubygems.org”
    宝石'rails','3.2.1'

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

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

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

gem install --local rails-3.2.1.gem

【讨论】:

  • 这是否也获得传递依赖?即你的依赖项的依赖项?
  • 我认为它会下载您的依赖项的依赖项,除了那些仅用于开发 gem 本身的依赖项(请参阅 John Bachir 的回答 - stackoverflow.com/questions/4402819/…
  • 非常感谢!这为我节省了很多时间!
  • 注意:您不需要先运行“捆绑安装”。 “捆绑包”本身将下载将 gem 传输到另一台机器所需的所有依赖项。然后,您可以在安装自己的 gem 之前使用“gem install --force --local *.gem”安装这些 gem
  • 使用bundle package --no-install 将跳过安装。
【解决方案2】:

我做到了

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

【讨论】:

    【解决方案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。如果它是一个更复杂的宝石,我不知道生成整棵树的好方法。

    【讨论】:

    • 仅供参考:compass v0.11 中有一些新的依赖项
    猜你喜欢
    • 2016-06-26
    • 2018-08-29
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2021-07-06
    • 2012-04-07
    相关资源
    最近更新 更多