Forum Linux.général Script de mise à jour (apt, snap, flatpak, npm, pip)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
3
27
avr.
2022

Salut tout le monde !

Voici un petit script de mise à jour très simple. Y'a probablement des manières plus propres de faire, et si vous avez vachement mieux je suis preneur, mais en l'état ce petit script me convient bien : il met à jour les différents systèmes de paquets de mon système (manque quand même les majs des paquets Emacs, à voir pour plus tard).

C'est tout bête.

#!/bin/sh -

# nettoyage
echo "####### NETTOYAGE #######" &&
sudo apt autoremove &&
sudo apt clean &&
flatpak uninstall --unused &&

# update all normal packages
echo "####### SYSTEME #######" &&
sudo apt update && sudo apt upgrade &&

# pipx
echo "####### PIPX #######" &&
pipx upgrade-all &&

# snap
echo "####### SNAP #######" &&
snap refresh &&

# flatpak
echo "####### FLATPACK #######" &&
flatpak update &&

# npm
echo "####### NPM #######" &&
npm update --save/--save-dev &&

# update all pip packages
echo "####### PIP3 #######" &&
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U &&

echo "####### TERMINE #######"
  • # Et d'autres

    Posté par  (site web personnel) . Évalué à 8.

    Faut que tu mettes à jour tes conteneurs docker et lxc et autres, qui contiennent peut-être du yum, de l'apk, …
    Et tu as peut-être des venv pip dans 15 endroits différents aussi.
    Et d'autres moyens d'installation cf https://www.explainxkcd.com/wiki/index.php/File:universal_install_script.png
    Et puis tu as les microcodes CPU / disque / réseau / …
    Et puis les greffons et extensions des applicatifs, comme pour Firefox, LibreOffice

    Et surtout il faut que tu mettes à jour la liste des trucs à mettre à jour, ce qui reste le plus difficile.

  • # Ansible powered

    Posté par  . Évalué à 6.

    - name: Install the build dependencies for package "foo"
      apt:
        pkg: foo
        state: build-dep
    
    - name: Install a .deb package from the internet
      apt:
        deb: https://example.com/python-ppq_0.1-1_all.deb
    
    - name: Update all packages to their latest version
      apt:
        name: "*"
        state: latest
    
    - name: Upgrade the OS (apt-get dist-upgrade)
      apt:
        upgrade: dist
    
    - name: Run the equivalent of "apt-get update" as a separate step
      apt:
        update_cache: yes
    
    - name: Remove useless packages from the cache
      apt:
        autoclean: yes
    
    - name: Remove dependencies that are no longer required
      apt:
        autoremove: yes

    source : https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html

    avantage avec ansible, tu liste des machines dans un fichier de config, tu les regroupes par typologie (redhat, debian, etc)
    et tu fais des "recettes" pour appliquer tout un tas de choses sur ces groupes

  • # Topgrade

    Posté par  (site web personnel) . Évalué à 3.

    Il y a https://github.com/r-darwish/topgrade qui fait un peu tout ça.

    « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

    • [^] # Re: Topgrade

      Posté par  (site web personnel) . Évalué à 2.

      Super, je ne connaissais pas, je vais regarder ça ^

    • [^] # Re: Topgrade

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Intéressant. Mais il est bien de savoir se faire son script aussi car il y aura toujours des cas qui ne sont pas pris en charge… J'ai par exemple une machine avec du Py2.7 et du Py3.5 ; est-ce qu'il ne va pas se mélanger les pinceaux avec pip ? Et surtout que dans le lot il y en a qu'il ne faut pas toucher. et quid des venv ?

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # topgrade

    Posté par  (site web personnel) . Évalué à 2.

    Dans le dernier linux pratique (numéro 131 : https://connect.ed-diamond.com/linux-pratique/lp-131/mise-a-jour-totale-avec-topgrade), il y a un article sur un outil qui fait le job : topgrade ( https://github.com/r-darwish/topgrade ).

    • [^] # Re: topgrade

      Posté par  (site web personnel) . Évalué à 2.

      Génial, j'aurai du me douter qu'il devait bien y avoir un truc qui fait tout ça beaucoup mieux que moi quelque part sur la toile ^

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.