Naturalmente quando digiti:
sudo apt-get install whatever
Ti chiede:
Do you want to continue [Y/n]?
Esiste un modo per installarlo senza che mi chieda se voglio continuare? Non mi interessa davvero lo spazio, ne ho più di abbastanza.
Naturalmente quando digiti:
sudo apt-get install whatever
Ti chiede:
Do you want to continue [Y/n]?
Esiste un modo per installarlo senza che mi chieda se voglio continuare? Non mi interessa davvero lo spazio, ne ho più di abbastanza.
Risposte:
sudo apt-get install -y whatever
Dalla pagina man ( man apt-get
):
-y, --yes, --assume-yes
Automatic yes to prompts; assume "yes" as answer to all prompts and
run non-interactively. If an undesirable situation, such as
changing a held package, trying to install a unauthenticated
package or removing an essential package occurs then apt-get will
abort. Configuration Item: APT::Get::Assume-Yes.
--yes
: Imgur È eccezionalmente fastidioso poiché forza l'interazione durante l'aggiornamento del pacchetto .
Per apt-get -y
o --assume-yes
funziona bene (come spiegato da @rinzwind) e presumo che sia la risposta migliore qui. Per molte di queste operazioni amministrative interattive, esiste un comando simile.
Un altro modo piuttosto generico per farlo è qualcosa di simile:
$ echo "y" | sudo apt-get install edamame_biscuit
(Dove edamame-biscuit è il pacchetto (inventato) che si desidera installare e si presume che "y" sia una risposta legittima; sostituire con "sì" o altro testo, se necessario.)
Una "caratteristica" di questo metodo è che si interromperà se si assume erroneamente un solo prompt interattivo. Se ci sono alcuni prompt potenzialmente indesiderati a cui potresti non voler dire di sì, eviti la situazione di far scorrere il sistema senza chiedere.
yes | sudo apt-get install edamame-biscuit
. Sì è un comando che invia la parola "sì" al suo output. Puoi anche fare in modo che venga emesso qualsiasi altro testo secondo necessità, vedi la manpage.
yes
comando (per impostazione predefinita) emette solo la lettera y
seguita da una nuova riga quante volte è necessario per riempire il buffer delle pipe. Per stampare effettivamente la parola yes
, devi usare il comando yes yes
.
yes
, perdona il mio errore
Prima di tutto, cerchiamo di capire perché appare il messaggio. Infatti, se il pacchetto non ha dipendenze che non hai già installato o che hai esplicitamente detto di installare, apt non ti chiede mai:
➜ ~ sudo apt-get -qq install xfce4-screenshooter
Selecting previously unselected package xfce4-screenshooter.
(Reading database ... 296146 files and directories currently installed.)
Preparing to unpack .../xfce4-screenshooter_1.8.1-2_amd64.deb ...
Unpacking xfce4-screenshooter (1.8.1-2) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for gnome-menus (3.13.3-1) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Processing triggers for mime-support (3.56) ...
Setting up xfce4-screenshooter (1.8.1-2) ...
Mentre se vuoi installare un pacchetto che dipende da pacchetti che non hai menzionato, ti chiederemo:
➜ ~ sudo apt-get -q install avis
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
libjzlib-java libmina-java libslf4j-java
Suggested packages:
libmina-java-doc libspring-beans-java libcommons-logging-java
liblog4j1.2-java
The following NEW packages will be installed:
avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Need to get 720 kB of archives.
After this operation, 1,258 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Ciò nonostante, non ti chiederei se dici anche implicitamente di voler installare quel pacchetto:
➜ ~ apt-get -q install avis libjzlib-java libmina-java libslf4j-java
Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
libmina-java-doc libspring-beans-java libcommons-logging-java
liblog4j1.2-java
The following NEW packages will be installed:
avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Inst libjzlib-java (1.1.3-1 Debian:testing [all])
Inst libslf4j-java (1.7.7-1 Debian:testing [all])
Inst libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Inst avis (1.2.2-2 Debian:testing [all])
Conf libjzlib-java (1.1.3-1 Debian:testing [all])
Conf libslf4j-java (1.7.7-1 Debian:testing [all])
Conf libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Conf avis (1.2.2-2 Debian:testing [all])
Ma, allora, come fare in modo che non ti chieda definitivamente? Tramite Rizwind la risposta dovrebbe riguardare soluzioni ad hoc e di scripting (in effetti, tale opzione è più utilizzata negli script) è possibile invece modificare il apt.conf
file e aggiungere:
APT::Get::Assume-Yes
Qualcosa del genere dovrebbe essere sufficiente:
echo 'APT::Get::Assume-Yes;' | sudo tee -a /etc/apt/apt.conf.d/00Do-not-ask
Nota, questo non consentirà altre richieste più significative che dovresti verificare , come:
➜ ~ sudo apt-get install sonar
WARNING: The following packages cannot be authenticated!
sonar
Install these packages without verification? [y/N]
Ecco perché non consiglierei l'uso di yes | ...
, poiché questo avviso verrebbe ignorato.
python:3.6-slim
). Dovrei fare una domanda separata per questo?
-y
a qualsiasi installazione di libreriaAd esempio :sudo apt-get install -y nodejs
Ad esempio :sudo apt-get install -y postgres
Ad esempio :sudo apt-get install -y mongodb
C'è --force-yes as well
, e attento agli spazi accidentali.
ammortizzato per le distro recenti