Une seule commande pour tout mettre à jour dans Ubuntu?

15

Je sais qu'il existe trois commandes pour mettre à jour puis mettre à niveau l'ensemble du système, ce sont:

  • sudo apt-get update # Récupère la liste des mises à jour disponibles
  • sudo apt-get upgrade # Met à jour strictement les packages actuels
  • sudo apt-get dist-upgrade # Installe les mises à jour (nouvelles)

Existe-t-il une commande de super-mise à niveau qui combine toutes ces commandes en une seule?

JohnDoea
la source
1
Non, vous pouvez tout fairesudo apt-get update && sudo apt-get dist-upgrade
heemayl
C'est toujours une ligne de commande! ;-)
Fabby
Pour ceux qui tomberont un jour sur cette question, voici une question connexe à exécuter updateet en upgradetant que doublure askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

Réponses:

23

Il y a 3 choix décents:

  1. Vous pouvez créer un script quelque chose comme ceci:

    #!/bin/bash
    set -e
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

    Appelez-le quelque chose comme update.shet placez-le /usr/local/bin, puis rendez le script exécutable en exécutant:

    sudo chmod +x /usr/local/bin/update.sh
  2. Une autre méthode serait de créer un alias bash (in ~/.bashrc) ou partout où vous stockez normalement vos alias:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Une dernière méthode serait de simplement enchaîner les 3 commandes ensemble sur la ligne de commande:

    sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Quelques choix ...

Référence:

andrew.46
la source
6
Lorsque vous utilisez, dist-upgradeil est inutile de le faire à l' upgradeavance ..
heemayl
3
@heemayl: En théorie oui. Dans la pratique, il y a des cas où un direct dist-upgradepeut échouer mais pas upgradesuivi dist-upgrade. Cela est dû en grande partie aux bogues de définition de la dépendance des packages ou au mélange de packages de différentes versions / distributions / PPA. Si l'on n'utilise que des packages des référentiels officiels de Canonical pour une seule version (par défaut), ces erreurs devraient être extrêmement rares et corrigées rapidement.
David Foerster
2
Il y a aussi la variante d' impressionner les amis du # 3:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay
1
À l'étape 1, que fait "set -e"?
karjedavpalaa
8

Nous pouvons avoir une commande à une ligne (pas besoin de scripts, juste copier-coller)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - met à jour la liste des packages mais ne l'installe pas
  • upgrade - installer de nouvelles versions de packages si de nouvelles versions sont disponibles
  • full-upgrade - remplit la fonction de mise à niveau mais supprimera les packages actuellement installés si cela est nécessaire pour mettre à niveau le système dans son ensemble (correction des mauvaises dépendances alors)
  • autoremove, autocleanet clean- nettoyer les anciens paquets qui ne sont plus nécessaires
  • l'option -yne demande pas d'autorisation à chaque étape
João Pimentel Ferreira
la source
7

Si vous êtes ennuyé par trop de frappe, vous pouvez vous définir un "alias". Cela peut être fait par exemple en ajoutant une ligne à la fin de votre $HOME/.profilecomme ceci:

alias sau='sudo aptitude update && sudo aptitude upgrade'

(bien sûr, vous pouvez remplacer "sau" par autre chose - pour moi, c'est un acronyme de Sudo Apt-get Update). Après avoir enregistré le fichier, ouvrez un nouveau shell (ou "source" le .profile en cours d'exécution . $HOME/.profile. Maintenant, vous pouvez toujours simplement taper "sau" pour faire le travail complet. Fonctionne très bien pour moi avec plusieurs machines.

Izzy
la source
Hm. Je suppose que je demandais simplement à quelqu'un de me dire de l'alias: P
polandeer
Oui, mais c'est la seule façon de le faire avec une "commande unique". Et votre question ne l'exclut pas;)
Izzy
Rusé. Quoi qu'il en soit, la seule raison pour laquelle j'ai demandé était parce que je voulais mieux comprendre apt, pas parce que je suis trop paresseux pour écrire. sudo aptitude update && sudo aptitude upgradeLa raison pour laquelle j'ai demandé était parce que vous pouvez le faire avec pacman ( sudo pacman -Syu --noconfirm).
polandeer
Si vous devez le faire souvent et sur plusieurs machines, vous êtes content d'avoir au moins un alias. Cependant: apt-get updatea un paramètre -u, selon la page de manuel qui montre les mises à jour disponibles. N'a pas essayé s'il demande ensuite de les appliquer (je n'ai pas Ubuntu / Debian près de chez moi pour vérifier en ce moment).
Izzy
3

Malheureusement, les deux commandes doivent être exécutées séparément.

Cormac O'Brien
la source
2
sudo apt install unattended-upgrades

C'est la meilleure gamme à ce jour. Toutes les autres solutions, vous devez taper la même ligne encore et encore chaque jour. C'est vraiment la solution à commande unique. Voir la documentation officielle d'apt d'ubuntu!

En éditant les .conffichiers de ce package dans, /etcvous pouvez définir la fréquence de update, install, clean, autoremove...

Ou simplement et par e-mail, y compris une notification qu'une mise à jour est disponible avec la liste des noms de packages

Un joli petit fichier journal est généré à chaque changement, et j'imagine qu'un petit script pourrait être écrit comme une extension gui pour apparaître également dans les notifications du bureau (hors sujet haha)

pas un codeur
la source