3

我已将 Ruby 安装在自定义位置(在 Ubuntu 机器上,使用 ruby​​-install 安装到 /opt/rubies),当涉及到这样的声明时:

  package { 'bundler':
    ensure   => 'installed',
    provider => 'gem',
    require =>  Exec["Install Ruby"],
  }

gem它们失败(或安装了错误的 Ruby 版本),因为它在错误的位置 (/usr/bin)寻找 Rubygems 的命令。我可以想到一些可以解决此问题的方法:

  1. 告诉我要使用package哪个版本,但我在文档中gem没有看到任何内容。
  2. 将正确的 bin 目录添加到 PATH,但我不知道哪个用户正在运行配置程序,因此不知道在哪里更改 PATH。或者我应该随 Ruby 安装一起更改路径?
  3. 改为使用exec声明。

显然,使用package非常方便,所以任何继续使用的方式都是我的偏好。任何帮助或见解将不胜感激。

4

1 回答 1

2

如果你想继续使用package,你有两个选择:

  • 您可以更改PATHpuppet 代理运行的位置。
  • 您可以使用所需gem路径对提供程序进行子类化。像这样,除了你不需要替换uninstall方法,所以你可以丢失那部分。然后您将更provider => gem改为provider => whatever_provider_name_you_chose.
于 2016-02-22T02:22:23.143 回答