Tam sürümle belirli Ubuntu paketleri nasıl kurulur?

188

Sağlanan bazı paketlerle (ad ve sürüm) yeni bir sanal makine kurmak istiyorum.

Örneğin, apache2 sürümü 2.2.20-1ubuntu1 tüm bağımlılıkları ile. Bu paketin sunucularında yeni bir sürümü olsa bile, bunun kurulu olması gerekir.

Çözüm, birden çok (n) "kurulum" ile çalışmalı / ölçeklendirilmelidir. Başka bir sanal makine, daha eski bir apache2 sürümüne ihtiyaç duyabilir.

Şu anda, tam paketleri yükleyen bazı olasılıkları biliyorum, ancak bu kadar iyi ölçeklemeyin:

  1. Gerekli tüm *.deb öğelerini her sanal makineye manuel olarak kopyalayın ve şunu girin: dpkg -i ... - & gt; Çalışabilir, ama çok hata eğilimli. (Manuel komut dosyaları vb.)
  2. Her kurulum için yeni bir Ubuntu deposu oluşturun ve kullanın. - & gt; Çalışmıyor çünkü n depolarına ihtiyacım var.
  3. Makineyi bir kez kurup VM'yi kopyalayın / bir anlık fotoğraf oluşturun. - & gt; Çalışmıyor çünkü n VM'leri kaydetmem gerekiyordu.

Sorunum, yama yönetimi olarak etiketlenebilir, ancak paketleri güncel sürüme güncellemek istemiyorum. Amacım eski paketleri yüklemektir.

    
sordu ayckoster 01.01.2012 21:39

4 cevap

190

Paketin belirli bir sürümünü, uygun bir arşivde olduğu kadar uzun bir süre yüklemek için apt-get kullanabilirsiniz. % Co_de% manpage'den:

  

Paketin belirli bir sürümü, paketin adını eşittir ve seçilecek paketin sürümünü izleyerek yüklenebilir. Bu, bu sürümün yüklenmek üzere kurulmasına ve seçilmesine neden olur. Alternatif olarak, özel bir dağıtım, paket isminin bir eğik çizgi ve dağıtımın veya Arşiv adının (kararlı, donmuş, kararsız) sürümü ile takip edilmesiyle seçilebilir.

Örneğin, şunları yapabilirsiniz:

sudo apt-get install apache2=2.2.20-1ubuntu1

Bu durumda kendi kendinize bazı bağımlılık çözümlemesi yapmanız gerekebileceğini unutmayın, ancak herhangi bir sorun varsa apt-get onlara neyin neden olduğunu söyleyecektir. 11.10 sistemimde bunun işe yaraması için aşağıdakileri yapmam gerekiyor:

sudo apt-get install apache2=2.2.20-1ubuntu1 \
                     apache2.2-common=2.2.20-1ubuntu1 \
                     apache2.2-bin=2.2.20-1ubuntu1 \
                     apache2-mpm-worker=2.2.20-1ubuntu1
    
verilen cevap fader 01.01.2012 21:57
51

Hangi sürümlerin mevcut olduğunu kontrol etmek için aşağıdakileri kontrol edebilirsiniz:

sudo apt-cache madison ^apache2

Çalışmıyorsa, paket listesini güncellemek için önce sudo apt-get update çalıştırmayı düşünün.

Sonra sürümü kopyalayın veya aşağıdaki sözdizimini kullanın:

sudo apt-get install apache2=2.2\*

Hangi sürümü kurduğunuzu kontrol etmek için şunu çalıştırın:

dpkg -l 'apache2*' | grep ^i
    
verilen cevap kenorb 01.04.2015 14:44
10

apt ailesindeki diğer kullanışlı sürüm oluşturma komutlarıyla eski yanıtları genişleteceğim. Hangi sürümlerin mevcut olduğunu görmek için apt-cache policy dosyasını çalıştırın:

# apt-cache policy apache2
apache2:
  Installed: (none)
  Candidate: 2.4.7-1ubuntu4.5
  Version table:
     2.4.10-1ubuntu1.1~ubuntu14.04.1 0
        100 http://us.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages
     2.4.7-1ubuntu4.5 0
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
     2.4.7-1ubuntu4 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Sonra, başka bir yerde belirtildiği gibi, apt-get ile belirli bir sürümü yükleyin:

# apt-get install apache2=2.4.7-1ubuntu4.5
...

Şimdi hangi sürümü apt-cache policy 'yi tekrar çalıştırarak yüklediğinizi görebilirsiniz:

# apt-cache policy apache2
apache2:
  Installed: 2.4.7-1ubuntu4.5
  Candidate: 2.4.7-1ubuntu4.5
  Version table:
     2.4.10-1ubuntu1.1~ubuntu14.04.1 0
        100 http://us.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages
 *** 2.4.7-1ubuntu4.5 0
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.4.7-1ubuntu4 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Güncellemelere daha yeni sürümlerin yüklenmesini istemiyorsanız, paketi apt-mark ile işaretleyin:

# apt-mark hold apache2
apache2 set on hold.

Paket dizinine apache2'nin yeni bir sürümü eklendiğini ve makinenizin apt-get update ile senkronize edildiğini varsayalım. Bunu sonraki apt-get upgrade çalıştırdığınızda görürsünüz:

# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  apache2
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
    
verilen cevap gsf 15.07.2016 19:25
8

Pratik olarak, bu mümkün değil çünkü eski sürümler arşivde saklanmaz, bu yüzden eski sürümün bir kopyasını bir yere yerleştiremezseniz, onu yükleyemezsiniz. İlk etapta neden eski bir sürümü kurmak istediğinizi kendinize sormalısınız. Kararlı bir sürümde, piyasaya sürülecek yeni bir sürümün temel nedeni bir güvenlik açığını gidermektir ve savunmasız bir sunucu çalıştırmak istemez misiniz?

    
verilen cevap psusi 02.01.2012 01:33

Etiketlerdeki diğer soruları oku