Wie kann ich den minimalen Satz von Debian-Paketen auflisten, die benötigt werden, um einen Satz installierter Pakete neu zu erstellen?

8

Gibt es eine Möglichkeit, dpkg, apt-get oder aptitude dazu zu bringen, eine Liste der Pakete zu erstellen, die auf einem zweiten Rechner installiert werden müssen, um die installierten Pakete zu duplizieren?

d. Wenn ich einen einfachen Ubuntu-Server installiert habe, wähle die sshd-Option zur Installationszeit und installiere dann Build-essential. Ich würde erwarten, dass die Ausgabe ungefähr wie folgt aussieht:

%Vor%

Soweit ich sehen kann, werden alle verfügbaren Verpackungswerkzeuge eine ausführliche Liste der Pakete auf einer Box erstellen. Ich bin nicht interessiert an openssh libs, ld, gcc und all den anderen Paketen, die von sshd und build-essential eingebunden werden, da sie installiert werden, wenn ich sshd und build-essential installiere.

Ich möchte nur die Liste des Pakets sehen, das ich installieren muss, um meinen aktuellen Paketsatz auf einem anderen Rechner wiederherzustellen.

Ist das möglich?

    
fadedbee 16.02.2010, 15:13
quelle

4 Antworten

11

deborphan , irgendwie. Es erstellt eine Liste aller Pakete in Ihrem System, ermittelt, was davon abhängt und druckt die Pakete aus, die keine Abhängigkeiten haben. Standardmäßig werden nur Bibliotheken gedruckt (um das Auffinden von Bibliotheken zu erleichtern, die von anderen Paketen installiert wurden und nicht mehr benötigt werden, daher der Name). Es hat Optionen, um zu tun, was Sie wollen, meistens. Ich laufe es wie:

deborphan -anp required --no-show-section

-a gibt alle Pakete an (nicht nur Bibliotheken)
-n ignoriert "Suggests" oder "Empfiehlt" Abhängigkeitsüberprüfung (dh nur "Abhängig")
-p required listet alle Pakete trotz Priorität auf
--no-show-section gibt nicht an, in welchem ​​Teil des Debian es sich befindet, nur eine nette Formatierungsfunktion, die Sie beim Erstellen einer Liste nützlich finden könnten.

Jetzt wird es Pakete vermissen, weil einige Pakete zirkuläre Abhängigkeiten haben. Aber diese sind eher ungewöhnlich, also sollte es dir nahe genug kommen.

    
Eric Warmenhoven 16.02.2010, 20:19
quelle
2

Der Code, den dannysauer gepostet hat, ist ein Anfang. Sobald Sie eine Liste mit Paketen haben, die Abhängigkeiten enthalten, können Sie apt-rdepends verwenden, um die Abhängigkeiten für eine bestimmte Komponente zu finden Paket (siehe diese Seite zum Beispiel zur Verwendung und Ausgabe).

Verfahrensbeschreibung

  1. Iteriere durch die Liste der Pakete zurückgegeben von Dannysauers Code
  2. Rufen Sie apt-rdepends auf jedem
  3. auf
  4. Löschen Sie alle Pakete aus der Liste, die in der Ausgabe von apt-rdepends angezeigt werden
bta 16.02.2010 22:17
quelle
1

Sie wollen also die Liste der Pakete, die explizit installiert wurden (wie zB ubuntu-desktop und openssh) und nicht die automatischen Abhängigkeiten? Ich bin nicht positiv, aber ich denke, das ist dpkg --get-selections . So können Sie

tun %Vor%

Und dann, auf dem anderen Computer, verwenden Sie die gleiche "Datei" und führen Sie

%Vor%

Ich bin nicht absolut positiv , dass diese Befehle nur manuell ausgewählte Pakete ausführen, und ich bin momentan von allen Debian-basierten Systemen entfernt, um sie zu verifizieren. :)

    
dannysauer 16.02.2010 16:09
quelle
0

Was ist damit?

%Vor%

Funktioniert es gut? Kann es irgendwie verbessert werden?

    
dashohoxha 28.03.2013 07:41
quelle

Tags und Links