Copie o aplicativo compilado para outro sistema

1

Eu compilei a versão mais recente do netatalk (3.1.8) da fonte para substituir a versão mais desatualizada do meu Raspberry Pi.

Isso foi bem-sucedido, e eu gostaria de usar esta versão em outros Raspberry Pi, mas o download de todas as bibliotecas dev e a repetição da compilação parece um exagero.

Existe um processo para copiar a versão compilada, com seus arquivos man e conf etc para outro sistema?

    
por Milliways 17.06.2016 / 10:38

2 respostas

3

Kusalananda 's resposta é a melhor abordagem em geral; mas no caso de netatalk , atualizar o pacote para uma versão mais recente parece um pouco complexo (pelo menos, no contexto de uma distribuição).

Agora que você instalou sua versão de netatalk construída localmente, eu recomendaria a seguinte abordagem (suponho que você tenha extraído netatalk para um diretório chamado netatalk-3.1.8 , e tenha sido compilado e instalado a partir daí ):

  • tar acima da origem (e dos binários construídos na árvore de origem);
  • copie o tarball para outro Raspberry Pi;
  • no outro Raspberry Pi, instale checkinstall e extraia o tarball;
  • instale os binários usando checkinstall

    checkinstall -D make install
    

    (como root ).

Esta última etapa instalará os binários copiados na fonte pré-criada do seu primeiro Raspberry Pi (que não deve exigir nenhum pacote -dev ) e criará um pacote .deb a partir dele. Você pode copiar o pacote .deb para outros sistemas Raspberry Pi ...

Não tenho certeza de como isso funcionará se alguma das bibliotecas necessárias estiver faltando, portanto, convém executar ldd nos binários do seu primeiro Raspberry Pi antes e certificar-se de que o lib... correspondente pacotes (não -dev !) estão instalados no segundo.

Há uma variante mais simples se o netatalk Makefile tiver uma meta uninstall em execução: nesse caso, no primeiro Raspberry Pi,

  • instale checkinstall ;
  • desinstale netatalk :

    make uninstall
    
  • instale novamente usando checkinstall :

    checkinstall -D make install
    

Dessa forma, você sabe que as bibliotecas necessárias já estão instaladas e o .deb resultante deve ter as dependências apropriadas.

Se checkinstall não funcionar , sempre haverá a abordagem de tarball pré-criada:

  • tar acima da origem (e dos binários construídos na árvore de origem);
  • copie o tarball para o outro Raspberry Pis;
  • em cada Raspberry Pi, execute make install ;
  • anote as bibliotecas que você precisa instalar separadamente para que tudo funcione.
por 17.06.2016 / 13:53
0

É por isso que as ferramentas de empacotamento como yum , dpkg e rpm existem. Eu não sou um usuário Rasbian e não sei se o netatalk está disponível como um pacote para o sistema (verificando ... parece ser ).

  • Se estiver disponível, esse seria seu primeiro porto de escala.
  • Se estiver disponível, mas a versão for muito antiga, entrarei em contato com o mantenedor do pacote sobre uma atualização.
  • Se não estiver disponível, ou você simplesmente não quiser entrar em contato com o mantenedor, você pode considerar construir um pacote com qualquer sistema de gerenciamento de pacotes que o Rasbian use (parece ser pacotes Debian). Aqui está um HOWTO para dpkg e aqui é outro que as pessoas de Rasbian têm links para suas próprias páginas .

Para não usar um pacote binário significa que você terá que manter o controle de onde todos os arquivos estão instalados, de alguma forma, e então esperar que a descompactação desse arquivo tar não sobrescreva as coisas no destino. Estas são todas as coisas que uma ferramenta de gerenciamento de pacotes faz (além de garantir que as dependências sejam atendidas, etc.)

Rasbian parece ser uma pequena distribuição que depende da participação do usuário, então um diálogo amigável com um mantenedor de pacote pode ser bem-vindo?

    
por 17.06.2016 / 11:36