92 votes

Comment installer un paquet avec apt sans l'invite "Do you want to continue [Y/n] ?" ?

Bien sûr, quand vous tapez :

sudo apt-get install whatever

Il vous demande :

Do you want to continue [Y/n]? 

Y a-t-il un moyen de l'installer sans qu'il me demande si je veux continuer ? Je ne me soucie pas vraiment de l'espace, j'en ai plus qu'assez.

135voto

Rinzwind Points 270388
sudo apt-get install -y whatever

À partir de la page de manuel ( 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.

19voto

Jeff Hubbard Points 5292

Pour apt-get, -y o --assume-yes fonctionnent bien (comme l'a expliqué @rinzwind) et je suppose que c'est la meilleure réponse ici. Pour de nombreuses opérations administratives interactives de ce type, il existe une commande similaire.

Une autre façon assez générique de faire cela est quelque chose comme :

 $ echo "y" | sudo apt-get install edamame_biscuit

(Où edamame-biscuit est le paquet (inventé) que vous voulez installer, et "y" est supposé être une réponse légitime ; remplacez par "yes" ou un autre texte si nécessaire).

Cette méthode a pour particularité d'être interrompue si vous supposez à tort qu'il n'y a qu'une seule invite interactive. S'il y a d'autres invites potentiellement indésirables auxquelles vous ne voulez pas dire oui, vous évitez que le système se mette en route sans vous le demander.

5voto

Braiam Points 64282

Tout d'abord, il faut comprendre pourquoi le message apparaît.

Si le paquet n'a pas de dépendances que vous n'avez pas installées, apt ne vous le demande jamais :

  ~  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) ...

Alors que si vous voulez installer un paquet qui dépend de paquets que vous n'avez pas mentionnés, il vous le demande :

  ~  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] 

Il ne demande pas si vous listez les dépendances explicitement :

  ~  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])

Mais, alors, comment faire pour qu'il ne vous demande rien du tout ? A travers la réponse de Rizwind qui couvre les solutions ad-hoc et scripting (en fait, cette option est plus utilisée dans les scripts) vous pourriez plutôt modifier votre apt.conf et ajouter :

APT::Get::Assume-Yes

Quelque chose comme ça devrait suffire :

echo 'APT::Get::Assume-Yes;' | sudo tee -a /etc/apt/apt.conf.d/00Do-not-ask

Notez que cela n'autorisera pas d'autres invites plus flagrantes, telles que vous devez vérifier comme :

  ~  sudo apt-get install sonar
WARNING: The following packages cannot be authenticated!
  sonar
Install these packages without verification? [y/N] 

C'est pourquoi je ne recommanderais pas l'utilisation de yes | ... car cet avertissement serait ignoré.

1voto

Carl Prothman Points 46

Ajouter -y à toute installation de bibliothèque

Par exemple, : sudo apt-get install -y nodejs

Par exemple, : sudo apt-get install -y postgres

Par exemple, : sudo apt-get install -y mongodb

Il y a --force-yes as well et attention aux espaces accidentels. déprécié pour les distros récentes

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X