Risposte:
tramite la pagina man apt-get :
apt-get -y install [packagename]
Il problema con:
apt-get --yes install $something
è che richiederà una conferma manuale se la chiave pubblica del proprietario della firma del pacchetto non si trova nel portachiavi o in altre condizioni. per essere sicuro che non richiede una conferma basta fare questo:
apt-get --yes --force-yes install $something
Se vuoi che queste impostazioni siano permanenti, crea un file in /etc/apt/apt.conf.d/, come /etc/apt/apt.conf.d/90forceyes con il seguente contenuto:
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
-y
stavano diventando noiosi. (Inoltre è una risposta più completa.)
--force-yes
: come suggerisce questa risposta a un thread correlatodebian-devel
, --force-yes
potrebbe rendere il sistema inutilizzabile. (Non sto effettuando il downvoting perché la risposta risolve effettivamente il problema come indicato dall'OP, ma aggiungerei comunque un GRANDE AVVISO ROSSO alla risposta.)
Si noti che se si desidera anche passare automaticamente alle risposte predefinite quando viene visualizzato un prompt interattivo, è possibile utilizzare DEBIAN_FRONTEND=noninteractive
Installazione singola:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Per esempio:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
Tutti gli aggiornamenti:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
È possibile impostare opzioni più fini con -o Dpkg::Options::="--force-confdef"
e -o Dpkg::Options::="--force-confold"
.
Esempi:
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
o
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Esempio di prompt interattivo:
Lettura interessante: eseguire un'installazione automatica di un pacchetto Debian
-y
, ho ancora ricevuto richieste che chiedevano se volevo riavviare i servizi. Ne avevo bisogno per eliminare completamente tutte le istruzioni.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Questo dovrebbe almeno essere /etc/apt/apt.conf
inserito e commentato. Temo che Ubuntu stia prendendo la virgola Microsoft chiedendo sempre il permesso.
"Sei sicuro?", Certo che sono sicuro, non sono una scimmia addestrata che sta semplicemente digitando sulla tastiera, facendo clic felice.
Successivamente la porta chiederà: "Sei sicuro di voler uscire?"
Il forno chiederà: "Sei sicuro di voler cucinare?"
L'automobile chiederà: "Sei sicuro di voler applicare i freni?"
L'estintore chiederà "Sei sicuro di voler spegnere l'incendio?"
Mi dispiace Dave, non posso permetterti di farlo.
HAL9000 potrebbe usare una contrazione ma i dati non potrebbero o non potrebbero.
Dal apt-get HOWTO
Usa l' -y
interruttore:
apt-get -y install packagename
in generale le opzioni del manuale dovrebbero funzionare bene
apt-get -y --force-yes install package
se non riesce puoi provare a usare il yes
comando.
yes | apt-get -y --force-yes install package
ho usato questo con il mio script di provisioning della shell vagabondo
PS: nel caso in cui desideri non interattivo ma con una dichiarazione generalmente no, puoi provare questo:
yes no | apt-get install package
Se vuoi sempre l'argomento -y ti consiglio di aggiungere la riga
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
nel tuo .bashrc. Questo, come spiega il commento, aggiungerà automaticamente l'argomento -y a tutti i tuoi comandi apt-get e quindi approva tutti i download.
NOTA: questo rimarrà vero fino a quando non ripristinerai il .bashrc e riavvierai la shell.
Stavo cercando un modo per selezionare un non predefinito 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