Saya ingin mengecualikan paket tertentu dari instalasi dengan apt-get
, yaitu, menginstal metapackage tanpa daftar paket tertentu, lebih disukai dengan satu permintaan apt-get
.
Misalnya, di baris perintah Ubuntu 14.04 LTS, saya menginstal lingkungan desktop MATE. Dalam 14,04 LTS MATE bukan cita rasa resmi, jadi saya menambahkan PPA:
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
lalu instal:
sudo apt-get install xorg mate-core --no-install-recommends
Bahkan tanpa tambahan direkomendasikan, mate-core
menginstal 3 emulator terminal: xterm
, uxterm
dan mate-terminal
, yang terakhir kurang font yang tepat saat diinstal dalam konfigurasi minimal ini.
Misalkan saya memutuskan bahwa 3 program terminal akan terlalu banyak dan saya ingin menginstal xorg
dan mate-core
tanpa xterm
dan mate-terminal
. Saya bisa melakukannya
sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal
tetapi apakah mungkin untuk melakukan ini sekaligus? Apakah ada beberapa sintaks seperti
sudo apt-get install xorg mate-core --without xterm mate-terminal
sumber
xterm
danmate-terminal
? Dalam 15.04,mate-terminal
adalah ketergantungan yang sulitmate-desktop-environment-core
, yang merupakan ketergantungan yang sulitmate-core
, dan saya kira PPAmate-terminal
tidak menyediakanx-terminal-emulator
(yang dilakukan oleh paket dalam 15.04).XTerm
dan mungkinUXTerm
(saya tidak yakin apa nama paket untuk yang terakhir)sudo apt-get install xorg mate-core --without xterm mate-terminal
aptitude
(atau beberapa manajer paket grafis), Anda dapat (de) memilih paket mana yang akan diinstal, dan jika salah satu mengakibatkan ketergantungan yang rusak, penjelasan (biasanya) akan diberikan.Jawaban:
Jadi, mate-core tergantung pada
mate-desktop-environment-core
yang bergantung padamate-terminal
. Sebuah tergantung tidak dapat rusak dengan mudah. Jugaapt-get
tidakaptitude
mendukung opsi--without
atau--exclude
dan "menahan" paket tidak akan membantu:Tentu, seseorang dapat menggunakan
dpkg --force-depends
untuk menginstal paket, tapi itu mungkin bukan yang Anda inginkan.Kemungkinan akan memenuhi
Depends:
bendera dengan paket boneka:Sekarang
mate-core
harus dapat menginstal tanpamate-terminal
. Ulangi hal yang sama untuk paket lain yang akan dikecualikan.Memang ini adalah upaya yang cukup dan sebuah
--without
pilihan akan menyenangkan. Mungkin bug wishlist dapat dibuka untuk menyediakan fungsionalitas seperti itu di masa depan, tapi entah bagaimana saya ragu bahwa ini akan diimplementasikan.Namun, opsi yang lebih realistis adalah mengajukan petisi kepada pemilik PPA untuk menyediakan paket meta lain untuk MATE dengan
Depends
paket yang lebih rendah .sumber
Jika Anda menggunakan
aptitude
atau manajer paket grafis (Synaptic, dll.), Maka Anda dapat membatalkan pilihan paket mana yang harus diinstal selama tidak menyebabkan masalah ketergantungan.Dalam hal
aptitude
, sebelum menginstal paket (dalam tampilan grafis), itu akan menunjukkan kepada Anda mengapa paket dependen sedang diinstal. Dalam kasus saya, saya menggunakan KDE, jadi tidak punya paket MATE. Jika saya memintanya untuk menginstalmate-core
, saya mendapatkan yang berikut:Perhatikan bahwa
mate-core
ditandai sebagai yang diinstal secara manual, dan banyak paket lainnya sedang diinstal. Untukmate-terminal
paket, di bagian bawah, dikatakan, "mate-desktop-environment-core
[semesta] tergantung padamate-terminal
(> = 1.0.0)". Pergi ke entri untukmate-desktop-environment-core
,"
mate-core
[semesta] tergantung padamate-desktop-environment-core
(> = 1.8.0 + 9)". Inilah sebabnya mengapamate-terminal
sedang diinstal.Sebaliknya, jika paket yang disarankan sedang diinstal (bukan sesuatu yang tergantung pada paket lain),
aptitude
akan memberi tahu Anda, dan Anda dapat mengatakannya untuk tidak menginstal paket itu tanpa dependensi yang rusak. Sebagai contoh:sumber
Metode lain
Unduh paket utama yang bergantung pada paket lainnya. Ekstrak paket, hapus dependensi yang tidak diinginkan, bungkus kembali. Sekarang buka paket baru dengan installer paket gdebi . Ini akan menginstal dependensi baru untuk Anda.
sumber
Ada
apt
sintaks khusus untuk skenario seperti ini: menambahkan tanda hubung (tanda minus) ke sebuah paket akan menghapus / tidak menginstalnya, jadi yang terdekat dengan Andasudo apt-get install xorg mate-core --without xterm mate-terminal
adalahsudo apt-get install xorg mate-core xterm- mate-terminal-
(terlihat di /ubuntu//a/1011439/182923 )Ini tidak akan membantu dalam kasus ini, karena Anda akan mengalami
tetapi tampaknya itu menjadi jawaban untuk pertanyaan spesifik Anda. Jadi untuk referensi, pos lintas ini.
sumber