web-dev-qa-db-fra.com

Puis-je mettre à jour directement le logiciel installé à partir du code source

Bien que cela fait presque un an que je commence à utiliser Ubuntu, je n’ai pas tenté d’installer un logiciel à partir de la source. Je n'ai pas vraiment trouvé le besoin de le faire. Mais maintenant, je travaille sur un logiciel qui est au stade de la version candidate à la publication dans les référentiels, mais le code source de la dernière version stable est disponible sur la page d'accueil du logiciel.

J'ai appris que l'installation à partir du code source peut être difficile si le logiciel comporte de nombreuses dépendances. Cependant, si je m'attaque à cela, je peux être satisfait de la dernière version. Mais je me demande toujours si un tel logiciel peut se mettre à jour automatiquement ou si je devrai exécuter des scripts pour mettre à jour le paquet. Ou pire encore, devrai-je réinstaller chaque mise à jour à partir de zéro?

De plus, je suis impatient de savoir s’il existe un avantage particulier à installer à partir d’une source autre que celle indiquée ci-dessus.

14
Chethan S.

Il est préférable de noter que les dépendances d'un logiciel changent rarement. Si vous avez compilé le logiciel avec succès une fois, toutes les versions ultérieures devraient soient faciles à compiler - toutes les dépendances devraient déjà satisfaites.

Si vous compilez à partir de la source, il n’y aura ni .deb ni aucun package similaire que vous pourrez utiliser pour mettre à jour, sauf si vous attendez que la distribution inclue ce logiciel dans leurs dépôts, ou attendez jusqu'à ce que le PPA des développeurs soit mis à jour.

En termes simples, quelqu'un doit d'abord le compiler pour en faire un deb. Compiler une ancienne version ne vous donnerait pas la possibilité de mettre à jour automatiquement, vous devez toujours suivre tout le processus "télécharger-configurer-compiler-installer".

Cependant, si vous voulez installer la même version sur plusieurs ordinateurs, il serait judicieux de conditionner votre version compilée en tant que .deb (ou similaire) et de la distribuer sur ces ordinateurs. Si cela est fait correctement, les dépendances seraient automatiquement intégrées.

En ce qui concerne les avantages de l’installation à partir de la source, les deux seuls auxquels je peux penser sont:

  • Vous avez accès à la dernière révision du code et vous avez le choix entre une version stable ou la version la plus avancée (généralement appelée buildly nightly, dernière révision, etc.).
  • Ubuntu/other-distribution pourrait ne pas vouloir inclure le logiciel dans leurs référentiels. Dans ce cas, vous êtes bloqué avec le code source ou les packages fournis par les développeurs ou la communauté. C'est-à-dire que vous n'avez pas d'autre choix que d'utiliser les sources.
10
evgeny

Selon ceci post vous pouvez générer un paquet .deb après avoir compilé les sources. Ensuite, au lieu de "make install", vous pouvez installer à partir du paquet .deb. Cela facilite la mise à jour (s’il se trouvait dans un référentiel) car le paquet sera géré par le gestionnaire de paquets qui suit la mise à jour.

Dans le cas de la construction du paquet "some-package" à partir des sources, et qu'il existe des dépendances, vous pouvez essayer "apt-get build-dep some-package" pour installer automatiquement toutes les dépendances nécessaires à la compilation de votre paquet, sans effectuer de suivi manuel. la dépendance vous-même. De cette façon, les dépendances sont également gérées par le gestionnaire de paquets et doivent également être mises à jour automatiquement.

4
M. Alaggan

Une autre alternative pour les utilisateurs de git mérite d’être mentionnée:

Vous pouvez également utiliser git pull après un précédent git clone pour mettre à jour votre code source, puis recompiler votre programme si vous le souhaitez. (Vous pouvez également utiliser git pour poursuivre le suivi des fichiers: voir la réponse ici .)

Si vous utilisiez initialement git clone pour obtenir le code source, comme par exemple,

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

et vous avez conservé le dossier après la compilation et l’installation, vous pouvez y accéder et lancer git pull pour obtenir les derniers commits. Supprimez ensuite tous les répertoires de construction que vous avez créés et/ou exécutez make clean (le cas échéant), puis compilez à nouveau le logiciel et installez-le avec checkinstall, ce qui crée également un package (bien que non approprié). Distribution).

Toutefois, si vous contribuez au développement d'un programme et que vous devez recompiler chaque jour git pull quotidiennement, vous devrez probablement l'installer dans le dossier de base, car il serait inutile d'installer la hiérarchie /usr/local/ à chaque fois. .

Par exemple, si je teste et si je recompile régulièrement un programme, je me connecterais à mon dossier de construction après avoir obtenu les derniers commits avec git pull et exécuter (pour ce programme particulier):

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

puis compilez la version de débogage à tester.

Cependant, si vous vouliez simplement compiler une nouvelle version de votre programme cloné git tous les mois environ (sans le tester ni le déboguer), vous installeriez généralement la hiérarchie /usr/local/ avec checkinstall.

3
user76204

Pour gérer vos installations à partir des sources, veuillez consulter ma réponse ici: Comment mettre à jour des paquetages compilés à partir des sources?

0