3

カスタムの場所 (Ubuntu ボックス上で、ruby-install を使用して /opt/rubies に) に Ruby をインストールしました。宣言に関しては、次のようになります。

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

gem間違った場所 (/usr/bin) でRubygems のコマンドを探しているため、失敗します (または間違ったバージョンの Ruby をインストールします)。これを修正するいくつかの方法を考えることができます:

  1. 使用したいpackageのバージョンを教えてください。しかし、そのドキュメントには何も表示されません。gem
  2. 正しい bin ディレクトリを PATH に追加しますが、プロビジョナーを実行しているユーザーが分からないため、PATH を変更する場所がわかりません。または、Ruby のインストールに合わせてパスを変更する必要がありますか?
  3. exec代わりに宣言を使用します。

明らかに、使用packageは非常に便利なので、それを使用し続ける方法は私の好みです. どんな助けや洞察も大歓迎です。

4

1 に答える 1

2

を引き続き使用するpackage場合は、次の 2 つのオプションがあります。

  • PATHpuppet エージェントが実行される を変更できます。
  • gem目的のパスでプロバイダーをサブクラス化できます。このように、メソッドを置き換える必要がないことを除いて、uninstallその部分を失う可能性があります。次に、 に変更provider => gemprovider => whatever_provider_name_you_choseます。
于 2016-02-22T02:22:23.143 に答える