Comment restaurer un seul fichier à partir d'un package?


Réponses:


21

Téléchargez le package, par exemple transmission-daemon, avec

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

déballer le colis avec

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

restaurer le fichier, par exemple /etc/init.d/transmission-daemon

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

supprimer le dir

rm -rf ~/dummy

2
Il convient également de noter que les apt-get downloadtéléchargements dans le répertoire de travail actuel.

4
Vous pouvez éviter d'extraire l'archive entière en utilisant un pipeline impliquant dpkg-deb --fsys-tarfileet tar, comme ceci:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
— kojiro

1
/tmp/dummysemble plus pratique que cela ~/dummyet la nécessité de le supprimer.
— Karl Richter

Préférer apt-get downloadpuisque apt-get --download-only installs'arrêtera si le package est déjà installé. Comme indiqué par la réponse de camypaj.
— Julien Carsique

Pour développer le commentaire de Kojiro, je devais regarder ce qui est la valeur par défaut nginxde » worker_processesréglage sur une gamme de machines. Alors je suis venu avec la commande suivante: 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

Je sais que c'est un peu vieux, mais voici mon amélioration:

$ sudo apt-get download <package-name>

au lieu de

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

J'ai eu une situation où le paquet était déjà installé (par conséquent, la solution proposée ne fonctionnait pas), et je voulais restaurer un seul fichier de configuration, afin de résoudre le problème.

À votre santé


3
si un package est déjà installé, il se trouve généralement dans /var/cache/apt/archives/et vous ne devriez pas avoir à le télécharger.
— Ahmed Masud,

2
Oui, mais uniquement si le package a été installé relativement récemment et que les archives n'ont pas été nettoyées manuellement ou automatiquement.
— joeytwiddle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.