2012-07-23 13 views
27

स्थापित करने के लिए पैकेज का एक संस्करण निर्दिष्ट करना स्पष्ट रूप से यह संभव नहीं है, लेकिन मुझे विश्वास नहीं है कि मैं केवल यही हूं जिसकी आवश्यकता है।कठपुतली:

मैं स्थापित करने के लिए php का संस्करण निर्दिष्ट करना चाहता हूं क्योंकि मैं एक पुराने प्रोजेक्ट पर काम कर रहा हूं जो PHP 5.2 की आवश्यकता है।

असल में मेरी वी एम php के साथ oneiric पर आधारित है 5.3

आप ऐसा करने के लिए किसी भी समाधान है?

उत्तर

45

आप एक संस्करण निर्दिष्ट कर सकते हैं:

    :

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

    हालांकि, अगर पीएचपी RPM/देब/पैकेज के उस संस्करण आपके अपस्ट्रीम रेपो में उपलब्ध नहीं है, तो आप चाहते हैं या तो करने के लिए

  1. एक वैकल्पिक रेपो कि पैकेज है कि उसे ढूंढें और आपकी रेपो सूची
  2. पैकेज
  3. अपने फाइल सिस्टम से स्थापित के साथ अपने स्वयं रेपो सेट अप करने के लिए इसे जोड़ने के लिए, प्रदान करता द्वारा पैकेज के लिए एक रास्ता ing:

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

मैं समाधान की कोशिश की मेरी प्राथमिकता बदलने के लिए है/स्रोत सूची लेकिन मुझे archive.debian: s – JulienD

+0

@opsmason की सार्वजनिक कुंजी डाउनलोड करने में समस्याएं आ रही हैं: क्या संस्करण मान स्ट्रिंग होने की आवश्यकता है? क्या आप इसे 'सुनिश्चित => 5.2' के रूप में निर्दिष्ट कर सकते हैं? – greenpool

+0

@ ग्रीनपूल: संस्करण एक स्ट्रिंग है। उदाहरण के रूप में httpd-2.4.29 लें :: 2.4.2 9 एक फ्लोट नहीं है, यह एक स्ट्रिंग है! – opsmason

7

यह सुंदर कैसे मैं अपने GPG कुंजी के साथ कठपुतली में कस्टम उपयुक्त रिपोजिटरी प्रयोग करीब

# 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'], 
} 
संबंधित मुद्दे