Posso atualizar o software instalado diretamente do código fonte

14

Embora seja quase um ano desde que comecei a usar o Ubuntu, não tentei instalar o software a partir da fonte. Na verdade, não encontrei a necessidade de fazê-lo. Mas agora estou trabalhando em um software que está no estágio candidato a lançamento nos repositórios, mas o código fonte da versão estável mais recente está disponível na home page do software.

Aprendi que a instalação a partir do código fonte pode ser difícil se o software tiver muitas dependências. No entanto, se eu resolver isso, posso ser feliz com a versão mais recente. Mas fico me perguntando se esse software pode se atualizar automaticamente ou terei que executar alguns scripts para atualizar o pacote. Ou ainda pior, terei que reinstalar cada atualização do zero?

Também estou ansioso para saber se existe alguma vantagem específica de instalar a partir da fonte que não seja a acima.

Chethan S.
fonte
Relacionado: askubuntu.com/questions/22510/…
Caracol mecânico

Respostas:

10

É melhor observar que as dependências de um software raramente mudam. Se você tiver compilado o software com êxito uma vez, qualquer versão subsequente deverá ser fácil de compilar - todas as dependências já deverão estar satisfeitas.

Se você compilou a partir da fonte, não há nenhum .debpacote ou similar que você possa usar para atualizar, a menos que espere a distribuição incluir esse software em seus repositórios ou aguarde até que o PPA dos desenvolvedores seja atualizado.

Simplificando, alguém precisa compilá-lo primeiro para torná-lo um deb. A compilação de uma versão antiga não permitiria a atualização automática, você ainda precisa passar por todo o processo "download-configure-compile-install".

No entanto , se você deseja instalar a mesma versão em vários computadores, faria sentido empacotar sua versão compilada como .deb(ou similar) e distribuí-la para esses computadores. Se bem feito, as dependências serão extraídas automaticamente.

Quanto às vantagens de instalar a partir do código-fonte, os dois únicos que consigo pensar são:

  • Você obtém acesso à revisão mais recente do código e pode escolher entre uma versão estável ou uma versão de ponta (geralmente chamada builds noturnas, revisão mais recente etc.)
  • O Ubuntu / other-distribution pode não querer incluir o software em seus repositórios. Nesse caso, você está preso ao código-fonte ou aos pacotes fornecidos pelos desenvolvedores ou pela comunidade. Ou seja, você não tem escolha a não ser usar as fontes.
evgeny
fonte
4
Mesmo que você mesmo compile algo para uso em um computador, é sempre útil criar um pacote .deb, pois ajuda a manter uma visão geral do software instalado em um único local e facilita a desinstalação ou atualização para você.
JanC 16/10/10
4

De acordo com este post, você pode gerar um pacote .deb depois de compilar as fontes. Em vez de "make install", você pode instalar a partir do pacote .deb. Isso facilita a atualização (se estiver em algum repositório) porque o pacote será gerenciado pelo gerenciador de pacotes que rastreia a atualização.

No caso de compilar o pacote "some-package" a partir das fontes e existirem dependências, você pode tentar "apt-get build-dep some-package" para instalar automaticamente todas as dependências necessárias para a compilação do pacote, sem rastrear manualmente cada dependência você mesmo. Dessa forma, as dependências também são gerenciadas pelo gerenciador de pacotes e devem ser atualizadas automaticamente também.

M. Alaggan
fonte
3

Outra alternativa para os gitusuários vale a pena mencionar:

Você também pode usar git pulldepois de um anterior git clonepara atualizar seu código-fonte e recompilar seu programa, se desejar. (Você também pode usar gitpara acompanhar ainda mais os arquivos: veja a resposta aqui .)

Se você originalmente usou git cloneo código-fonte, como em, por exemplo,

git clone git://github.com/person/programname.git

e você reteve a pasta após a compilação e instalação, você pode fazer o cd para a pasta e executar git pullpara obter as confirmações mais recentes. Em seguida, remova todos os diretórios de criação que você criou e / ou execute make clean(se apropriado) e compile o software novamente e instale-o checkinstall, o que também cria um pacote para você (embora não seja adequado para distribuição).

No entanto, se você estiver ajudando no desenvolvimento de um programa e precisar recompilar após cada diário git pull, provavelmente instalará na pasta base, pois seria desnecessário instalar na /usr/local/hierarquia todas as vezes.

Por exemplo, se estou testando e recompilando regularmente um programa, eu cdaria para minha pasta de compilação depois de obter as confirmações mais recentes com git pulle executar (para este programa em particular):

cmake .. -DCMAKE_BUILD_TYPE=Debug -DLAYOUT=home -DPREFIX=home

e compile a versão de depuração para testar.

No entanto, se você apenas desejasse compilar uma nova versão do seu programa clonado por git a cada mês ou mais (e não o estivesse testando ou depurando), normalmente instalaria na /usr/local/hierarquia checkinstall.

Comunidade
fonte