Diese kurze Anleitung stellt ein nützliches Dienstprogramm namens dpkg-repack
vor , das verwendet wird, um Debian-Binärpakete neu zu erstellen, die bereits auf einem Debian-basierten System installiert sind.
Was ist dpkg-repack?
Stellen Sie sich dieses Szenario vor. Sie haben einige Pakete auf Ihrem Debian-basierten System installiert. Und Sie möchten dieselben Pakete auf einem anderen System installieren. Aber Sie haben die Binärarchive verloren, dh die Deb-Dateien. Würden Sie sie erneut von ihrer offiziellen Website oder ihrem Repository herunterladen?
Was ist, wenn die bestimmte Version eines bestimmten Pakets woanders nicht mehr verfügbar ist? Keine Bange! Da sie bereits auf Ihrem System installiert sind, können Sie die .deb
einfach neu erstellen Dateien. Begrüßen Sie dpkg-repack
!
Das dpkg-repack
ist ein Befehlszeilen-Tool zum Archivieren von Debian-Paketen, um Debian-Binärpakete neu zu erstellen, die bereits auf Ihrem System installiert sind.
Kurz gesagt:dpkg-repack
Dienstprogramm kann eine .deb
erstellen Datei aus einem Debian-Paket, das bereits auf Ihrem System installiert ist.
Das dpkg-repack
Dienstprogramm kann in vielen Situationen hilfreich sein, wo Sie möchten,
- erstelle
.deb
neu Dateien aus vorhandenen installierten Debian-Paketen, - Pakete einfach von einem System auf ein anderes kopieren,
- Speichern Sie den aktuellen Status eines Pakets, bevor Sie es aktualisieren,
- Sicherungskopie einer bestimmten Version eines Pakets für die zukünftige Verwendung
- bestimmte Pakete speichern, die nicht mehr zum Download zur Verfügung stehen.
Installieren Sie dpkg-repack in Debian, Ubuntu und Derivaten
Das dpkg-repack
ist in den Standard-Repositories von Debian, Ubuntu und seinen Varianten verfügbar. Um dpkg-repack
zu installieren , führen Sie einfach den folgenden Befehl aus:
$ sudo apt install dpkg-repack
Erstellen Sie Debian-Binärpakete mit dpkg-repack neu
1. Für die Zwecke dieses Leitfadens verwenden wir die Microsoft Teams-Anwendung die ich vor einiger Zeit auf meinem Ubuntu-Desktop installiert habe.
$ dpkg -l | grep teams
Beispielausgabe:
ii teams 1.3.00.5153 amd64 Microsoft Teams for Linux is your chat-centered workspace in Office 365.
Ich habe die teams.deb
nicht mehr Datei. Ich habe es direkt nach der Installation der Microsoft Teams-Anwendung gelöscht. Ich kann auf die offizielle Download-Seite gehen und es erneut herunterladen. Aber warum sollte man sich die Mühe machen, es immer wieder herunterzuladen? Ich kann jetzt einfach die teams.deb
neu erstellen Datei mit dpkg-repack.
2. Um teams.deb
zu erstellen Datei aus bereits installiertem Teams-Paket mit dpkg-repack
Dienstprogramm, führen Sie aus:
$ dpkg-repack teams
Beispielausgabe:
dpkg-deb: building package 'teams' in './teams_1.3.00.5153_amd64.deb'.
Wie Sie sehen, hat der obige Befehl den "teams_1.3.00.5153_amd64.deb'"
neu erstellt Datei aus dem Teams-Paket, das bereits auf meinem Ubuntu-Desktop installiert ist. Die neu erstellte deb-Datei wird im aktuellen Arbeitsverzeichnis gespeichert.
Ebenso können Sie alle installierten Debian-Pakete zurück in .deb
konvertieren Pakete mit dpkg-repack
Dienstprogramm.
3. Es ist auch möglich, mehrere deb-Dateien mit Leerzeichen getrennt neu zu erstellen:
$ dpkg-repack <package1> <package2> <package3>
4. Wenn Sie die Deb-Datei aufgrund von Berechtigungsproblemen nicht neu erstellen können, versuchen Sie es von Fakeroot Umgebung wie unten:
$ fakeroot -u dpkg-repack teams
Ein interessantes Merkmal des Dienstprogramms dpkg-repack ist, dass, wenn Änderungen am Paket vorgenommen wurden, während es entpackt wurde (d. h. Dateien in /etc geändert), das neue Paket die Änderungen erbt.
Anzeigen des Inhalts der deb-Datei
Schritt 1: Sie können den Inhalt dieser Deb-Datei mit folgendem Befehl anzeigen:
$ dpkg --contents teams_1.3.00.5153_amd64.deb
Beispielausgabe:
drwxr-xr-x root/root 0 2020-05-26 15:15 ./ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/bin/ -rwxr-xr-x root/root 286 2020-02-20 16:46 ./usr/bin/teams drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/ . . . drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/teams/swiftshader/ -rwxr-xr-x root/root 286264 2020-02-20 16:46 ./usr/share/teams/swiftshader/libEGL.so -rwxr-xr-x root/root 2677296 2020-02-20 16:46 ./usr/share/teams/swiftshader/libGLESv2.so -rwxr-xr-x root/root 114964776 2020-02-20 16:46 ./usr/share/teams/teams -rw-r--r-- root/root 1040912 2020-02-20 16:46 ./usr/share/teams/v8_context_snapshot.bin
Schritt 2: Das dpkg-repack ist praktisch, wenn Sie denselben Paketsatz auf mehreren Systemen installieren. Übertragen Sie sie einfach mit einer externen Festplatte oder über LAN auf andere Systeme und installieren Sie sie mit dem dpkg-Befehl:
$ sudo dpkg -i <package-name>
Schritt 3: Bitte beachten Sie, dass Sie die Abhängigkeiten noch herunterladen müssen. Um die Abhängigkeiten zu installieren, führen Sie Folgendes aus:
$ sudo apt-get -f install
Alternativ finden Sie die Abhängigkeiten des Pakets wie unter folgendem Link beschrieben:
- Wie man die Abhängigkeiten eines Pakets in Linux auflistet
Und erstellen Sie dann alle mit dpkg-repack
neu wie oben beschrieben.
Schritt 4: Dies ist auch hilfreich, wenn Sie ein Paket auf die vorherige Arbeitsversion zurücksetzen möchten. Nehmen wir zum Beispiel an, Sie haben gerade Vim
aktualisiert Paket auf neue verfügbare Version. Wenn die neue Version nicht wie erwartet funktioniert, können Sie einfach mit dpkg-repack
zur alten Version zurückkehren, die Sie zuvor erstellt haben .
Weitere Einzelheiten finden Sie in den Manpages:
$ man dpkg-repack
Verwandte Lektüre:
- Wie man Debian-Pakete aus den Quellen erstellt
- Wie man mit CheckInstall Pakete aus der Quelle erstellt
- So konvertieren Sie Linux-Pakete mit Alien