Apt-get zainstaluj wiele pakietów bez zatrzymywania się

25

Tworzę skrypt bash, który instaluje różne pakiety za pomocą apt-get install. Zauważam jednak, że jeśli istnieje linia, która mówi:

sudo apt-get install package1 package2 package3

i żaden z pakietów nie zostanie znaleziony, żaden z pozostałych nie zostanie zainstalowany. Jak sprawić, by działał, nawet jeśli nie może znaleźć jednego z pakietów?

Z góry dziękuję.

Hypercube
źródło

Odpowiedzi:

18

Proponuję apt-getopcję

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

ale pamiętaj, że brakujących zależności nie można zignorować, a nawet jeśli użyjesz --force, możesz dostać zepsuty system.

enzotib
źródło
1
Pamiętaj, że --ignore-missingtylko obejścia problemu dotyczącego pobierania. Zobacz superuser.com/a/844627/106974
Izaak
3
To faktycznie nie działa.
leoheck
9
for i in package1 package2 package3; do
  sudo apt-get install $i
done
Aleksandr Levchuk
źródło
5
Trochę brutalna pod względem wydajności (drzewo zależności pakietu jest budowane od podstaw dla każdej iteracji), ale powinno działać dobrze.
Serge Broslavsky
Jak wspominał @blueskin, użycie tej -yopcji byłoby dobre, gdybyś nie chciał z nią wchodzić w interakcje, szczególnie podczas instalowania ogromnej listy pakietów.
pd12
0

Zainstaluj każdy pakiet jako osobną komendę zamiast w pojedynczej komendzie, w ten sposób, jeśli nie uda się zainstalować z powodu nie znalezienia lub innego błędu, nie powstrzyma to innych instalacji. Do którego możesz użyć pętli „for” jak poniżej. Pamiętaj również, aby użyć -yflagi, jeśli instalujesz wiele pakietów, aby uniknąć chaosu pisania yesdla każdego z nich.

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
blueskin
źródło
@Fabby Zredagowałem tekst, aby był wyraźny dla twojej satysfakcji
blueskin
1
To bardziej przypomina edycję istniejącej odpowiedzi tutaj niż nową odpowiedź. ¯ \ _ (ツ) _ / ¯ Przepraszamy! -1 ...
Fabby