¿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.