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-tarfile
và tar
, như vậy:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
/tmp/dummy
có vẻ thuận tiện hơn ~/dummy
và cần phải loại bỏ nó.
apt-get download
vì apt-get --download-only install
sẽ 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_processes
thiế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 download
tải xuống thư mục làm việc hiện tại.