Làm thế nào để khôi phục một tập tin duy nhất từ ​​một gói?


19

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:


21

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

2
Cũng cần lưu ý rằng apt-get downloadtải xuống thư mục làm việc hiện tại.

4
Bạn có thể tránh trích xuất toàn bộ kho lưu trữ bằng cách sử dụng một đường ống liên quan dpkg-deb --fsys-tarfiletar, như vậy:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
kojiro

1
/tmp/dummycó vẻ thuận tiện hơn ~/dummyvà cần phải loại bỏ nó.
Karl Richter

Thích apt-get downloadapt-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.
Julien Carsique

Mở rộng trên bình luận Kojiro, tôi đã phải nhìn vào giá trị mặc định của những gì 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.
x-yuri

12

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


3
nếu bạn đã cài đặt một gói thì nó thường được tìm thấy /var/cache/apt/archives/và bạn không cần phải tải xuống.
Ahmed Masud

2
Có, nhưng chỉ khi gói được cài đặt tương đối gần đây và tài liệu lưu trữ chưa được làm sạch bằng tay hoặc tự động.
joeytwiddle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.