In https://downloads.raspberrypi.org/raspios_arm64/images/ go to dir matching your setup and download the .info
(eg : https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2025-05-13/2025-05-13-raspios-bookworm-arm64.info)
Remove the first lines so all you have is a list of packages, and :
cat 2025-05-13-raspios-bookworm-arm64.info | cut -d' ' -f3 | sort > ~/initial_paquets.txt
This will be the sorted default package list.
backup_paquets.sh
DATE=$(date +%Y-%m-%d)
DEST="/mnt/nas_raspi"
NAS_SHARE="//192.168.1.88/backup/raspi"
LOCAL_TMP="/tmp/packages-$DATE.txt"
FILENAME="paquets-$DATE.txt"
MAX_FILES=30
# Créer temporairement la liste des paquets manuels
comm -23 <(apt-mark showmanual | sort) <(cat ~/initial_paquets.txt) > "$LOCAL_TMP"
# Monter le NAS si pas déjà monté
mountpoint -q "$DEST" || sudo mount -t cifs -o vers=2.0,username=guest,password= "$NAS_SHARE" "$DEST"
# Copier le fichier vers le NAS
sudo cp "$LOCAL_TMP" "$DEST/$FILENAME"
# Supprimer le fichier temporaire
rm "$LOCAL_TMP"
# Supprimer les anciens fichiers, en ne conservant que les 30 plus récents
cd "$DEST" || exit 1
sudo ls -1t paquets-*.txt | tail -n +$((MAX_FILES + 1)) | sudo xargs -r rm --
# backup paquets tous les jours
0 3 * * * /usr/bin/bash /home/ozh/bin/backup_paquets.sh > /dev/null 2>&1