31

どうやらこれは不可能のようですが、私だけがそれを必要としているとは信じられません。

PHP 5.2 を必要とする古いプロジェクトに取り組んでいるため、インストールする php のバージョンを指定したいと考えています。

実際、私の VM は php 5.3 の Oneiric に基づいています。

これを行うための解決策はありますか?

4

2 に答える 2

51

バージョンを指定できます。

package { 'php' :
  ensure => '5.2' ,
}

ただし、そのバージョンの PHP RPM/Deb/パッケージがアップストリーム リポジトリで利用できない場合は、次のいずれかを行います。

  1. そのパッケージを含む代替リポジトリを見つけて、リポジトリ リストに追加します。
  2. パッケージを使用して独自のレポを設定する
  3. パッケージへのパスを指定して、ファイルシステムからインストールします。

    package { 'php' :
      ensure => '5.2' ,
      source => '/some/path/to/php-5.2.rpm' ,
    }
    
于 2012-07-23T16:17:05.193 に答える
7

これは、パペットで gpg キーを使用してカスタム apt リポジトリを使用する方法にかなり近いです。

# put downloaded pgp keys into modulename/files/pgp/
# this will copy them all into /tmp
file { '/tmp/pgp-keys':
        ensure  => directory,
        recurse => true,
        source  => 'puppet:///modules/modulename/pgp',
}

# add any keys that you need
exec { 'apt-key add':
        command     => '/usr/bin/apt-key add /tmp/pgp-keys/number1.gpg.key &&/
                        /usr/bin/apt-key add /tmp/pgp-keys/number2.gpg.key',
        subscribe   => File['/tmp/pgp-keys'],
        refreshonly => true,
}

# make sure you add your custom apt repository
file { 'cassandra.sources.list':
        ensure  => 'present',
        path    => '/etc/apt/sources.list.d/cassandra.sources.list',
        source  => 'puppet:///modules/modulename/cassandra.sources.list',
        require => Exec['apt-key add'],
}

# update your package list
exec { 'apt-get update':
        command => '/usr/bin/apt-get update',
        require => File['cassandra.sources.list'],
}

# Install your specific package - I haven't actually used this yet, 
# based on answer by opsmason
package { 'cassandra':
        ensure  => '1.2.0',
        require => Exec['apt-get update'],
}
于 2013-03-01T08:22:37.820 に答える