Jak przywrócić pojedynczy plik z pakietu?


Odpowiedzi:


21

Pobierz pakiet, na przykład transmission-daemon, za pomocą

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

rozpakuj paczkę za pomocą

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

przywróć plik, na przykład /etc/init.d/transmission-daemon

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

usuń reż

rm -rf ~/dummy

2
Należy również zauważyć, że apt-get downloadpliki do pobrania do bieżącego katalogu roboczego.

4
Możesz uniknąć wyodrębnienia całego archiwum za pomocą potoku obejmującego dpkg-deb --fsys-tarfilei tar, podobnie jak:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
kojiro

1
/tmp/dummywydaje się wygodniejsze ~/dummyi konieczność jego usunięcia.
Karl Richter,

Preferuj, apt-get downloadponieważ apt-get --download-only installprzestanie działać , jeśli pakiet jest już zainstalowany. Jak wskazuje odpowiedź camypaj.
Julien Carsique

Aby rozwinąć na komentarz Kojiro jest, musiałem spojrzeć na to, co znajduje się domyślna wartość nginx„s worker_processesustawienie w szeregu maszyn. Więc wpadłem za pomocą następującego polecenia: 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

Wiem, że to trochę stare, ale oto moja poprawa:

$ sudo apt-get download <package-name>

zamiast

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

Miałem sytuację, w której pakiet był już zainstalowany (stąd proponowane rozwiązanie nie działa) i chciałem przywrócić tylko jeden plik konfiguracyjny, aby rozwiązać problem.

Twoje zdrowie


3
jeśli masz już zainstalowany pakiet, zwykle znajduje się w nim /var/cache/apt/archives/i nie powinieneś go pobierać.
Ahmed Masud

2
Tak, ale tylko jeśli pakiet został zainstalowany stosunkowo niedawno, a archiwa nie zostały wyczyszczone ręcznie ani automatycznie.
joeytwiddle 29.01.16
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.