Jag försöker skriva ett icke-interaktivt systemuppdateringsskript.
Fråga:
om följande fungerar bra:
yes | dpkg --configure -a
fungerar följande också mycket bra ?:
yes | apt-get install --fix-broken
Svar
Du har -y
eller --yes
eller --assume-yes
parametrar i apt-get
.
Prova något liknande
sudo apt-get install -y <package-name>
Detaljer:
manuell sida för apt-get (Du kan också hänvisa till manuell sida med man apt-get
-kommando) nämner:
-y, –yes, –assume-yes
Automatisk ja till uppmaningar. Antag ”ja” som svar på alla uppmaningar och kör icke-interaktivt. Om en oönskad situation, såsom att ändra ett paket som hålls eller ta bort ett viktigt paket, inträffar kommer apt-get att avbrytas. Konfigurationsobjekt: APT :: Get :: Assume-Yes.
I motsats till denna parameter har du också
–assume-no
Automatisk” nej ”till alla uppmaningar. Konfigurationsobjekt: APT :: Get :: Assume-No.
Redigera
För Vlastimils kommentar försökte jag
sudo apt-get install --fix-broken --assume-yes
Och det fungerar. --fix-broken
en del av kommandot kan ersättas med -f
och --assume-yes
med -y
eller --yes
för enkelhets skull. Detta kommer inte att installera något paket specifikt men ”kan utelämna alla paket för att tillåta APT att dra fram en sannolik lösning”, som nämns på manualsidan .