Comment installer un paquet avec apt sans l'invite «Voulez-vous continuer [Y / n]?»?


Réponses:


89
sudo apt-get install -y whatever

Depuis 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.

9
(comment vivre dangereusement file)
user2413

Merci beaucoup! Je devrais vraiment utiliser cette page de manuel plus souvent. :)
Luke

2
C'est pourquoi ils sont là @KingShimkus;)
Rinzwind

5
sudo apt-get install -yeah que ce soit ...
BoJack Horseman

Maintenant , si seulement cela a fonctionné pour la mise à niveau du package Docker> <Si vous ne l' avez jamais mis à jour Docker avant, voici une image de ce pops-up dans le terminal même lorsque vous utilisez. --yes: Imgur Il est extrêmement ennuyeux car cette interaction des forces lors de la mise à jour du package .
Spencer D

15

Pour apt-get, -you --assume-yesfonctionne bien (comme @rinzwind l'a expliqué) 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 générique de faire ceci est quelque chose comme:

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

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

Une 'caractéristique' de cette méthode est que cela va casser si vous supposez à tort qu'une seule invite interactive. S'il y a d'autres invites potentiellement indésirables auxquelles vous ne souhaitez peut-être pas répondre, vous évitez de laisser le système se lancer sans rien demander.


13
En outre, yes | sudo apt-get install edamame-biscuit. Yes est une commande qui spams le mot "yes" dans sa sortie. Vous pouvez également faire en sorte que tout autre texte soit affiché, voir page de manuel.
Kroltan

14
@Kroltan La yescommande (par défaut) affiche simplement la lettre ysuivie d'une nouvelle ligne autant de fois qu'il est nécessaire pour remplir le tampon de canalisation. Pour réellement imprimer le mot yes, vous devez utiliser la commande yes yes.
Jonathan Callen

3
yes, excusez-moi, erreur
Kroltan

4
@Braiam Je pense que c'était ça l'essentiel, donc ça ne fait rien si quelqu'un la colle juste dans sa coquille.
Kroltan

2
J'aime particulièrement la partie "Une 'fonctionnalité' de cette méthode est que cela casserait si vous supposiez de manière incorrecte une seule invite interactive." comme spam, tout peut être très dangereux.
BeowulfNode42

4

Tout d'abord, permet de comprendre pourquoi le message apparaît. En fait, si le paquet n'a pas de dépendances que vous n'avez pas déjà installées ou que vous lui avez explicitement dit d'installer, apt ne vous demandera 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) ...

Tandis que si vous voulez installer un paquet qui dépend de paquets que vous n'avez pas mentionné, il vous demanderait:

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

Ce qui malgré tout, ne demanderait pas si vous dites implicitement que vous souhaitez installer ces paquets:

➜  ~  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 que cela ne vous le demande pas définitivement? Grâce à Rizwind, answer devrait couvrir les solutions ad-hoc et de script (en fait, cette option est davantage utilisée dans les scripts), vous pouvez plutôt modifier votre apt.conffichier 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 ne permettra pas d'autres invites plus flagrantes que vous devriez 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 | ..., puisque cet avertissement serait ignoré.


Pour "AVERTISSEMENT: les packages suivants ne peuvent pas être authentifiés!", Que faut-il faire à ce sujet? Je reçois ceci pour une image de Docker ( python:3.6-slim). Devrais-je poser une question distincte pour cela?
Martin Thoma

@MartinThoma généralement, c'est un problème avec la liste de paquets non mise à jour. Exécutez apt-get update avant d'installer. Si cela ne supprime pas le message, posez une question avec autant de détails que possible, jusqu'à la création de l'image du menu fixe.
Braiam

0

Ajouter -yà n'importe quelle bibliothèque installer

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 prudent des espaces accidentels. déprécié pour les distributions récentes

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.