Ik probeer een niet-interactief systeemupdatescript te schrijven.
Vraag:
als het volgende goed werkt:
yes | dpkg --configure -a
zal het volgende ook heel goed werken ?:
yes | apt-get install --fix-broken
Antwoord
Je hebt -y
of --yes
of --assume-yes
parameters in apt-get
.
Probeer zoiets als
sudo apt-get install -y <package-name>
Details:
De man-pagina van apt-get (je kunt ook verwijzen naar man-pagina met man apt-get
commando) vermeldt:
-y, –yes, –assume-yes
Automatisch ja op prompts. Veronderstel “ja” als antwoord op alle vragen en voer het niet-interactief uit. Als zich een ongewenste situatie voordoet, zoals het wijzigen van een vastgehouden pakket of het verwijderen van een essentieel pakket, zal apt-get afgebroken worden. Configuratie-item: APT :: Get :: Assume-Yes.
In tegenstelling tot deze parameter heb je ook
–assume-no
Automatisch” nee “voor alle prompts. Configuratie-item: APT :: Get :: Assume-No.
Bewerken
Voor de opmerking van Vlastimil heb ik geprobeerd
sudo apt-get install --fix-broken --assume-yes
En het werkt. De --fix-broken
een deel van de opdracht kan worden vervangen door -f
en --assume-yes
door -y
of --yes
voor het gemak. Hiermee wordt geen specifiek pakket geïnstalleerd, maar “kan alle pakketten weglaten zodat APT een waarschijnlijke oplossing kan afleiden”, zoals vermeld op de handleidingpagina .