Como posso fazer com que pacotes auto-compilados sejam reproduzidos com gerenciadores de pacotes (por exemplo, apt-get, yum) [duplicado]

0

Suponha que eu queira:

  • compilar e instalar meu próprio aplicativo personalizado
  • que requer o download, a compilação e a instalação da fonte da versão mais recente do libthrift
  • que requer o download, a compilação e a instalação da versão mais recente do libboost

Aqui, estou instalando essas bibliotecas no meu sistema, que podem interagir com outros pacotes - muitas bibliotecas dependem do libthrift e do libboost.

  • instalá-los pode quebrar o pacote existente instalado com o apt-get / yum

Além disso, se mais tarde eu executar o apt-get ou o yum:

  • meu libthrift e libboost personalizados serão sobrescritos, quebrando meu aplicativo personalizado que depende de versões personalizadas dessas bibliotecas.

Então, qual é a solução aqui? Eu não quero instalar em / home (eu gostaria que os pacotes estivessem disponíveis para usuários compartilhados em um cluster de compilação de regressão de código). Eu também li que / opt não é realmente para essa finalidade (os pacotes instalados devem ser auto-suficiente , o que eles não são). As referências que eu encontrei parecem cobrir este caso em detalhes suficientes.

    
por user48956 04.08.2015 / 19:53

1 resposta

5

Geralmente, a solução é "não tente instalar da origem em diretórios gerenciados pelo sistema de empacotamento".

Você pode instalar o seu código compilado em /usr/local , por exemplo, e ter qualquer coisa que dependa dele procure /usr/local para bibliotecas e incluir arquivos usando as chamadas apropriadas de seu sistema de compilação (por exemplo, definindo CPPFLAGS / CFLAGS / LDFLAGS para um Makefile típico.

Você pode até instalar tudo em um diretório específico do aplicativo (por exemplo, /usr/local/myapp ou /opt/myapp ).

Esse também é um ótimo caso de uso para algo como Docker , que facilita muito a configuração de ambientes isolados de desenvolvimento / tempo de execução que são isolados do seu host.

    
por 04.08.2015 / 20:08