Répondez automatiquement 'Oui' lorsque vous utilisez apt-get install


356

Existe-t-il un moyen de apt-get installrépondre "oui" à la question "Voulez-vous continuer [y / N]?"?

Réponses:



175

Le problème avec:

apt-get --yes install $something

Est-ce qu'il demandera une confirmation manuelle si la clé publique du propriétaire de la signature du paquet ne se trouve pas dans le trousseau de clés, ou d'autres conditions. pour être sûr qu'il ne demande pas de confirmation, procédez comme suit:

apt-get --yes --force-yes install $something

Si vous souhaitez que ces paramètres soient permanents, créez un fichier dans /etc/apt/apt.conf.d/, tel que /etc/apt/apt.conf.d/90forceyes avec le contenu suivant:

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

3
+1 pour la variété. Tous -ydevenaient ennuyeux. (En plus, c'est une réponse plus complète.)
Dennis Williamson Le

1
Est-ce que cela fonctionnera quand il sera écrit "Pour continuer, tapez la phrase" Oui, fais ce que je dis! "" Aussi? Si non, quelle est la solution de rechange alors? Je rencontre cela en essayant de remplacer sysvinit par systemd dans mon image debian chrootée.
Lennart Rolland

13
S'il vous plaît ne jamais utiliser --force-yes: comme cette réponse à un fil de discussion surdebian-devel suggère, --force-yespourrait rendre le système inutilisable. (Je ne vote pas parce que la réponse résout réellement le problème énoncé par l'OP, mais j'ajouterais quand même un
gros

7
APT :: Get :: Assume-Yes "true"; m'a aidé à éviter d'interrompre une installation dans un conteneur Docker.
Mehdi Sadeghi

3
force-yes est obsolète. tracker.mender.io/browse/CFE-2360
reporté le

53

Notez que si vous souhaitez également consulter automatiquement les réponses par défaut lorsqu'une invite interactive apparaît, vous pouvez utiliser DEBIAN_FRONTEND=noninteractive

Installation unique:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]

Par exemple:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix

Toutes les mises à jour:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y update 

Vous pouvez configurer des options plus fines avec -o Dpkg::Options::="--force-confdef"et -o Dpkg::Options::="--force-confold".

Exemples:

apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"

ou

apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

Exemple d'invite interactive:

entrez la description de l'image ici

Lecture intéressante: effectuer une installation sans surveillance d'un paquet Debian


1
Très bonne réponse. Même avec -y, j'ai toujours reçu des invites me demandant si je voulais redémarrer les services. J'avais besoin de cela pour éliminer complètement toutes les invites.
Wisbucky le

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

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

Cela devrait au moins être /etc/apt/apt.confet commenté. Je m'inquiète que Ubuntu prenne la décision de Microsoft de toujours demander l'autorisation.

"Êtes-vous sûr?", Bien sûr, je ne suis pas un singe entraîné, il suffit de taper au clavier, d'aller cliquer heureux.

Ensuite, la porte demandera: "Êtes-vous sûr de vouloir sortir?"
Le four demandera: "Êtes-vous sûr de vouloir cuisiner?"
La voiture demandera: "Êtes-vous sûr de vouloir appliquer les freins?"
L'extincteur demandera: "Êtes-vous sûr de vouloir éteindre le feu?"
Je suis désolé Dave, je ne peux pas te laisser faire ça.
HAL9000 pourrait utiliser une contraction mais Data ne pourrait pas ou ne pourrait pas.


3
La différence avec HAL9000 et dpkg qui demandent l’autorisation est que HAL a répondu «non, point», alors que l’option «oui, fais ce que je dis» n’apparaît que si vous êtes sur le point de casser complètement votre système. Si c'est ce que vous voulez, bien sûr, allez-y. Mais avoir un avertissement dans ce cas semble raisonnable.
Wouter Verhelst


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

2
+1, mais pourquoi updatebesoin de permission?
Amyassin

@amyassin, la apt-get updatecommande nécessite des autorisations root car elle met à jour les listes de packages locaux (index), qui sont des fichiers système appartenant à root.
Jjmontes

3

généralement les options du manuel devraient bien fonctionner

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

Si cela ne réussit pas, vous pouvez essayer d'utiliser la yescommande.

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

a utilisé cela avec mon script de provisioning shell vagrant

PS: au cas où vous voudriez non-interactif mais avec le non-énoncé général, vous pouvez essayer ceci:

yes no | apt-get install package

1

Le nouvel alias ( bien ) aptprend également le commutateur -y( --yes):

sudo apt -y upgrade

1

Si vous voulez toujours l'argument -y, je vous conseillerais d'ajouter la ligne

alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands

dans votre .bashrc. Comme l'explique le commentaire, cela ajoutera automatiquement l'argument -y à toutes vos commandes apt-get et approuvera donc tous les téléchargements.


Remarque: cela restera vrai jusqu'à ce que vous reveniez votre .bashrc et redémarrez le shell.


1

Je cherchais un moyen de sélectionner une valeur autre que celle par défaut dans un script, en particulier lors de l'installation de Wireshark, et j'ai fini par utiliser tmux pour interagir avec un shell, comme suit:

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