Apt-get ile belirli paketleri yüklemeden nasıl hariç tutabilirim?


12

Belirli paketleri kurulumdan hariç tutmak istiyorum apt-get, yani belirli paketler listesi olmadan, tercihen bir çağırma ile bir meta paket yükleyin apt-get.

Örneğin, Ubuntu 14.04 LTS komut satırında MATE masaüstü ortamını kuruyorum. 14.04'te LTS MATE resmi bir lezzet değil, bu yüzden bir PPA ekliyorum:

sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update

sonra yükleme:

sudo apt-get install xorg mate-core --no-install-recommends

Hatta önerilen ekstralar olmadan mate-core: 3 terminal emülatörlerine yükler xterm, uxtermve mate-terminal bu en az bir yapılandırmada yüklü iken ikincisi doğru fontları eksik.

Ben 3 terminal programları çok fazla olacağını ve yüklemek istediğinize karar varsayalım xorgve mate-core olmadan xterm ve mate-terminal. Yapabilirim

sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal

ama bunu tek seferde yapmak mümkün mü? Gibi bir sözdizimi var mı

sudo apt-get install xorg mate-core --without xterm mate-terminal

Eğer kaldırabilir eminiz xtermve mate-terminal? 15.04'te, mate-terminalzor bir bağımlılığıdır mate-desktop-environment-core, bu da zor bir bağımlılıktır mate-coreve sanırım PPA'nın mate-terminalsağlamadığı x-terminal-emulator(15.04'teki paketin yaptığı).
muru

Belki de haklısınız , paket adlarının yanındaki yıldız işareti burada özel bir şey ifade etmiyorsa . Ayrıca, şaşırtıcı bir şekilde az yer bırakılacaktır. Her neyse, sorum, kaldırılabilen her şeyi kaldırmakla ilgili XTermve belki de UXTerm(ikincisi için paket adının ne olduğundan emin değilim) hakkında
Nickolai Leschov

1
Aradığınız bu mu? askubuntu.com/questions/75895/…
Seth

@Seth Pek değil: Böyle bir sözdizimi olsa isterdimsudo apt-get install xorg mate-core --without xterm mate-terminal
Nickolai Leschov

Eğer kullanırsanız aptitude(veya bazı grafik paket yöneticisi), sen (de) yüklemek için hangi paketleri seçebilir ve kırık bağımlılık bir sonuç, bir açıklama (genellikle) verilecektir eğer.
saiarcot895

Yanıtlar:


7

Yani, arkadaşı çekirdekli bağlıdır üzerine mate-desktop-environment-coresırayla hangi bağlıdır üzerinde mate-terminal. Bir bağımlı kolayca kırılamaz. Ne apt-getde aptitudea --withoutveya --excludeseçeneği desteklemez ve paketleri "tutmak" yardımcı olmaz:

$ echo "dostum terminal tutma" | sudo dpkg - seçimler
$ sudo apt-get install montaj ilişkisi
[...]
Bazı paketler kurulamadı ...
Aşağıdaki paketlerin karşılanmamış bağımlılıkları vardır:

Tabii, dpkg --force-dependsbir paket yüklemek için kullanabilirsiniz , ancak belki de istediğiniz şey bu değildir.

Depends:Bayrağı sahte bir paketle doldurma olasılığı olabilir :

$ sudo apt-get install eşdeğeri
$ equivs-control eş terminali
$ vi mate-terminal
Bölüm: çeşitli
Öncelik: isteğe bağlı
Standartlar-Sürüm: 3.9.2
Paket: dostum-terminal
Sürüm: 1.8.0
Açıklama: Mate terminali için kukla paket
: x

$ equivs-build montaj terminali
$ sudo dpkg -i mate-terminal_1.8.0_all.deb

Şimdi mate-corew / o kurabilir mate-terminal. Dışlanacak diğer paketler için aynı işlemi tekrarlayın.

Kuşkusuz bu oldukça bir çaba ve bir --withoutseçenek güzel olurdu. Belki gelecekte böyle bir işlevsellik sağlamak için bir istek listesi hatası açılabilir, ancak bir şekilde bunun uygulanacağından şüpheliyim.

Bununla birlikte, daha gerçekçi bir seçenek PPA sahibine MATE için daha az Dependspaket ayarlanmış başka bir meta paket sunması için dilekçe vermek olacaktır .


4

Eğer kullanırsanız aptitudeveya grafik paket yöneticisi (Synaptic, vs.), o zaman paketler yüklenmesi gereken seçimini kaldırabilirsiniz sürece bir bağımlılık sorunu neden yok.

Durumunda aptitudebir bağımlı paket yüklenmekte olduğu neden (grafik görünümünde) bir paketi yüklemeden önce, bu size gösterecektir. Benim durumumda, KDE kullanıyorum ve bu yüzden herhangi bir MATE paketi yok. Eğer yüklemesini söylersem mate-core, şunu elde ederim:

resim açıklamasını buraya girin

Bildirim mate-coreolarak işaretlenmiş elle yüklenen ve birçok diğer paketler kuruluyor. İçin mate-terminalpakette, alt, bu "diyor mate-desktop-environment-core[evren] bağlıdır mate-terminal(> = 1.0.0)". İçin girişe gitmek mate-desktop-environment-core,

resim açıklamasını buraya girin

" mate-core[evren] şunlara bağlıdır mate-desktop-environment-core(> = 1.8.0 + 9)". Bu yüzden mate-terminalkuruluyor.

Bunun yerine, önerilen bir paket kuruluyorsa (başka bir pakete bağımlı bir şey yerine) aptitudesize bunu söyleyecek ve herhangi bir bozuk bağımlılık olmadan bu paketi yüklememesini söyleyebilirsiniz. Örneğin:

resim açıklamasını buraya girin


2

Diğer yöntem

Diğerine bağlı ana paketi indirin. Paketi çıkarın, istenmeyen bağımlılıkları kaldırın, yeniden paketleyin. Şimdi yeni paketi gdebi paket yükleyicisiyle açın. Sizin için yeni bağımlılıklar kuracak.

  • Bağımlılıkların listesi DEBIAN / control -> depends adresinde bulunabilir.
  • Debi yeniden düzenleme konusunda yardım için PPA oluşturma hakkındaki cevabımı inceleyin

0

Bunun aptgibi senaryolar için özel bir sözdizimi vardır : bir pakete kısa çizgi (eksi işareti) eklemek paketi kaldırır / yüklemez, böylece size en yakın sudo apt-get install xorg mate-core --without xterm mate-terminal olanı sudo apt-get install xorg mate-core xterm- mate-terminal- ( https://askubuntu.com/a/1011439/182923 adresinde bulunur )

Bu durumda size yardımcı olmayacaktır, çünkü

The following packages have unmet dependencies:
 mate-desktop-environment-core : Depends: mate-terminal (>= 1.20) but it is not going to be installed                                                                        
E: Unable to correct problems, you have held broken packages.

ama sizin özel sorunuzun cevabı gibi görünüyor. Yani referans için, bu çapraz gönderi.

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.