Wie kann ich eine einzelne Datei aus einem Paket wiederherstellen?


Antworten:


21

Laden Sie das Paket beispielsweise transmission-daemonmit herunter

sudo apt-get --download-only install transmission-daemon

Packen Sie das Paket mit aus

mkdir ~/dummy
dpkg-deb -x /var/cache/apt/archives/transmission-daemon_*.deb ~/dummy

Stellen Sie beispielsweise die Datei wieder her /etc/init.d/transmission-daemon

sudo cp ~/dummy/etc/init.d/transmission-daemon /etc/init.d

Entferne das Verzeichnis

rm -rf ~/dummy

2
Es sollte auch beachtet werden, dass apt-get downloadDownloads in das aktuelle Arbeitsverzeichnis.

4
Sie können vermeiden , das gesamte Archiv Extrahieren eine Pipeline mit Beteiligung dpkg-deb --fsys-tarfileund tar, etwa so:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
— kojiro

1
/tmp/dummyDas scheint bequemer ~/dummyund die Notwendigkeit, es zu entfernen.
— Karl Richter

Vorziehen, apt-get downloadda apt-get --download-only installwird aufhören, wenn das Paket bereits installiert ist. Wie aus der Antwort von camypaj hervorgeht.
— Julien Carsique

Um den Kommentar von kojiro zu erweitern, musste ich mir ansehen, wie der Standardwert für nginxdie worker_processesEinstellung auf einer Reihe von Maschinen lautet . So kam ich mit dem folgenden Befehl auf: for f in /var/cache/apt/archives/nginx-common*; do dpkg-deb --fsys-tarfile "$f" | tar xO ./etc/nginx/nginx.conf | grep worker_processes; done.
— x-yuri

12

Ich weiß, dass dies ein bisschen alt ist, aber hier ist meine Verbesserung:

$ sudo apt-get download <package-name>

anstatt

$ sudo apt-get --download-only install <package-name>

Ich hatte eine Situation, in der das Paket bereits installiert war (daher funktionierte die vorgeschlagene Lösung nicht), und ich wollte nur eine Konfigurationsdatei wiederherstellen, um das Problem zu beheben.

Prost


3
Wenn Sie ein Paket bereits installiert haben, befindet es sich normalerweise in /var/cache/apt/archives/und Sie sollten es nicht herunterladen müssen.
— Ahmed Masud

2
Ja, aber nur, wenn das Paket vor relativ kurzer Zeit installiert wurde und die Archive nicht manuell oder automatisch bereinigt wurden.
— Joeytwiddle
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.