- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用其他人的 Chef Recipe ,它包含以下对在我的服务器上安装 1.9.3p0
的过程的引用:
package 'ruby1.9.3'
package 'ruby1.9.1-dev'
# set ruby 1.9 to be default
execute 'update-alternatives --set ruby /usr/bin/ruby1.9.1'
execute 'update-alternatives --set gem /usr/bin/gem1.9.1'
ohai "reload" do
action :reload
end
我是 Chef 的新手,所以我不确定这些包在哪里,但在 Recipe 的 repo 中没有看到其他人提到它们,我猜它指的是一个中央 repo 。在那种情况下,我如何修改此 Recipe 以使 Chef (单人)为我的服务器准备不同的补丁级别?
最佳答案
The documentation可以在这里稍微澄清一下:
package
tells the chef-client to use one of sixteen different providers during the chef-client run, where the provider that is used by chef-client depends on the platform of the machine on which the chef-client run is taking place
因此在基于 Debian 的系统上,例如为该配方编写的系统,Chef 会自动将 package
资源解析为 apt_package
资源,这将调用 apt-get
安装 ruby1.9.3
。
现在,鉴于主流 Linux 发行版或 FreeBSD 都没有打包多个 Ruby 补丁级别(并且在某些情况下,声明的补丁级别不是他们看起来的那样),您可能不想使用 package
获取 Ruby。很可能你最终会想要使用像 the bash
resource 这样的东西从源代码构建它。 .
package
仍可用于安装 Ruby 先决条件,您可以毫无问题地从供应商的软件包存储库中使用它。
关于ruby - 在 Chef 配方中,您如何为 Ruby 指定特定的补丁级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166527/
我是一名优秀的程序员,十分优秀!