Rispondi automaticamente a "Sì" quando usi apt-get install


356

C'è un modo per apt-get installrispondere "sì" a "Vuoi continuare [y / N]?"?

Risposte:



175

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";

3
+1 per varietà. Tutti -ystavano diventando noiosi. (Inoltre è una risposta più completa.)
Dennis Williamson,

1
Funzionerà quando si dice "Per continuare, digitare anche la frase" Sì, fai come dico io! "? In caso contrario, qual è il problema allora? Lo incontro quando provo a sostituire sysvinit con systemd nella mia immagine debian chroot.
Lennart Rolland,

13
Non usare mai --force-yes: come suggerisce questa risposta a un thread correlatodebian-devel , --force-yespotrebbe 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.)
kostix

7
APT :: Get :: Assume-Yes "true"; mi ha aiutato a evitare l'interruzione in un'installazione in un contenitore docker.
Mehdi Sadeghi,

3
force-yes è stato deprecato. tracker.mender.io/browse/CFE-2360
rrawat

53

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:

inserisci qui la descrizione dell'immagine

Lettura interessante: eseguire un'installazione automatica di un pacchetto Debian


1
Bella risposta. Anche con -y, ho ancora ricevuto richieste che chiedevano se volevo riavviare i servizi. Ne avevo bisogno per eliminare completamente tutte le istruzioni.
wisbucky

14
APT::Get::Assume-Yes "true";

APT::Get::force-yes "true";

Questo dovrebbe almeno essere /etc/apt/apt.confinserito 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.


3
La differenza con HAL9000 e dpkg che chiede il permesso è che HAL ha detto "no, punto", mentre la cosa "Sì, fai come ho detto" si presenta solo se stai per rompere completamente e completamente il tuo sistema. Se è quello che vuoi, certo, vai avanti. Ma avere un avvertimento in quel caso sembra ragionevole.
Wouter Verhelst,


7
apt-get -y update
apt-get -y install [package]

2
+1, ma perché è updatenecessaria l'autorizzazione?
amyassin,

@amyassin il apt-get updatecomando richiede i permessi di root perché aggiorna gli elenchi di pacchetti locali (indici), che sono file di sistema di proprietà di root.
Jjmontes,

3

in generale le opzioni del manuale dovrebbero funzionare bene

apt-get -y --force-yes install package

se non riesce puoi provare a usare il yescomando.

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

1

Il nuovo ( bene ) aptalias prende anche l' interruttore -y( --yes):

sudo apt -y upgrade

1

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.


1

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.