Belirli bir paketin güncellenmesini nasıl önleyebilirim?

323

hata # 693758 % co_de'yi önlemek istiyorum % ve Update Manager'ın "libgtk2.0-0" paketini güncellemesi.

Bu nasıl başarılabilir?

    
sordu Ivan 23.12.2010 18:29

12 cevap

471

Holding

Geri paketleri tutmanın dört yolu vardır: dpkg, apt, aptitude veya dselect ile.

dpkg

Bir paketi beklemeye alın:

echo "<package-name> hold" | sudo dpkg --set-selections

Muhafazayı kaldır:

echo "<package-name> install" | sudo dpkg --set-selections

Paketlerinizin durumunu görüntüleyin:

dpkg --get-selections

Tek bir paketin durumunu görüntüleyin:

dpkg --get-selections | grep "<package-name>"

apt

Bir paket tutun:

sudo apt-mark hold <package-name>

Muhafazayı kaldır:

sudo apt-mark unhold <package-name>

dselect

dselect ile, [S] seçmeli ekranına girin, mevcut durumda tutmak istediğiniz paketi bulun ve = veya H tuşlarına basın. Değişiklikler [S] seçmeli ekranından çıktıktan hemen sonra yürürlüğe girecek.

Aşağıdaki yaklaşımlar, bir paketin yetenek veya sinaptik içinde kilitlenmesi / tutulması apt-get / apt'u etkilemediğinden sınırlıdır.

yetenek

Bir paket tutun:

sudo aptitude hold <package-name>

Muhafazayı kaldır:

sudo aptitude unhold <package-name>

Synaptic Paket Yöneticisi ile Kilitleme

Synaptic Paket Yöneticisi 'ne gidin (Sistem & gt; Yönetim & gt; Synaptic Paket Yöneticisi).

Arama düğmesini tıklayın ve paket adını yazın.

Paketi bulduğunuzda, onu seçin ve Paket menüsüne gidin ve Sürümü Kilitle 'yi seçin.

Bu paket artık güncelleme yöneticisinde görünmeyecek ve güncellenmeyecek.

    
verilen cevap hhlp 23.12.2010 19:04
43

"Foo" paketini beklemeye almak için:

echo "foo hold" | dpkg --set-selections

Senin durumunda şarapları beklemeye alacağız:

sudo -i
echo "wine hold" | dpkg --set-selections

Bekletmeyi kaldırmak için:

sudo -i
echo "wine install" | dpkg --set-selections
    
verilen cevap Panther 08.12.2011 21:15
28

Aynı şeyi arıyordum ve birçok araştırmadan sonra aşağıdaki sözdizimini kullanarak belirli bir sürümü yasaklayabileceğinizi ancak bir sonraki güncellemeye izin verebileceğinizi keşfettim:

Package: compiz-plugins-main
Pin: version 1:0.9.7.0~bzr19-0ubuntu10.1
Pin-Priority: -1

Bu, / etc / apt / preferences dosyasına gider.

    
verilen cevap soger 22.07.2013 13:13
19

synaptic değerini kullanarak sudo apt-get install synaptic yükleyin.

gksudo synaptic kullanarak çalıştırın ve arama kutusuna kilitlemek istediğiniz paketi bulun. Örneğin: gedit

Paket menüsünden Sürümü kilitle 'yi seçin:

Ve hepsi bu, kilitlenme sırasında şu anda yüklü olan sürüm yükseltmeler sırasında bile yüklenmeye devam edecektir.

    
verilen cevap Bruno Pereira 08.12.2011 21:06
16

Bir paketin yüklenmesini önleme "paket tutma" olarak adlandırılır ve yapılması çok basittir:

echo package_name hold | dpkg --set-selections

... Burada * package_name *, yüklemeyi önlemek istediğiniz paketin adıdır.

Not: Yukarıdaki komut, root ayrıcalıklarını kabul eder. Diğer bir deyişle, muhtemelen çalıştırmadan önce sudo su yazmanız gerekir.

    
verilen cevap RobotHumans 05.02.2011 02:18
5

Bazı zamanlar apt-get 'si apt ile değiştirildiğinden, örneğin Firefox'un 56'nın üzerindeki sürüme güncellenmesini önlemek istiyorum, çünkü " Sekme Grupları " artık yeni Firefox 57 ile çalışmaz (bkz." Web Uzantıları Güncelleştirmesi ").

Birden fazla paketi tek bir komutla tutmak ve joker karakterleri kullanmak mümkündür.

Firefox’un güncellenmesini engelle

sudo apt-mark hold firefox firefox-locale-*

Daha sonra onları korumanız gerekirse, bu şu olacaktır:

sudo apt-mark unhold firefox firefox-locale-*
    
verilen cevap rubo77 19.11.2017 08:45
4

Sinaptik bir paketin versiyonunu dondurabilirsin, bunun apt-get'i değiştirip değiştirmeyeceğine dair% 100 emin değilim ama güncelleme yöneticisini kesin olarak durdurur.

Bir paketi dondurmak için bunu sinaptik olarak seçin, ardından paket menüsünü açın ve dondurulmuş versiyonu seçin.

Bunun yardımcı olacağını umarım

düzenle: Bu soru 16668 benzer bir durumla ilgilenir

    
verilen cevap Allan 23.12.2010 18:35
3

Belirli sürümlere "tutma" ve "sabitleme" hakkında bilmek istediğiniz her şey: İşte

    
verilen cevap Jeff Ferland 23.12.2010 22:09
3

Hatalara bakın # 75332 , # 158981 ve # 72806 .

Özet, apt-get / aptitude düzeyinde beklemenin dpkg'de tutma durumunu tetiklememesi (özellikle 72806 numaralı hatayı inceleyin) ve update-manager'ın durumu dpkg'dan okuduğudur.

Geçici çözüm, kök olarak çalıştırılır: % Co_de%

    
verilen cevap jasper 26.11.2012 08:24
1

Synaptic'in kurulu olması durumunda paketi seçebilir ve Paket - & gt; Güncellenmesini önlemek için Sürümü Kilitle.

Synaptic'i sudo apt-get install synaptic ile kurabilirsiniz. Şahsen Yazılım Merkezi'nden daha kullanışlı buluyorum ... sonra tekrar eski bir okuldum. :)

    
verilen cevap dinchamion 08.12.2011 21:06
1

"Belirli geçersiz kılma" özelliğini aşağıdaki gibi kullanabilirsin:

aptitude reinstall ~i oracle-java8-jre:

Bu, yalnızca (bir sonraki gelecekteki yüklemeler için saklanmayan) bir kerelik kullanımdır, özel geçersiz kılmayı, sisteminizdeki tüm paketleri yeniden yüklemek için kullanılır, ancak oracle-java8-jre'yi değil.

Belirli bir geçersiz kılma özelliğini kullanırsanız, paket geçici olarak bir durumda olacak ve bir yetenek yüklemeyi denemeyecektir.

Sisteminizin bir şekilde nasıl ele geçirildiğini düşünüyorsanız, çok iyi bir şey.

    
verilen cevap cabonamigo 18.05.2017 18:27
0

Bazen, şu anda yüklü olan paketlerin tümünü tutmak isteyebilir. İşte nasıl.

Önce mevcut durumu kaydedin, böylece geri alabilirsiniz:

dpkg --get-selections > current_selections.txt

Ardından, tüm paketleri geri almak için:

dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections

Son olarak, önceki duruma geri dönmek istediğinizde:

dpkg --set-selections < current_selections.txt

Bunun için bir kullanım durumu, bir KG'den üretim ortamına geçmek için bir VM veya Amazon AMI anlık görüntüsü oluştururken olabilir.

    
verilen cevap JVW 14.01.2015 20:46

Etiketlerdeki diğer soruları oku