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.