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

40

Bien sûr, lorsque 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 que cela me demande si je veux continuer? Je ne me soucie pas vraiment de l'espace, j'en ai plus que suffisant.

    
posée Luke 14.09.2014 - 18:35
la source

3 réponses

70
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.
    
réponse donnée Rinzwind 14.09.2014 - 18:37
la source
14

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

Une autre manière générique de faire ceci est quelque chose comme:

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

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

Une "fonctionnalité" de cette méthode est que cela se cassera si vous ne supposez pas correctement une seule invite interactive. Si vous ne souhaitez pas répondre par l'affirmative à certains messages potentiellement indésirables, vous évitez que le système fonctionne sans demander.

    
réponse donnée belacqua 14.09.2014 - 21:26
la source
2

Tout d’abord, comprenons 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 demandé d'installer, apt ne vous 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) ...

Si vous souhaitez installer un paquet qui dépend de paquetages, vous n’aurez pas mentionné:

➜  ~  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, même si, ne vous demanderait pas si vous dites implicitement que vous voulez 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 en sorte qu'il ne vous demande pas définitivement? Grâce à Rizwind, la réponse doit couvrir les solutions ad-hoc et de script (en fait, cette option est plus utilisée dans les scripts), vous pouvez plutôt modifier votre fichier 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 ne permettra pas d’autres invites plus complexes 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 | ... , car cet avertissement serait ignoré.

    
réponse donnée Braiam 22.09.2014 - 18:37
la source

Lire d'autres questions sur les étiquettes