簡體   English   中英

Puppet:指定要安裝的軟件包的版本

[英]Puppet : Specifying a version of a package to install

顯然這是不可能的,但我無法相信我是唯一需要它的人。

我想指定要安裝的php版本,因為我正在處理一個需要php 5.2的舊項目。

實際上我的VM基於Oneiric和php 5.3

你有任何解決方案嗎?

您可以指定版本:

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

但是,如果您的上游倉庫中沒有該版本的PHP RPM / Deb / package,那么您將要么:

  1. 找到包含該包的備用倉庫,並將其添加到您的倉庫列表中
  2. 使用包設置您自己的倉庫
  3. 通過提供包的路徑從文件系統安裝:

     package { 'php' : ensure => '5.2' , source => '/some/path/to/php-5.2.rpm' , } 

這與我使用gpg鍵在puppet中使用自定義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'],
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM