GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Apt Memilih Paket Spesifik Untuk Diinstal Untuk Menyediakan Paket Virtual yang Dibutuhkan Sebagai Ketergantungan?

Misalnya, awk adalah paket virtual yang disediakan oleh original-awk , mawk dan gawk .

Mencoba menginstalnya secara langsung menghasilkan:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package awk is a virtual package provided by:
  original-awk:i386 2012-12-20-4
  mawk:i386 1.3.3-17ubuntu2
  gawk:i386 1:4.1.1+dfsg-1
  original-awk 2012-12-20-4
  mawk 1.3.3-17ubuntu2
  gawk 1:4.1.1+dfsg-1
You should explicitly select one to install.

E: Package 'awk' has no installation candidate

Namun banyak paket virtual diperlukan sebagai dependensi oleh paket yang diinstal secara default, misalnya awk sendiri dibutuhkan oleh base-files , yang memeriksa log APT diinstal bersama dengan sekelompok paket lain melalui apt-get --yes; entah bagaimana APT akhirnya memilih salah satu dari tiga secara otomatis (saya cukup yakin itu mawk , tapi bukan itu inti pertanyaannya).

Bagaimana cara APT memilih paket khusus untuk diinstal dalam kasus ini?

Jawaban yang Diterima:

Bagaimana cara APT memilih paket khusus untuk diinstal dalam kasus ini?

APT tidak memilih paket. Ini memberitahu:

Anda harus memilih satu secara eksplisit untuk menginstal.

Jika Anda mencoba memilih paket secara manual, paket tersebut tidak akan diinstal.

Dalam kasus file dasar tergantung pada awk itu tidak relevan. Pertama, itu sebenarnya Bergantung pada awk, memaksa dpkg untuk menginstal awk sebelum mulai menginstal file dasar; kedua, mawk memiliki prioritas yang diperlukan yang diinstal pada instalasi sistem, dan akan mengganggu Anda jika Anda mencoba untuk menghapusnya. Jadi, jangan lakukan itu.

Sekarang, menurut sumber, apt mencoba memuaskan ketergantungan terlebih dahulu sebelum mencoba dengan paket virtual (yaitu, jika depend adalah firefox | www-browser , memeriksa apakah ada paket yang diinstal, lalu coba instal firefox jika tidak ada). Jika paket non-virtual tidak tersedia, tampaknya hanya mengulangi semua paket yang menyediakan paket virtual, jika tidak ada dependensi lain yang rusak. Bukti komentar lain dari perilaku ini adalah ini yang mengarah ke fungsi GrpIterator::FindPreferredPkg.

Terkait:Mengatur izin eksekusi pada gambar yang dipasang?
Ubuntu
  1. Bagaimana cara menggunakan yum untuk menginstal versi Paket tertentu?

  2. Bagaimana Cara Menginstal File Deb, Dengan Dpkg -i Atau Dengan Apt?

  3. Bagaimana Membuat Synaptic Default Untuk Menginstal File .deb??

  1. Cara menginstal Webmin di Ubuntu 20.04

  2. Cara Menginstal Kvm di Ubuntu 18.04

  3. Bagaimana Cara Memasang Rayap?

  1. Cara Memasang Benang di Ubuntu 20.04

  2. Cara Menginstal Spotify di Ubuntu 20.04

  3. Cara Menginstal Vagrant di Ubuntu 20.04