#!/bin/bash # Fonction pour vérifier si une ligne existe déjà dans un fichier line_exists() { grep -Fq "$1" "$2" } # Vérifie si le système est sous Buster check_buster() { if grep -Fq "buster" /etc/os-release; then echo "Le système est sous Buster." return 0 else echo "Le système n'est pas sous Buster." return 1 fi } # Vérifie si non-free-firmware est configuré check_non_free_firmware() { if grep -Eq "non-free-firmware" /etc/apt/sources.list /etc/apt/sources.list.d/*; then echo "Le dépôt non-free-firmware est déjà configuré." return 0 else echo "Le dépôt non-free-firmware n'est pas configuré." return 1 fi } # Met à jour les sources.list pour passer de Buster à Bullseye ou une version ultérieure update_sources() { local new_codename="$1" sed -i.bak -e "s/buster/$new_codename/g" /etc/apt/sources.list /etc/apt/sources.list.d/* echo "Mise à jour de /etc/apt/sources.list et /etc/apt/sources.list.d/* pour passer à $new_codename." } # Ajoute non-free-firmware aux sources.list si nécessaire add_non_free_firmware() { if ! check_non_free_firmware; then if check_buster; then # Ajouter non-free-firmware pour la version Bookworm ou ultérieure sed -i.bak -e '/deb .*main/ s/$/ contrib non-free non-free-firmware/' /etc/apt/sources.list /etc/apt/sources.list.d/* echo "Ajout de non-free-firmware aux dépôts." fi fi } # Main script echo "Mise à jour de votre système Debian..." # Mettre à jour le système dans sa version actuelle sudo apt-get update sudo apt-get upgrade -y sudo apt-get full-upgrade -y # Vérifier si des sauvegardes ont été effectuées (cette étape est manuelle) # Mise à jour des sources.list if check_buster; then update_sources "bullseye" add_non_free_firmware fi # Nettoyer et mettre à jour les listes de paquets sudo apt-get clean sudo apt-get update # Effectuer la mise à niveau majeure sudo apt-get upgrade -y sudo apt-get full-upgrade -y # Supprimer les paquets non nécessaires sudo apt-get autoremove -y # Redémarrer le système echo "Redémarrage du système pour appliquer les changements..." sudo shutdown -r now