จะคืนค่าไฟล์เดียวจากแพ็คเกจได้อย่างไร?


คำตอบ:


21

ดาวน์โหลดแพ็คเกจเช่นtransmission-daemonด้วย

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

แกะกล่องบรรจุด้วย

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

กู้คืนไฟล์ตัวอย่างเช่น /etc/init.d/transmission-daemon

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

ลบ dir

rm -rf ~/dummy

2
ควรสังเกตว่าการapt-get downloadดาวน์โหลดไปยังไดเรกทอรีการทำงานปัจจุบัน.

4
คุณสามารถหลีกเลี่ยงการแยกไฟล์เก็บถาวรทั้งหมดโดยใช้dpkg-deb --fsys-tarfiletardpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
ไพพ์

1
/tmp/dummyดูเหมือนจะสะดวกกว่า~/dummyและจำเป็นต้องลบออก
Karl Richter

ต้องการapt-get downloadตั้งแต่apt-get --download-only installจะหยุดทำงานถ้ามีการติดตั้งแพคเกจไว้แล้ว ตามที่ระบุโดยคำตอบของ camypaj
Julien Carsique

เพื่อขยายความคิดเห็น Kojiro ของผมต้องมองสิ่งที่เป็นค่าเริ่มต้นของnginx's worker_processesการตั้งค่าในช่วงของเครื่อง ดังนั้นฉันจึงคิดคำสั่งต่อไปนี้ขึ้นมา: 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

ฉันรู้ว่ามันค่อนข้างเก่า แต่นี่เป็นการปรับปรุงของฉัน:

$ sudo apt-get download <package-name>

แทน

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

ฉันมีสถานการณ์ที่ติดตั้งแพคเกจแล้ว (ดังนั้นโซลูชันที่เสนอไม่ทำงาน) และฉันต้องการกู้คืนไฟล์กำหนดค่าเพียงไฟล์เดียวเพื่อแก้ไขปัญหา

ไชโย


3
หากคุณมีแพ็คเกจที่ติดตั้งไว้แล้วโดยทั่วไปจะพบได้ใน/var/cache/apt/archives/และคุณไม่ควรดาวน์โหลด
Ahmed Masud

2
ใช่ แต่ถ้าติดตั้งแพคเกจค่อนข้างเร็ว ๆ นี้และคลังเก็บไม่ได้ถูกล้างด้วยตนเองหรือโดยอัตโนมัติ
joeytwiddle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.