Bagaimana cara mengembalikan satu file dari satu paket?


Jawaban:


21

Unduh paket, misalnya transmission-daemon, dengan

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

membongkar paket dengan

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

kembalikan file, misalnya /etc/init.d/transmission-daemon

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

hapus dir

rm -rf ~/dummy

2
Juga harus dicatat bahwa apt-get downloadunduhan ke direktori kerja saat ini.

4
Anda dapat menghindari mengekstraksi seluruh arsip menggunakan pipa yang melibatkan dpkg-deb --fsys-tarfiledan tar, seperti:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
kojiro

1
/tmp/dummytampaknya lebih nyaman ~/dummydan kebutuhan untuk menghapusnya.
Karl Richter

Lebih suka apt-get downloadkarena apt-get --download-only installakan berhenti jika paket sudah diinstal. Seperti yang ditunjukkan oleh jawaban camypaj.
Julien Carsique

Untuk memperluas komentar Kojiro, saya harus melihat apa nilai default nginx's worker_processespengaturan pada berbagai mesin. Jadi saya datang dengan perintah berikut: 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

Saya tahu ini agak lama, tapi inilah peningkatan saya:

$ sudo apt-get download <package-name>

dari pada

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

Saya mempunyai situasi di mana paket sudah diinstal (maka, solusi yang diusulkan tidak bekerja), dan saya ingin mengembalikan hanya satu file konfigurasi, untuk memperbaiki masalah.

Tepuk tangan


3
jika Anda sudah menginstal paket maka biasanya sudah ditemukan /var/cache/apt/archives/dan Anda tidak perlu mengunduhnya.
Ahmed Masud

2
Ya, tetapi hanya jika paket itu diinstal relatif baru, dan arsip belum secara manual atau otomatis dibersihkan.
joeytwiddle
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.