78 lines
2.2 KiB
Bash
78 lines
2.2 KiB
Bash
#!/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
|