【问题标题】:install a private gem systemwide by using chef-rbenv使用 chef-rbenv 在系统范围内安装私有 gem
【发布时间】:2015-07-02 07:49:56
【问题描述】:

我正在使用 [chef-rbenv][1] 并像这样在系统范围内安装 gems:

node/my_server.json

  "rbenv": {
        "rubies": ["2.2.0"],
        "global": "2.2.0",
        "root_path": "/opt/rbenv",
        "gems": {
            "2.2.0": [
                { "name": "activesupport"},
                { "name": "awesome_print"}
            ]
        }
   }

我想像这样安装我的私人 gem my_foo。 通过像这样编写 Gemfile,gem 在本地环境中运行良好:

gem 'my_foo', :git => 'git@bitbucket.org:ironsand/my_foo.git'
gem 'pry-byebug'

服务器 root 帐户有权访问 git 存储库。

我发现如果我安装自己的 gem 服务器,我可以安装 gem,但我不想安装 gem 服务器。

有没有办法使用chef-rbenv 安装私有gem?

【问题讨论】:

    标签: ruby gem chef-infra rbenv


    【解决方案1】:

    Ruby 的 gem 无法从 git 位置安装 gem。这是捆绑器的一个功能。您正在使用的厨师食谱实现了 ruby​​gems 的 gem 命令的包装器,而不是捆绑器。

    您需要将私有 repo 克隆到一个目录并自己构建/安装 gem 或预先构建一个 .gem 文件(请参阅 github's release hosting feature 以获得一个很好的文件托管功能,该功能坚持您的私有 github 访问管理)。

    或者只是在您提到的 Gemfile 上调用 bundler。

    【讨论】:

    • 感谢您的解释!我会坚持使用捆绑器的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多