指定要通过包类型

时间:2016-02-21 17:07:18

标签: ruby vagrant puppet vagrant-provision

我已经在自定义位置安装了Ruby(在Ubuntu盒子上,使用ruby-install安装到/ opt / rubies中),当涉及到这样的声明时:

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

他们失败(或安装错误的Ruby版本),因为他们正在寻找Rubygems' gem命令位于错误的位置(/ usr / bin)。我可以想办法解决这个问题:

  1. 告诉package我想要使用的gem版本,但我在the docs for that中看不到任何内容。
  2. 将正确的bin目录添加到PATH,但我不知道哪个用户正在运行配置程序,因此,在哪里更改PATH。或者我应该改变路径以及Ruby安装吗?
  3. 改为使用exec声明。
  4. 显然,使用package非常方便,所以任何继续使用的方式都是我的偏好。任何帮助或见解将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果您想继续使用for crime in no: if int(crime.getAttribute("id")) == x: crimeid = crime.getAttribute("id") crimetype = crime.getAttribute("type") ... ,您有两种选择:

  • 您可以更改运行木偶代理的package
  • 您可以使用所需的PATH路径为提供程序创建子类。与this类似,除非您不需要替换gem方法,因此您可能会丢失该部分。然后,您将uninstall更改为provider => gem