Belirli bir paketin kurulmasını nasıl yasaklayabilirim?


27

Ubuntu'yu, kurduğum başka bir paket için gerekli olsa bile, hiçbir zaman belirli bir paketi yüklemeyecek şekilde yapılandırabilir miyim?


Sisteminizi bozmak istemiyorsanız, bağımlılıkları olmadan bir paket yükleyemezsiniz.
enzotib

2
@enzotib, her şeyden önce yanılıyorsunuz: paket bağımlılıkları gereksiz olabilir. Çok sayıda örnek var ya da başka bir yolla gerekli bir paketin eşdeğerini kurmuş olabilirsiniz (örneğin, depolardaki tüm java uygulamaları için gerekli olan openjdk-6'yı yükledim, ama aslında openjdk-6'yı kullanmıyorum. openjdk-7 veya Oracle JDK 7 kullanmak için her şeyi ayarlayın). Ve ikinci şey - bağımlı paketin kurulmasını istediğimi söylemedim - bu durumda sadece bir hataya yol açabilir, sadece belirli bir paketin asla yüklenmediğinden emin olmak istiyorum.
Ivan

Bir yoktur benzer soru .
Nimmermehr

Yanıtlar:


28

Debian'da olduğu gibi Ubuntu'da sürüm ve kurulum kontrolü için apt-pinning kullanabiliriz .

Belirli bir paketin kurulumunu engellemek için aşağıdaki satırları içine koyabiliriz: /etc/apt/preferences

Package: <nameofpackage>
Pin: origin ""
Pin-Priority: -1

Bu pin için negatif bir öncelik vererek <nameofpackage>, daha önceden tanımlanmayan bir kaynaktan, yani yerel havuzumuzun kurulumunu engelleyeceğiz . Elbette belirli bir paket sürümünü veya belirli bir orijini belirlemek için apt-pinning kullanabiliriz.

Devam etmeden önce yukarıda verilen dokümanları ve apt_preferences sayfasını okumak için şiddetle tavsiye edilir, çünkü bu dosyalardaki hatalar apt tarafından kontrol edilmez ve ortaya çıkarlarsa paket yönetiminizi bozabilir.

Alternatif olarak ve verilen bir paketin güncellenmesini önlemek için:


Bunun Ubuntu 12.04'te çalışıp çalışmayacağını biliyor musunuz? Başka bir soru belki işe yaramadığını bildirmektir.
Lucio

1
@ Lucio: elbette - hala çalışıyor; sadece 12.10'da çalışması için de test ettim.
Takkat

3
In Package:-LINE, böyle boşluklarla ayrılmış birden paketleri, listeleyebilirsiniz: Paket: metacity sürümü metacity sürümü-ortak libmetacity-private0a. (Paket gibi desenlere benziyor: metacity * de mümkündür)
Volker Siegel

5
Ubuntu'da 16.04 Pin: origin ""benim için işe yaramadı, ama Pin: release *yaptı.
barbaz

3

Debian'da bir paketi engelleyebilirsiniz ve o paket artık yükseltilmeyecek

# echo name_of_package hold | dpkg --set-selections

ama yasaklayabileceğinden emin değilim.


Sadece Ubuntu 15.10 (wily) 'ı denedim ve paketi engellemedi; sadece bana bir uyarı verdipackage not in database
Brent Baccala

2

Tekrar içeri sızıp gitmeye devam eden bir paketim var.

sudo apt-mark hold libgnutls-deb0-28

bu paketin yüklenmesini engellemeli

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.