Siduction Forum
Siduction Forum => Installation - Support => Topic started by: knorki on 2023/11/22, 09:46:18
-
Ich installiere öfter mal siduction-xfce auf einem Rechner neu.
Ich suche nun eine Möglichkeit nach der Installation nur die von mir genutzten Programm-Pakete zu installieren und alle überflüssigen automatisch zu entfernen.
Zur Zeit mache ich das immer noch händisch und das benötigt immer mehr als eine Stunde.
Kann ich das automatisieren?
-
Vielleicht ist dieses schon einmal ein Ansatz auf dem aufgebaut werden kann.
https://manual.siduction.org/hd-install_de.html#duplizierung-auf-einen-anderen-computer
-
Ja. Vom Ansatz her brauchst du ein Script, welches
1. die nicht benötigten Pakete purged.
2. ein apt update && apt dist-upgrade durchführt.
3. die zusätzlichen Pakete installiert.
Die Pakete, welche entfernt und installiert werden sollen, müssten einfach zeilenweise in jeweils eine eigene Datei eingetragen werden.
Der Teufel wird wieder im Detail stecken, aber grundsätzlich ist das möglich.
edlin
-
Was dabei hilft:
Mit aptitude search -F "%p" "~i"
sieht man alle installierten Pakete, mit aptitude search -F "%p" "~i ! ~M"
nur die, die nicht als Abhängigkeit nachinstalliert wurden.
Mit "apt" bzw. "apt-..." bekomme ich das (ohne Filter wie 'cut', 'awk' oder 'sed") nicht hin, aber vermutlich kann hier ein anderer Forumsteilnehmer helfen. [Man weiß hier, ich bin ein Fan von aptitude :).]
-
Es wäre ja auch mal interessant, um wieviele Pakete es sich beim Entfernen und bei der Zusatzinstallation handelt. Der Zeitaufwand sagt ja darüber nicht viel aus. Man muss es ja auch nicht unnötig kompliziert machen.
edlin
-
Ich installiere öfter mal siduction-xfce auf einem Rechner neu.
Ich suche nun eine Möglichkeit nach der Installation nur die von mir genutzten Programm-Pakete zu installieren und alle überflüssigen automatisch zu entfernen.
Zur Zeit mache ich das immer noch händisch und das benötigt immer mehr als eine Stunde.
Kann ich das automatisieren?
Ich habe mal das script aus dem siduction manual ausgeführt.
Zu finden ist die Liste unter
https://codeberg.org/coffeego/InstallSiduction/src/branch/main/src (https://codeberg.org/coffeego/InstallSiduction/src/branch/main/src)
Jetzt fehlt noch eine frische siduction-xfce Installation um ein diff herzustellen und daraus das script für die Löschung zu erstellen.
Könnte der Weg so aussehen?
-
Wie @edlin schon schrieb: Um wieviele Pakete geht es hier? Deinstallierst du händisch jedesmal 60 Pakete? Installierst du danach 50 neue Pakete? Da zähle ich die Abhängigkeiten noch nicht mal mit.
edlin
-
ich habe eine frische XFCE Installation gemacht. Nach der Installation und nachfolgendem Update sind 2090 Pakete installiert.
Ich verwende aptitude zum Installieren, die Angabe der Anzahl der Pakete kommt von aptitude.
Nach löschen und installieren der von mir benötigten sind 1879 Pakete installiert.
Also eine Differenz vom 211 Paketen.
-
Mal einen Ansatz, wie das Script aussehen könnte. Du erstellst dir ein Script knorki-xfce.sh mit deinem Lieblingseditor:
#!/usr/bin/bash
# Löschen aller Pakete aus purge.txt inkl. Konfiguration
while read p;
do apt -y purge "$p";
done < purge.txt
# Aktualisierung der verbliebenen Pakete
# Kann auch mit nala durchgeführt werden
apt update
apt -y dist-upgrade
# Installation zusätzlicher Pakete aus Liste install.txt
while read i;
do apt -y install "$i";
done < install.txt
# Aufräumen
apt -y autopurge
exit 0
Das Script machst du mit
sudo chmod +x knorki-xfce.sh
ausführbar.
Dann legst du dir die zwei Dateien purge.txt und install.txt an. In der ersten sind zeilenweise die Pakete aufgeführt, welche entfernt werden sollen. Analog in der zweiten Datei die Pakete, die nachinstalliert werden sollen.
Beachte, dass das -y nach apt alle Fragen automatisch mit J beantwortet.
Die drei Dateien kannst du dir ja auf einen USB-Stick laden.
Dann mit
sudo ./knorki-xfce.sh
das Script ausführen.
Aber bitte erst mal vorsichtig testen (je zwei Pakete in install.txt und purge.txt)! Es gibt unzählige weitere Wege, die Aufgabe zu erledigen und zu verbessern. Das soll nur mal eine Anregung sein, auf der du aufbauen kannst.
edlin
-
Noch etwas Hilfe für das Erstellen von purge.txt und install.txt.
Führe bei einer jungfräulichen Installation zunächst
aptitude search -F "%p" "~i ! ~M" > vorher.txt
aus.
Mit einer aufgeräumten Installation dann analog:
aptitude search -F "%p" "~i ! ~M" > nachher.txt
Damit hast du die Pakete (ohne Abhängigkeiten) der beiden Zustände abgelegt. Nun musst du die Unterschiede ermitteln, um daraus die Pakete für purge und install zu separieren. Hier hilft das Hausmittel diff, welches die Differenz aus zwei Dateien ermittelt und die Unterschiede entsprechend markiert. Mit grep und sed extrahieren wir dann die gesuchten Pakete:
diff vorher.txt nachher.txt | grep -v "^[>,0-9]" |sed 's/< //g' > purge.txt
grep schmeisst alle Zeilen raus, die mit > oder einer Ziffer beginnen. Mit sed entfernen wir das < vor dem Paketnamen.
Analog dazu erzeugen wir die install.txt:
diff vorher.txt nachher.txt | grep -v "^[<,0-9]" |sed 's/> //g' > install.txt
Geht garantiert eleganter, aber sofern du keine Z80-CPU im Rechner hast, spielt das wirklich keine große Rolle. Kontrolliere aber nochmal die Ergebnisse, nicht dass ich was verdreht oder vergessen habe.
edlin.
-
Man könnte auch mal Penguins Eggs in Betracht ziehen. https://github.com/pieroproietti/penguins-eggs
-
Sehr interessant! Mal ansehen. Vielen Dank.