Continua in caso di errore quando apt-get rileva un'installazione impossibile individuare il problema del pacchetto


11

Quando eseguo quanto segue:

sudo apt-get install vim abcde php5-cli

Non riesce con il seguente messaggio che rappresenta il comportamento previsto:

E: Impossibile trovare il pacchetto abcde`.

Voglio che si installi vime anche se c'è un errore abcdecontinua a installare il php5-clipacchetto. Significato Voglio apt-getcontinuare l'elenco, anche se non riesce a trovare alcuni dei pacchetti.

Ho provato:

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

Risposte:


9

Risposta breve: è possibile che tu non voglia farlo.

Perché? Ci sono state molte discussioni su questa particolare funzionalità. Uno di questi è in questo rapporto di duplicazione (duplicato) e quello a cui è collegato.

La discussione sulla segnalazione di bug spiega inoltre che "--ignore-missing" si applica solo se si verifica un problema durante il download di un pacchetto che altrimenti dovrebbe esistere in base alle informazioni che ha "get-get". Questo è anche spiegato qui e nella documentazione.

C'è una soluzione?

Se dopo aver letto le fonti precedenti sei ancora molto sicuro di volerlo fare, allora, d'altra parte, ci sono opzioni (non ottimali ma piuttosto sicure) come quella specificata dall'utente "Aleksandr Levchuk" qui :

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

Oppure, se preferisci una linea singola con modifiche minime:

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

Se ci sono molti pacchetti, è possibile aggiungere in -ymodo che non chieda conferma ripetutamente:

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

O:

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

Spero che sia di aiuto.


A proposito, se sei qualcuno come me che usa Fish invece di Bash, dovrai prima digitare "bash" per cambiare shell. Quindi copia e incolla il comando poiché per qualche motivo non funzionerà la shell di pesce. Funziona bene con Bash.
Ev

1

Un modo per aggirare questo è invocare apt-get una volta per ogni pacchetto :

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

O come una funzione

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

install_ignore_fail package1 package2 package3
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.