Compile o pacote .deb da origem, sem instalá-lo

4

Suponha que eu tenha um programa de instalação ou um tarball de origem para algum programa que eu queira instalar. (Não existe um pacote Debian disponível.) Primeiro eu quero criar um pacote .deb , para poder remover o programa instalado no futuro (veja Desinstalando o aplicativo construído a partir da fonte , Se eu construir um pacote a partir do código-fonte, como posso desinstalar ou remover completamente? . Além disso, a instalação usando um pacote impede que ele destrua arquivos de outros pacotes, o que não pode ser garantido se você executar o instalador ou sudo make install .

Checkinstall

Depois de ler as respostas lá e em outros lugares, concluo que a solução usual é usar checkinstall para criar o pacote . Infelizmente, parece que checkinstall não impede make install de destruir arquivos de sistema de outros pacotes. Por exemplo, de acordo com Revertendo problemas causados por checkinstall com o gcc build :

  

Eu criei um pacote Debian da instalação usando sudo checkinstall -D make install .

     

[...] eu o removi usando o Gerenciador de Pacotes Synaptic. Como se vê, [remover] o pacote checkinstall criado a partir de make install tentou remover todos os arquivos que o processo de instalação tocou, incluindo bibliotecas compartilhadas do gcc como /lib64/libgcc_s.so.

Eu então tentei dizer ao checkinstall para construir o pacote sem instalá-lo, na esperança de contornar o problema. Eu criei um Makefile fictício:

install:
    echo "Bogus" > /bin/qwertyuiop

e executou sudo checkinstall --install=no . O arquivo /bin/qwertyuiop foi criado, mesmo que o pacote não tenha sido instalado.

No meu caso, eu não confio no instalador / make install para não sobrescrever arquivos do sistema , então este uso de checkinstall é descartado.

Como posso construir o pacote, sem instalá-lo ou deixá-lo tocar nos arquivos do sistema?

É possível executar o Checkinstall em um fakechroot ed ambiente debootstrap para conseguir isso? De preferência, a compilação deve ser feita como um usuário normal em vez de root, o que impediria que o processo sobrescrevesse arquivos do sistema se algo desse errado.

    
por Mechanical snail 03.11.2012 / 05:33

2 respostas

3

Você pode querer experimentar o debuild para criar um arquivo binário (deb) fora da fonte. Você teria que preparar a pasta debian como se estivesse empacotando. Depois de acertar, execute o comando debuild -b dentro do diretório fonte e ele criará um arquivo deb para você.

Você também gostaria de dar uma olhada no Introdução ao pacote Debian .

Se tudo isso é uma loucura, você teria que se contentar com checkinstall mexendo com arquivos do sistema.

    
por jokerdino 03.11.2012 / 06:05
0

Eu encontrei uma resposta em um artigo do Linux Journal Usando o Checkinstall Para criar pacotes a partir da fonte :

  

Se você quiser apenas criar o .deb sem executar a instalação, use o interruptor da linha de comando

sudo checkinstall --install=no

    
por DMfll 24.10.2015 / 01:49