System per apt Aufräumen...

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
jedie
Beiträge: 36
Registriert: 18.10.2010 14:49:36

System per apt Aufräumen...

Beitrag von jedie » 06.09.2021 08:31:24

Wie kann man ein System per apt komplett Aufräumen?!?

Ich hab z.B. sowas:

Code: Alles auswählen

#!/bin/bash

PACKAGES=(
    grub-pc
    linux-image-686
    sysvinit-core

    kbd
    sudo

    memtest86+
    htop
    mc
)


INSTALLED_PACKAGES=$(apt-mark showinstall)

(
    set -ex

    apt update

    { echo "---------------------------------------------------"; } 2>/dev/null

    apt-mark auto ${INSTALLED_PACKAGES}


    { echo "---------------------------------------------------"; } 2>/dev/null

    apt -y install "${PACKAGES[@]}"

    { echo "---------------------------------------------------"; } 2>/dev/null

    apt -y full-upgrade

    { echo "---------------------------------------------------"; } 2>/dev/null

    apt autoremove
)

Theoretisch sollten doch damit alle Pakete deinstalliert werden, die nicht in der PACKAGES liste drin sind oder Abhängigkeiten von denen sind... Ist aber nicht so...

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: System per apt Aufräumen...

Beitrag von JTH » 06.09.2021 09:28:54

Ich würd hier erstmal die drei Minimierschritte vor das update+full-upgrade verschieben. Sonst aktualisierst du evtl. Pakete, die du anschließend eh direkt autoremovest.

jedie hat geschrieben: ↑ zum Beitrag ↑
06.09.2021 08:31:24
Ist aber nicht so...
Das ist keine besonders genaue Beschreibung. Was genau passiert denn anders als erwartet? Kurz in einer VM ausprobiert scheinen die Schritte das Erwartete zu tun.

Ich würde allerdings apt-mark manual statt apt install nehmen. apt install führt nämlich auch ein Upgrade für die übergebenen Pakete durch, wenn welche verfügbar sind, was du an der Stelle ja noch nicht willst.

Um irgendwelche Fehler auszuschließen würd ich die essentiellen Pakete per apt-Pattern '~E' mit in die PACKAGES aufnehmen. Auch wenn autoremove (zum Glück) anscheinend keine essentiellen Pakete entfernt.

Das apt-mark showinstall könntest du sogar weglassen und durch ein apt-Suchpattern ersetzen:

Code: Alles auswählen

apt-mark auto '~i'
~i filtert aus allen bekannten Paketen die installierten heraus.

Frage am Rande: Warum packst du die echos (unnötigerweise) in eine Gruppe {}? Und warum leitest du deren hier eher nicht zu erwartende Fehlermeldungen nach /dev/null um?
Manchmal bekannt als Just (another) Terminal Hacker.

Antworten