Posso atualizar o software instalado diretamente do código-fonte?

11

Apesar de ter passado quase um ano desde que comecei a usar o Ubuntu, não tentei instalar o software a partir do código-fonte. Eu realmente não encontrei a necessidade de fazê-lo. Mas agora estou trabalhando em um software que está no estágio de release candidate nos repositórios, mas o código-fonte da última versão estável está disponível na página inicial do software.

Aprendi que instalar a partir do código-fonte pode ser difícil se o software tiver muitas dependências. No entanto, se eu resolver isso, posso estar feliz com a versão mais recente. Mas eu continuo me perguntando se tal software pode se atualizar automaticamente ou se eu vou ter que executar alguns scripts para atualizar o pacote. Ou, pior ainda, 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.

    
por Chethan S. 16.10.2010 / 03:19

4 respostas

8

É melhor notar que as dependências de um software raramente mudam. Se você tiver compilado o software com sucesso uma vez, qualquer versão subseqüente deve ser fácil de compilar - todas as dependências já devem estar satisfeitas.

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

Simplificando, alguém tem que compilá-lo primeiro para torná-lo um deb. Compilar uma versão antiga não lhe daria a capacidade de atualizar automaticamente, você ainda tem que passar por todo o processo "download-configure-compile-install".

No entanto , se você quiser 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 feito corretamente, as dependências seriam colocadas automaticamente.

Quanto às vantagens de instalar a partir do código-fonte, as únicas duas em que consigo pensar são:

  • Você obtém acesso à revisão mais recente do código e tem a opção de uma versão estável ou a versão de ponta (geralmente chamadas de construções 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.
por evgeny 16.10.2010 / 04:46
4

De acordo com essa postagem , você pode gerar um. pacote deb depois de compilar as fontes. Então, 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 construir o pacote "algum-pacote" a partir de fontes, e existem dependências, você pode tentar "apt-get build-dep algum-pacote" para instalar automaticamente todas as dependências necessárias para você compilar seu pacote, sem acompanhar manualmente cada dependência. Dessa forma, as dependências também são gerenciadas pelo gerenciador de pacotes e devem ser atualizadas automaticamente também.

    
por M. Alaggan 16.10.2010 / 03:37
3

Outra alternativa para git usuários vale a pena mencionar:

Você também pode usar git pull depois de um git clone anterior para atualizar seu código-fonte e, em seguida, recompilar seu programa, se desejar. (Você também pode usar git para continuar acompanhando os arquivos: veja a resposta aqui .)

Se você usou originalmente git clone para obter o código-fonte, como, por exemplo,

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

e você reteve a pasta depois de compilar e instalar, você pode cd para a pasta e executar git pull para obter os últimos commits. Em seguida, remova todos os diretórios de compilação que você tenha criado e / ou execute make clean (se apropriado) e compile o software novamente e instale-o com checkinstall , que também cria um pacote para você (embora não seja adequado para distribuição). / p>

No entanto, se você estiver ajudando com o desenvolvimento de um programa e precisar recompilar após cada git pull diário, provavelmente instalaria a pasta inicial, pois não seria necessário instalá-la na /usr/local/ hierarchy a cada vez.

Como exemplo, se eu estou testando e recompilando regularmente um programa, eu coloco um cd na minha pasta de compilação depois de obter os últimos commits com git pull e run (para esse programa em particular):

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

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

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

    
por user76204 26.02.2013 / 03:08
0

Para gerenciar suas instalações a partir da fonte, por favor, veja minha resposta aqui: Como atualizar pacotes compilados da fonte?

    
por Aleksandr Levchuk 17.05.2011 / 06:34