Apa yang dilakukan apt-get --fix-missing dan kapan berguna?

38

Dari halaman manual:

-m, --ignore-missing, --fix-missing
  Ignore missing packages; if packages cannot be retrieved or fail the integrity 
  check after retrieval (corrupted package files), hold back those packages and 
  handle the result. 

  Use of this option together with -f may produce an error in some situations. If a 
  package is selected for installation (particularly if it is mentioned on the 
  command line) and it could not be downloaded then it will be silently held back. 

 Configuration Item: APT::Get::Fix-Missing.

Ini membingungkan:

  1. Bagaimana 'mengabaikan yang hilang' dan 'memperbaiki yang hilang' menjadi sinonim untuk opsi yang sama?
  2. Apa yang dimaksud 'menahan' dalam konteks ini?
  3. Apa artinya 'menangani hasil'?

Dan dalam situasi apa itu berguna? Ketika Anda mencoba menginstal paket yang tidak ada dalam indeks apt, Anda mendapatkan pesan ini:

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Apakah kedua saran ( apt-get update, apt-get install --fix-missing...) sama sekali setara?

Steve Bennett
sumber
Yap, ini aneh. Saya selalu berpikir itu --fix-missingadalah sinonim dari -f. Namun, perilaku tersebut harus sama dengan Synaptic: cobalah memperbarui hanya paket yang diunduh.
Danatela

Jawaban:

35

Oke, dalam urutan:

  • (1) -m mengabaikan paket yang hilang atau memperbaiki yang hilang (sebagai lawan dari -f paket rusak ). Opsi ini adalah sinonim untuk opsi yang sama. (Karena untuk memperbaikinya mengabaikan dari sini dibutuhkan keanehan sendiri :-))
  • (2-3) Ketika Anda menginstal / meningkatkan dengan apt-get upgradeatau dengan apt-get install somepackage, biasanya apt mencoba memperbarui dependensi. Ini berarti bahwa ia mungkin menemukan bahwa beberapa paket memerlukan versi baru atau yang diperbarui dari paket yang ada, dan seterusnya dalam kaskade dependensi. Jika beberapa paket tersebut tidak ada atau gagal dalam pemeriksaan integritas, tampaknya untuk menangguhkan paket ini, dan ingin Anda menangani hasilnya dengan mengikuti metode pegangan dari paket yang membutuhkan, jika memungkinkan. Seringkali berhenti menginstal paket ini.
  • (4) Dengan apt-get updateAnda mengunduh apa yang diperlukan untuk membangun kembali daftar dependensi.
    Setelah itu Anda dapat mencoba apt-get install --fix-missinglagi, dengan harapan bahwa daftar yang diperbarui memperbaiki masalah dengan sendirinya.
    Kadang-kadang ini bisa sangat berguna, seperti ketika Anda menambahkan sumber untuk paket di Anda /etc/atp/sources.list, atau ketika file indeks paket telah diperbarui.

Tidak semua program yang dapat Anda gunakan di bawah Ubuntu berasal dari repositori resmi Ubuntu, dan diperbarui dengan versi yang sama - ini jarang terjadi.

Selain itu, ada banyak alasan mengapa instalasi dapat tiba-tiba terputus (sinyal mematikan, kekurangan daya, kegagalan driver grafis ...) Dalam situasi itu, apt-get updatemungkin tidak berfungsi, jadi Anda harus terlebih dahulu memperbaiki masalah dengan apt-get install --fix-missingatau dengan beberapa dpkg perintah.

Anda dapat melihat apt-get install --fix-missingsebagai versi perintah yang ringan dan ramah seperti dpkg-reconfigure --allatau dpkg.

Cepat
sumber
36
Ini telah sangat tervvotasikan tetapi saya, untuk satu, tidak dapat mengerti sepatah kata pun tentang itu.
LondonRob
-1

Langkah-langkah berikut akan menyelesaikan masalah:

  • Perbarui nameserver 8.8.8.8di/etc/resolve.conf
  • Menjalankan sudo apt-get update
Suresh
sumber