Apt-get installa più pacchetti senza fermarsi


25

Sto realizzando uno script bash che installa vari pacchetti usando apt-get install. Tuttavia, noto che se esiste una riga che dice:

sudo apt-get install package1 package2 package3

e nessuno dei pacchetti non viene trovato, nessuno degli altri verrà installato. Come posso farlo continuare anche se non riesce a trovare uno dei pacchetti?

Grazie in anticipo.

Risposte:


18

Suggerisco apt-getun'opzione

sudo apt-get --ignore-missing install $list_of_packages

ma tieni presente che le dipendenze mancanti non possono essere ignorate e anche se lo usi --forcepuoi ottenere un sistema guasto.


1
Si noti che --ignore-missingsolo soluzioni alternative per un problema nel download. Vedi superuser.com/a/844627/106974
IsaacS

3
Questo in realtà non funziona.
leoheck,

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

5
Un po 'brutale per quanto riguarda le prestazioni (l'albero delle dipendenze dei pacchetti viene creato da zero per ogni iterazione), ma dovrebbe funzionare bene.
Serge Broslavsky,

Come accennato a @blueskin, l'uso -ydell'opzione sarebbe utile se non si volesse interagire con esso, specialmente durante l'installazione di un enorme elenco di pacchetti.
pd12,

0

Installa ciascun pacchetto come comando separato anziché in un singolo comando, in questo modo se non si riesce a installare a causa di un errore non trovato o di qualche altro errore, non si fermerà l'installazione degli altri. Per cui è possibile utilizzare il ciclo 'for' come di seguito. Inoltre, ricorda di usare il -yflag se installi molti pacchetti, per evitare il caos di digitare yesper ognuno.

INSTALL_PKGS="pk1 pk2 pk3 pk4 pk5 ... and so ... on ..pk_gogol"
for i in $INSTALL_PKGS; do
  sudo apt-get install -y $i
done

@Fabby Ho modificato il testo per renderlo esplicito per la tua soddisfazione
blueskin il

1
Sembra più una modifica alla risposta esistente qui che una nuova risposta. ¯ \ _ (ツ) _ / ¯ Spiacente! -1 ...
Fabby,
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.