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.