Possível reconstruir o pacote deb da instalação?

5

Eu instalei alguns pacotes deb de terceiros de um PPA, que agora deletaram os pacotes.

É de alguma forma possível reconstruir os pacotes como eu tenho no host onde eles estão instalados?

    
por Sandra 29.11.2011 / 17:59

4 respostas

7

É possível que os pacotes ainda estejam em seu cache .deb local. Veja se está lá antes de tentar reconstruí-lo.

Tente procurar em /var/cache/apt/archives . É onde o cache do apt está localizado nas minhas máquinas Debian (deve estar no mesmo local no Ubuntu).

Como @Zoredache menciona: Se você tem o hábito de executar apt-get clean , seu cache local estará vazio. Por favor, veja sua resposta sobre como reconstruir o pacote usando o arquivo de controle e scripts.

    
por 29.11.2011 / 18:13
5

Deveria ser possível, mas será um pouco complicado.

Um pacote Debian devidamente criado quando instalado deixará a maioria dos detalhes importantes que você precisa fazer em /var/lib/dpkg/info .

O primeiro arquivo importante é /var/lib/dpkg/info/foo.list , que deve ser uma lista de todos os arquivos incluídos no pacote original que foram instalados no seu sistema. Então comece a fazer uma cópia de todos esses arquivos em algum diretório temporário.

A versão binária de um pacote Debian incluirá um arquivo de controle que inclui vários scripts. Pegue /var/lib/dpkg/info/foo.(postinst|postrm|preinst|prerm) esses são seus scripts de instalação / desinstalação. Outra maneira de obter uma lista é executar dpkg-query -c foo .

O outro arquivo que você precisa para criar um pacote Debian é o arquivo de controle. AFAIK, o arquivo de controle de pacotes não é armazenado em nenhum lugar do sistema, mas você pode obter algo próximo o suficiente para poder reconstruí-lo executando o comando dpkg-query -s foo | grep -v 'Status:' .

De qualquer forma, com o arquivo instalado pelo pacote e todos os arquivos de controle, você deve ser capaz de reconstruir o pacote. Este HOWTO do Debian Binary Package Building deve fornecer detalhes suficientes sobre como usar o dpkg-deb para faça isso.

    
por 29.11.2011 / 18:52
4

Você pode rastrear onde os pacotes soltam coisas e usar FPM

Eu só fiz isso para criar um deb de uma aplicação web instalada. fpm -s dir -t deb -n "webapp1" -v 1.0-mywebapp /var/www/pathtowebapp

    
por 29.11.2011 / 18:21
3

Debian tem dpkg-repack para esta tarefa. É apenas um script perl e roda desde o debian / sarge. Também deve fazer o truque no Ubuntu.

    
por 30.11.2011 / 09:52

Tags