Seite 1 von 1

[gelöst] Speicherung der Paketliste für Installation

BeitragVerfasst: Apr 12th, '13, 21:09
von linuxfreund
Hallo allerseits,

meine allerersten Schritte mit GNU/Linux machte ich Mitte der 1990er Jahre mit SUSE 4.2. Nach meiner Erinnerung gab es schon damals und auch in den Folgejahren die nette Funktion, die aktuelle Paketliste eines Systems zu speichern. Die Datei mit der Liste konnte bei einer Installation auf einer leeren Partition, auch beim Wechsel auf die nächste SUSE-Version, wieder eingespielt werden.

Diese nette Funktion vermisse ich in Mageia. Dabei konnten die vielfältigen Probleme bei einem Update auf diese Weise elegant umgangen werden.

Natürlich gibt es im Terminal ein nettes
Code: Alles auswählen
rpm -qa | tee liste

Nur kann ich damit bei einer Installation nichts anfangen. Oder geht es mit urpmi doch?

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 12th, '13, 22:05
von alf
Der KDE-Application-Manager(apper = Packagekit frontend) enthält genau diese Funktionalität. Export der installierten Pakete in eine Liste und Installation aus einer solchen Liste. Ob das allerdings funktioniert habe ich bisher noch nicht ausprobiert.

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 03:31
von doktor5000
linuxfreund hat geschrieben:Nur kann ich damit bei einer Installation nichts anfangen. Oder geht es mit urpmi doch?

Natürlich kann man urpmi eine Liste von Paketen übergeben. Direkt bei der Installation geht aber m.E. nur eine spezielle Art von Liste,
man kann in der benutzerdefinierten Paketauswahl die Liste der ausgewählten Pakete speichern. Oder mithilfe der Autoinstallation
die Liste der zusätzlich gewünschten Pakete in einer Konfigurationsdatei übergeben ...

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 11:24
von man-draker
linuxfreund hat geschrieben:Diese nette Funktion vermisse ich in Mageia. Dabei konnten die vielfältigen Probleme bei einem Update auf diese Weise elegant umgangen werden.

Der damalige Zweck ist für Mageia nicht zutreffend.
Wofür benötigst du die Liste also genau?

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 12:45
von linuxfreund
alf hat geschrieben:Der KDE-Application-Manager(apper = Packagekit frontend) enthält genau diese Funktionalität. Export der installierten Pakete in eine Liste und Installation aus einer solchen Liste. Ob das allerdings funktioniert habe ich bisher noch nicht ausprobiert.


Mit deinem Ausdruck KDE-Application-Manager kann ich nichts anfangen. Was ist das?

Zum Test startete ich die Installation von mageia 3 Beta 4, dort während der Paketauswahl die benutzerdefinierte Auswahl starten und ganz unten die individuelle Paketauswahl aktivieren. Und tatsächlich gibt es auf der nächsten Seite ein Diskettensymbol, welches das Laden und Speichern einer Liste anbietet.

Diese Datei 'package_list.pl' sieht so aus:
Code: Alles auswählen
$ cat package_list.pl
# You should always check the syntax with 'perl -cw auto_inst.cfg.pl'
# before testing.  To use it, boot with ``linux defcfg=floppy''
$o = {
       'default_packages' => [
                               'lynx',
                               'acpi',
                               'ardour',
                               'autoconf2.1',
                               ...
                              'flash-player-plugin',
                               'k3b',
                               'mencoder'
                             ]
     };

Augenscheinlich enthält diese Liste nur die wesentlichen Programme. Die zahllosen Bibliotheken fehlen vollständig. Sie werden bei Bedarf natürlich mitinstalliert.

Mit perl kenne ich mich leider überhaupt nicht aus. Deshalb die Frage: Kann ich so eine Liste aus einem laufenden System erzeugen? Wenn ja, wie könnte das gehen?

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 13:44
von Pitti
linuxfreund hat geschrieben:Deshalb die Frage: Kann ich so eine Liste aus einem laufenden System erzeugen? Wenn ja, wie könnte das gehen?

Ja. möchtest Du beispielsweise Dir die Pakete auflisten lassen, die momentan installiert sind, kannst Du mit
Code: Alles auswählen
rpm -qa --last > liste.txt
Dir alle installierten Pakete in chronologischer Reihenfolge anzeigen lassen.

Ein
Code: Alles auswählen
rpm -qa | sort > liste.txt
liefert Dir dann eine alphabetische Auflistung.

Möchtest Du hingegen eine Liste erzeugen, die nur den Dateinamen enthält, um beispielsweise bei einer Neuinstallation angewendet zu werden, so wäre das mit
Code: Alles auswählen
rpm -qa --qf "%{N} " | tee liste.txt
möglich. Ein anschließendes
Code: Alles auswählen
cat liste.txt | sed 's/gpg-pubkey//g' | xargs urpmi
sollte Dir nun anhand der Liste die "alte" Installation wieder herstellen. Hier musst Du allerdings beachten, dass Paketnamen, die nicht aus den Quellen stammen, händisch gelöscht werden, da sonst beim späteren Anwenden der Installationsvorgang an der entsprechenden Stelle gestoppt wird.

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 15:56
von linuxfreund
Vielen Dank an Pitti für die Fingertipps.

Nur kennt die RPM-Datenbank nicht auch ihre Hirarchie? Für eine Installation müsste ich nur die Pakete aufrufen, die ganz oben stehen, die nicht durch andere Pakete gezogen werden. Die Datei 'package_list.pl' genügt ganz offensichtlich genau dieser Vorgabe.

Wie kann ich die Hirarchie der RPM-Datenbank sichtbar machen?

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 17:51
von doktor5000
Hierarchie? Du kannst alle installierten Pakete mittels rpm -qa abfragen, eine Hierarchie gibt es in dem Sinne nicht.
Und wenn du urpmi Pakete übergibst, die bereits installiert sind, überspringt es diese.

Je nachdem, von welchem Medium du installierst, reicht es nicht, nur die zusätzlichen Pakete anzugeben. (relative Angabe)
Du willst ja den Stand des installierten Systems später wieder herstellen, also solltest du die Liste absolut angeben.

Glaube du verkomplizierst das etwas zu sehr.

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 18:30
von Pitti
linuxfreund hat geschrieben:Wie kann ich die Hirarchie der RPM-Datenbank sichtbar machen?
Schau mal nach, vielleicht findest Du dort ja was brauchbares: var/lib/rpm/__db*. Bild
Nee - im Ernst - wozu soll das gut sein!?

Den Rest hatte der Doktor ja schon genannt...

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 20:21
von doktor5000
Wenn schon denn schon in /var/lib/rpm/Packages ...

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 20:56
von Pitti
Pitti hat geschrieben:Schau mal nach, vielleicht findest Du dort ja was brauchbares: var/lib/rpm/__db*. Bild
doktor5000 hat geschrieben:Wenn schon denn schon in /var/lib/rpm/Packages ..
@linuxfreund: Siehst Du, genau so etwas macht unseren Doktor unentbehrlich! Bild

Re: Speicherung derPaketliste für Installation

BeitragVerfasst: Apr 13th, '13, 22:32
von alf
Pitti hat geschrieben:@linuxfreund: Siehst Du, genau so etwas macht unseren Doktor unentbehrlich! Bild
Ja, Diagnose und Therapie zutreffend(wenn's nicht passt merkt's auch keiner :)) und das alles ohne Zuzahlung und Praxisgebühr :D (auch das war jetzt nicht ganz ernst gemeint und kein Anlass sich in die Haare zu geraten)

Re: Speicherung der Paketliste für Installation

BeitragVerfasst: Apr 14th, '13, 12:39
von linuxfreund
Vielen Dank für die zahlreichen Antworten.

Auf die ursprüngliche Frage fand ich selbst die Antwort. Ja, es gibt diese Paketliste, und sie funktioniert praktisch genauso wie einst bei SUSE 4.2.

Ich nutze Mageia produktiv. Mit Gründung meiner kleinen Firma entschied ich, kein Geld für MS Windows auszugeben. Konsequenterweise war der neue Laptop nur mit FreeDOS ausgestattet.

Weil opensuse keinen Gefallen mehr fand, wechselte ich zu Mandriva und mit der Abspaltung zu Mageia. Und das funktioniert. Es muss auch funktionieren, Experimente kann ich mir nicht leisten. Als Admin für meinen eigenen Bedarf sowie inzwischen auch für Andere kann ich gar nicht genug wissen. In diesem Sinn brachte mich diese Diskussion ein gutes Stück voran.