Réponses:
via la page de manuel apt-get :
apt-get -y install [packagename]
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";
-y
devenaient ennuyeux. (En plus, c'est une réponse plus complète.)
--force-yes
: comme cette réponse à un fil de discussion surdebian-devel
suggère, --force-yes
pourrait 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
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:
Lecture intéressante: effectuer une installation sans surveillance d'un paquet Debian
-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.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Cela devrait au moins être /etc/apt/apt.conf
et 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.
À partir du HOWTO apt-get
Utilisez le -y
commutateur:
apt-get -y install packagename
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 yes
commande.
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
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.
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