92 votes

Contourner l'invite oui/non dans 'apt-get upgrade'.

Afin d'éviter de taper toutes les commandes apt-get lors de la mise à jour de mon ordinateur, j'ai créé une simple commande alias pour le faire. Mais j'aimerais vraiment pouvoir taper mon alias et le laisser faire son travail, sans avoir à attendre l'invite oui/non pour taper "y". Existe-t-il un moyen simple de contourner cette invite ou peut-être d'ajouter "oui" dans l'alias quelque part ?

0voto

Mako-Wish Points 1

La réponse de @wojox est correcte, mais vous pouvez pousser l'alias encore plus loin pour plus de fonctionnalités. Je l'utilise depuis un certain temps maintenant sans problème. Cela permettra d'effectuer les mises à niveau (en confirmant avec -y ), puis de vérifier si un redémarrage est nécessaire. Si un redémarrage est nécessaire, vous pouvez le faire en appuyant sur [ENTER] ou annuler et redémarrer plus tard en appuyant sur [CTRL+C] . Si aucun redémarrage n'est nécessaire, l'alias termine en vous le faisant savoir.

Mon alias est sur pour "sudo upgrade reboot", mais n'hésitez pas à lui donner le nom que vous voulez. Ajoutez ce qui suit à votre .bashrc fichier :

alias sur='sudo apt update && sudo apt upgrade -y && if sudo test -f /var/run/reboot-required; then read -p "A reboot is required to finish installing updates. Press [ENTER] to reboot now, or [CTRL+C] to cancel and reboot later." && sudo reboot; else echo "A reboot is not required. Exiting..."; fi'

Vous pouvez continuer à enchaîner d'autres commandes si vous souhaitez en faire plus avec le même alias. Voici l'alias complet de mon .bashrc qui supprimera également les paquets inutilisés :

alias sur='sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove -y && if sudo test -f /var/run/reboot-required; then read -p "A reboot is required to finish installing updates. Press [ENTER] to reboot now, or [CTRL+C] to cancel and reboot later." && sudo reboot; else echo "A reboot is not required. Exiting..."; fi'

Je suis tombé sur ce fil de discussion en vérifiant s'il existe une option permettant d'ignorer l'invitation à écraser les fichiers de configuration. Merci @Vadim pour votre réponse ci-dessus ! Mon nouvel alias est le suivant :

alias sur='sudo apt update && sudo apt -o Dpkg::Options::="--force-confdef" dist-upgrade -y && sudo apt autoremove -y && if sudo test -f /var/run/reboot-required; then read -p "A reboot is required to finish installing updates. Press [ENTER] to reboot now, or [CTRL+C] to cancel and reboot later." && sudo reboot; else echo "A reboot is not required. Exiting..."; fi'

Je pousse ensuite ce nouveau .bashrc à chacun de mes serveurs gérés simplement avec :

while read HOST; do scp .bashrc username@$HOST:/home/username; done < managedhosts.txt

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