¿Cómo restaurar un solo archivo de un paquete?


Respuestas:


21

Descargue el paquete, por ejemplo transmission-daemon, con

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

desempaquete el paquete con

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

restaurar el archivo, por ejemplo /etc/init.d/transmission-daemon

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

eliminar el directorio

rm -rf ~/dummy

2
También debe tenerse en cuenta que las apt-get downloaddescargas en el directorio de trabajo actual.

44
Puede evitar extraer todo el archivo utilizando una tubería que implique dpkg-deb --fsys-tarfiley tar, de esta manera:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
kojiro

1
/tmp/dummyParece más conveniente eso ~/dummyy la necesidad de eliminarlo.
Karl Richter

Prefiero apt-get downloadya que apt-get --download-only installse detendrá si el paquete ya está instalado. Como lo indica la respuesta de camypaj.
Julien Carsique

Para ampliar el comentario de kojiro, tuve que mirar cuál es el valor predeterminado de nginxla worker_processesconfiguración de en una gama de máquinas. Así me ocurrió con el siguiente comando: 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

Sé que esto es un poco viejo, pero aquí está mi mejora:

$ sudo apt-get download <package-name>

en lugar de

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

Tuve una situación en la que el paquete ya estaba instalado (por lo tanto, la solución propuesta no funcionó), y quería restaurar solo un archivo de configuración, para solucionar el problema.

Salud


3
Si ya tiene un paquete instalado, normalmente se encuentra en él /var/cache/apt/archives/y no debería tener que descargarlo.
Ahmed Masud

2
Sí, pero solo si el paquete se instaló hace relativamente poco tiempo y los archivos no se han limpiado manual o automáticamente.
joeytwiddle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.