Rispondere automaticamente "Sì" quando si utilizza apt-get install
C'è un modo per far sì che apt-get install
risponda “sì” alla domanda “Vuoi continuare [sì/no]?
C'è un modo per far sì che apt-get install
risponda “sì” alla domanda “Vuoi continuare [sì/no]?
tramite la apt-get man page :
apt-get -y install [packagename]
Il problema con:
apt-get --yes install $something
``` ```
apt-get --yes --force-yes install $something
è che chiederà una conferma manuale se la chiave pubblica del proprietario della confezione non è nel portachiavi o in altre condizioni. per essere sicuri che non chieda una conferma basta fare così:
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Se si desidera avere queste impostazioni permanenti, creare un file in /etc/apt/apt.conf.d/, come /etc/apt/apt.conf.d/90forceyes con il seguente contenuto:
&001
Si noti che se si vuole anche passare automaticamente alle risposte predefinite quando appare un prompt interattivo, si può usare DEBIAN_FRONTEND=noninteractive
Single install:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Ad es.
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
``` ```
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
Tutti gli aggiornamenti:
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
È possibile impostare opzioni più fini con -o Dpkg::Options::="--force-confdef"
e -o Dpkg::Options::="--force-confold"
.
Esempi:
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
``` &001
o
&001
* * * *
Esempio di prompt interattivo:
![enter image description here](https://i.stack.imgur.com/friJc.png)
Lettura interessante: [ Eseguire un'installazione non presidiata di un pacchetto Debian ](http://www.microhowto.info/howto/perform_an_unattended_installation_of_a_debian_package.html)
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Questo dovrebbe essere almeno in /etc/apt/apt.conf
e commentato. Temo che Ubuntu stia prendendo la tattica di Microsoft di chiedere sempre il permesso.
“Sei sicuro?”, certo che sono sicuro, non sono una scimmia ammaestrata che si limita a digitare alla tastiera, andando a cliccare felice.
Accanto la porta chiederà: “Sei sicuro di voler uscire? ” Il forno chiederà: “Sei sicuro di voler cucinare?” L'automobile chiederà: “Sei sicuro di voler frenare?” L'estintore chiederà: “Sei sicuro di voler spegnere il fuoco?” Mi dispiace Dave, non posso lasciartelo fare. HAL9000 potrebbe usare una contrazione ma Data non potrebbe, o non potrebbe.
Dal apt-get HOWTO
Utilizzare l'interruttore -y
:apt-get -y install packagename
apt-get -y update
apt-get -y install [package]
generalmente le opzioni del manuale dovrebbero funzionare bene
apt-get -y --force-yes install package
``` ```
yes | apt-get -y --force-yes install package
se non ha successo si può provare ad usare il comando yes
.
yes no | apt-get install package
``` &001
ha usato questo con il mio script di provisioning shell vagabondo
PS: nel caso in cui si desidera non interattivo ma con l'indicazione generale di no allora si può provare questo:
&001
Stavo cercando un modo per selezionare un non-default in uno script, in particolare durante l'installazione di wireshark, e ho finito per usare tmux per interagire con una shell, come segue:
# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach
Se volete sempre l'argomento -y vi consiglio di aggiungere la linea
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
nel vostro .bashrc. Questo, come spiega il commento, aggiungerà automaticamente l'argomento -y a tutti i vostri comandi apt-get e quindi approva tutti i download.
NOTA: Questo rimarrà vero fino a quando non ripristinate il vostro .bashrc e riavviate la shell.