Як я можу це зробити, не перевстановивши й інші файли?
Як я можу це зробити, не перевстановивши й інші файли?
Відповіді:
Завантажте пакет, наприклад transmission-daemon, за допомогою
sudo apt-get --download-only install transmission-daemon
розпакуйте пакет
mkdir ~/dummy
dpkg-deb -x /var/cache/apt/archives/transmission-daemon_*.deb ~/dummy
відновити файл, наприклад /etc/init.d/transmission-daemon
sudo cp ~/dummy/etc/init.d/transmission-daemon /etc/init.d
видаліть реж
rm -rf ~/dummy
dpkg-deb --fsys-tarfileі tar, наприклад , так:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
/tmp/dummyздається більш зручним це ~/dummyі необхідність його видалити.
apt-get downloadоскільки apt-get --download-only installвін зупиниться, якщо пакет уже встановлений. Як зазначено у відповіді camypaj.
nginx«S worker_processesустановок на ряді машин. Тому я придумав таку команду: 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.
Я знаю, що це трохи старе, але ось моє вдосконалення:
$ sudo apt-get download <package-name>
замість
$ sudo apt-get --download-only install <package-name>
У мене виникла ситуація, коли пакет уже встановлений (отже, запропоноване рішення не спрацювало), і я хотів відновити лише один конфігураційний файл, щоб усунути проблему.
Ура
/var/cache/apt/archives/і вам не доведеться його завантажувати.
apt-get downloadзавантаження в поточний робочий каталог.