指定 Rubygems 的自定义位置以通过包类型安装
Specify custom location for Rubygems to install via package type
我已将 Ruby 安装在自定义位置(在 Ubuntu 框上,使用 ruby-install 安装到 /opt/rubies 中),当涉及到声明时这个:
package { 'bundler':
ensure => 'installed',
provider => 'gem',
require => Exec["Install Ruby"],
}
它们失败了(或者安装了错误版本的 Ruby),因为它在错误的地方寻找 Rubygems 的 gem
命令 (/usr/bin) .我可以想出几种方法来解决这个问题:
- 告诉
package
我想使用哪个版本的 gem
,但我在 the docs for that 中没有看到任何内容。
- 将正确的 bin 目录添加到 PATH,但我不知道哪个用户是 运行 配置者,因此不知道在哪里更改 PATH。还是我应该随 Ruby 安装一起更改路径?
- 改为使用
exec
声明。
显然,使用 package
非常方便,因此我更愿意继续使用它。任何帮助或见解将不胜感激。
如果您想继续使用 package
,您有两个选择:
- 您可以更改运行 Puppet 代理的
PATH
。
- 您可以使用所需的
gem
路径对提供程序进行子类化。像 this,除了你不需要替换 uninstall
方法,所以你可以丢失那部分。然后,您将 provider => gem
更改为 provider => whatever_provider_name_you_chose
。
我已将 Ruby 安装在自定义位置(在 Ubuntu 框上,使用 ruby-install 安装到 /opt/rubies 中),当涉及到声明时这个:
package { 'bundler':
ensure => 'installed',
provider => 'gem',
require => Exec["Install Ruby"],
}
它们失败了(或者安装了错误版本的 Ruby),因为它在错误的地方寻找 Rubygems 的 gem
命令 (/usr/bin) .我可以想出几种方法来解决这个问题:
- 告诉
package
我想使用哪个版本的gem
,但我在 the docs for that 中没有看到任何内容。 - 将正确的 bin 目录添加到 PATH,但我不知道哪个用户是 运行 配置者,因此不知道在哪里更改 PATH。还是我应该随 Ruby 安装一起更改路径?
- 改为使用
exec
声明。
显然,使用 package
非常方便,因此我更愿意继续使用它。任何帮助或见解将不胜感激。
如果您想继续使用 package
,您有两个选择:
- 您可以更改运行 Puppet 代理的
PATH
。 - 您可以使用所需的
gem
路径对提供程序进行子类化。像 this,除了你不需要替换uninstall
方法,所以你可以丢失那部分。然后,您将provider => gem
更改为provider => whatever_provider_name_you_chose
。