【问题标题】:How to configure Bundler to use a local gem dependency如何配置 Bundler 以使用本地 gem 依赖项
【发布时间】:2017-01-31 00:22:31
【问题描述】:

Qt 库在 OSX 12 (Sierra) 上被破坏,这是 gem capybara-webkit 的依赖项之一。因此,如果 capybara-webkit 在 Gemfile 中,那么目前 bundle install 对大多数人来说都会失败。

还有a workaround for this,就是手动安装Qt,然后使用本地版本安装gem...

$ PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH gem install capybara-webkit

我想将捆绑器配置为始终使用这个 Qt 的本地副本,因此我不必记住在每个 gemset 中都这样做。这可能吗?我查看了Bundler config 文档,并不太明白我在寻找什么。

理想情况下,我希望找到一个使用可移植配置文件的解决方案,我可以将它传递给我的团队,而不是他们都必须运行的一系列命令。

感谢您的任何建议!

【问题讨论】:

    标签: ruby-on-rails ruby qt rubygems bundler


    【解决方案1】:

    尝试为捆绑器添加local git repo。

    Bundler 还允许您在本地处理 git 存储库,而不是使用远程版本。这可以通过设置本地覆盖来实现:

    bundle config local.GEM_NAME /path/to/local/git/repository

    例如,为了使用本地 Rack 存储库,开发人员可以调用:

    bundle config local.rack ~/Work/git/rack

    现在将使用本地覆盖,而不是检出远程 git 存储库。类似于路径源,每次本地 git 存储库更改时,Bundler 都会自动拾取更改。这意味着本地 git repo 中的提交会将 Gemfile.lock 中的修订更新为本地 git repo 修订。这需要与 git 子模块一样的注意。在推送到远程之前,你需要确保本地覆盖被推送,否则你可能指向一个只存在于你本地机器中的提交。

    如果您当前的 Qt 本地副本不在 git 存储库中,您可以简单地克隆主存储库并将更改推送到您的计算机本地。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多