Lanjutkan pada kesalahan ketika apt-get menemukan instalasi tidak dapat menemukan masalah paket

11

Ketika saya menjalankan yang berikut:

sudo apt-get install vim abcde php5-cli

Gagal dengan pesan berikut yang merupakan perilaku yang diharapkan:

E: Tidak dapat menemukan paket abcde`.

Saya ingin menginstal vimdan bahkan jika ada kesalahan abcdehanya terus menginstal php5-clipaket. Berarti saya ingin apt-getmelanjutkan daftar, bahkan jika tidak dapat menemukan beberapa paket.

Saya sudah mencoba:

sudo apt-get install --ignore-missing vim abcde php5-cli
tbenz9
sumber

Jawaban:

9

Jawaban singkat: Ada kemungkinan Anda sebenarnya tidak ingin melakukan ini.

Mengapa demikian? Ada banyak diskusi tentang fungsi khusus ini. Salah satunya adalah dalam laporan bug (duplikat) ini dan yang terhubung dengannya.

Diskusi di laporan bug juga menjelaskan bahwa "--ignore-missing" hanya berlaku jika ada masalah mengunduh paket yang seharusnya ada dengan informasi yang dimiliki oleh ´apt-get 'Anda. Ini juga dijelaskan di sini dan dalam dokumentasi.

Apakah ada solusinya?

Jika setelah membaca sumber-sumber sebelumnya Anda masih sangat yakin ingin melakukan ini, di sisi lain, ada opsi (suboptimal tapi agak aman) seperti yang ditentukan oleh pengguna "Aleksandr Levchuk" di sini :

for i in package1 package2 package3; do
  sudo apt-get install $i
done

Atau jika Anda lebih suka maka satu-liner dengan modifikasi minimal:

for i in package1 package2 package3; do sudo apt-get install $i; done

Jika ada banyak paket, Anda dapat menambahkan -ysehingga tidak akan meminta konfirmasi berulang kali:

for i in package1 package2 package3; do
  sudo apt-get install -y $i
done

Atau:

for i in package1 package2 package3; do sudo apt-get install -y $i; done

Semoga ini membantu.

pengguna391035
sumber
Ngomong-ngomong, jika Anda orang seperti saya yang menggunakan Ikan alih-alih Bash, pertama-tama Anda harus mengetikkan "bash" untuk mengganti kerang. Kemudian salin dan tempel perintah itu karena beberapa alasan itu tidak akan berfungsi dengan shell Ikan. Bekerja dengan baik dengan Bash.
Ev-
1

Salah satu cara untuk menghindari hal ini adalah dengan memanggil apt-get sekali untuk setiap paket :

echo package1 package2 package3 | xargs -n 1 sudo apt-get install -y

Atau sebagai fungsi

function install_ignore_fail { echo "$*" | xargs -n 1 sudo apt-get install -y; }

install_ignore_fail package1 package2 package3
xjcl
sumber