Posso aggiornare direttamente il software installato dal codice sorgente


14

Anche se è quasi un anno da quando ho iniziato a utilizzare Ubuntu, non ho tentato di installare software dalla fonte. In realtà non ho trovato la necessità di farlo. Ma ora sto lavorando a un software che è nella fase di rilascio dei candidati nei repository ma l'ultimo codice sorgente della versione stabile è disponibile nella home page del software.

Ho imparato che l'installazione dal codice sorgente può essere difficile se il software ha molte dipendenze. Tuttavia, se lo affronto, posso essere felice con l'ultima versione. Ma continuo a chiedermi se un tale software può aggiornarsi automaticamente o dovrò eseguire alcuni script per aggiornare il pacchetto. O peggio dovrò reinstallare ogni aggiornamento da zero?

Inoltre, sono ansioso di sapere se esiste qualche vantaggio specifico dell'installazione da fonti diverse da quelle sopra.


Risposte:


10

È meglio notare che le dipendenze di un software raramente cambiano. Se il software è stato compilato correttamente una volta, tutte le versioni successive dovrebbero essere facili da compilare - tutte le dipendenze dovrebbero essere già soddisfatte.

Se hai compilato dal sorgente, non esiste .debun pacchetto simile o simile che potresti utilizzare per l'aggiornamento, a meno che non aspetti che la distribuzione includa quel software nei loro repository o attendi fino all'aggiornamento del PPA degli sviluppatori.

In poche parole, qualcuno deve prima compilarlo per trasformarlo in un deb. Compilare una versione precedente non ti darebbe la possibilità di aggiornare automaticamente, devi comunque passare attraverso l'intero processo di "download-configura-compila-installa".

Tuttavia , se si desidera installare la stessa versione su più computer, sarebbe opportuno impacchettare la versione compilata come .deb(o simile) e distribuirla a tali computer. Se fatto bene, le dipendenze verrebbero automaticamente inserite.

Per quanto riguarda i vantaggi dell'installazione da sorgenti, le uniche due che mi vengono in mente sono:

  • Ottieni l'accesso all'ultima revisione del codice e puoi scegliere tra una versione stabile o una versione all'avanguardia (di solito chiamate build notturne, ultima revisione, ecc.)
  • Ubuntu / altra distribuzione potrebbe non voler includere il software nei loro repository. In tal caso, sei bloccato con il codice sorgente o i pacchetti forniti dagli sviluppatori o dalla community. Cioè, non hai altra scelta che usare le fonti.

4
Anche se compili qualcosa tu stesso per l'uso su 1 computer, è sempre utile creare un pacchetto .deb da solo, poiché ti aiuta a mantenere una panoramica del software installato in un unico posto e semplifica anche la disinstallazione o l'aggiornamento.
JanC

4

Secondo questo post puoi generare un pacchetto .deb dopo aver compilato i sorgenti. Quindi invece di "make install", è possibile installare dal pacchetto .deb. Ciò semplifica l'aggiornamento (se si trovava in un repository) perché il pacchetto sarà gestito dal gestore pacchetti che tiene traccia dell'aggiornamento.

Nel caso in cui si compili il pacchetto "some-package" dai sorgenti e ci sono dipendenze, si può provare "apt-get build-dep some-package" per installare automaticamente tutte le dipendenze necessarie per compilare il pacchetto, senza rintracciare manualmente ogni dipendenza te stesso. In questo modo, anche le dipendenze sono gestite dal gestore dei pacchetti e dovrebbero essere aggiornate automaticamente.


3

Un'altra alternativa per gli gitutenti merita di essere menzionata:

È inoltre possibile utilizzare git pulldopo un precedente git cloneper aggiornare il codice sorgente e quindi ricompilare il programma se lo si desidera. (È inoltre possibile utilizzare gitper tenere ulteriormente traccia dei file: vedere la risposta qui .)

Se in origine hai utilizzato git cloneil codice sorgente, ad esempio,

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

e hai conservato la cartella dopo la compilazione e l'installazione, puoi eseguire il cd nella cartella ed eseguire git pullper ottenere gli ultimi commit. Quindi rimuovi tutte le directory di build che potresti aver creato e / o eseguito make clean(se appropriato), quindi compila nuovamente il software e installalo con checkinstall, che crea anche un pacchetto per te (anche se non adatto alla distribuzione).

Tuttavia, se stai aiutando con lo sviluppo di un programma e git pullhai bisogno di ricompilare dopo ogni giorno , probabilmente installerai nella cartella home, poiché non sarebbe necessario installarlo /usr/local/ogni volta nella gerarchia.

Ad esempio, se sto testando e ricompilando così regolarmente un programma, vorrei cd nella mia cartella di build dopo aver git pulleseguito gli ultimi commit ed esecuzione (per questo particolare programma):

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

e quindi compilare la versione di debug da testare.

Tuttavia, se volessi semplicemente compilare una nuova versione del tuo programma clonato git ogni mese o giù di lì (e non lo stavi testando o eseguendo il debug) di solito installeresti nella /usr/local/gerarchia con checkinstall.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.