Làm thế nào tôi có thể làm điều này mà không cần cài đặt lại phần còn lại của các tập tin?
Làm thế nào tôi có thể làm điều này mà không cần cài đặt lại phần còn lại của các tập tin?
Câu trả lời:
Tải xuống gói, ví dụ transmission-daemon, với
sudo apt-get --download-only install transmission-daemon
giải nén gói với
mkdir ~/dummy
dpkg-deb -x /var/cache/apt/archives/transmission-daemon_*.deb ~/dummy
khôi phục tập tin, ví dụ /etc/init.d/transmission-daemon
sudo cp ~/dummy/etc/init.d/transmission-daemon /etc/init.d
xóa thư mục
rm -rf ~/dummy
dpkg-deb --fsys-tarfilevà tar, như vậy:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
/tmp/dummycó vẻ thuận tiện hơn ~/dummyvà cần phải loại bỏ nó.
apt-get downloadvì apt-get --download-only installsẽ dừng nếu gói đã được cài đặt. Như được chỉ ra bởi câu trả lời của camypaj.
nginx's worker_processesthiết lập trên một loạt các máy móc. Vì vậy, tôi đã đưa ra lệnh sau : 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.
Tôi biết điều này hơi cũ, nhưng đây là sự cải thiện của tôi:
$ sudo apt-get download <package-name>
thay vì
$ sudo apt-get --download-only install <package-name>
Tôi gặp tình huống gói đã được cài đặt (do đó, giải pháp được đề xuất không hoạt động) và tôi muốn khôi phục chỉ một tệp cấu hình để khắc phục sự cố.
Chúc mừng
/var/cache/apt/archives/và bạn không cần phải tải xuống.
apt-get downloadtải xuống thư mục làm việc hiện tại.