Como restaurar um único arquivo de um pacote?


Respostas:


21

Faça o download do pacote, por exemplo transmission-daemon, com

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

desembale a embalagem com

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

restaurar o arquivo, por exemplo /etc/init.d/transmission-daemon

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

remova o dir

rm -rf ~/dummy

2
Note-se também que os apt-get downloaddownloads para o diretório de trabalho atual.

4
Você pode evitar extrair todo o arquivo usando um gasoduto envolvendo dpkg-deb --fsys-tarfilee tar, assim:dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
kojiro

1
/tmp/dummyparece mais conveniente ~/dummye necessário removê-lo.
Karl Richter

Prefira, apt-get downloadpois apt-get --download-only installirá parar se o pacote já estiver instalado. Conforme indicado pela resposta de camypaj.
Julien Carsique

Para expandir o comentário de kojiro, eu tive que olhar para o que é o valor padrão de nginx's worker_processesconfiguração em uma gama de máquinas. Então eu vim com o seguinte 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

Eu sei que isso é um pouco antigo, mas aqui está a minha melhoria:

$ sudo apt-get download <package-name>

ao invés de

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

Eu tinha uma situação em que o pacote já estava instalado (portanto, a solução proposta não funcionava) e queria restaurar apenas um arquivo de configuração, a fim de corrigir o problema.

Felicidades


3
se você já possui um pacote instalado, ele normalmente é encontrado /var/cache/apt/archives/e não é necessário fazer o download.
Ahmed Masud

2
Sim, mas somente se o pacote foi instalado há relativamente pouco tempo e os arquivos não foram limpos manual ou automaticamente.
Joeytwiddle 29/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.