web-dev-qa-db-fra.com

Comment gérer les logiciels installés à partir des sources?

De temps en temps, il se peut que nous devions installer quelque chose à partir de la source pour diverses raisons. Bien qu’il soit relativement classique d’installer un logiciel avec les dépendances appropriées, il m’est difficile de comprendre comment gérer une telle installation pour plus de commodité.

Plus précisement:

  1. Que pouvons-nous faire pour assurer une désinstallation facile et propre (y compris les dépendances installées juste avant et uniquement pour le logiciel installé à partir de la source)?

  2. Que pouvons-nous faire pour assurer une mise à niveau facile et propre du même logiciel, qui sera probablement réinstallé à partir de la source?

  3. Que pouvons-nous faire pour minimiser les conflits potentiels s’il existe un paquet par défaut (installé avec apt-get) ainsi que la version (plus récente) du paquet (installé à partir du code source)?

14
skyork

Utiliser checkinstall make install créera un paquet temporaire et l’installera. Cela signifie qu'il est enregistré dans le gestionnaire de paquets et peut être désinstallé.

8
user54114

La meilleure chose à faire serait de créer vous-même les paquets Debian à partir des versions les plus récentes. dpkg et les outils apt effectuent les trois opérations que vous avez mentionnées et qui sont destinées à cet usage. Utilisez-les au lieu de réinventer la roue. Il existe de nombreux guides sur les emballages disponibles. Si le logiciel existe déjà dans les référentiels, vous pouvez probablement obtenir le paquet source (apt-get src) que vous pouvez utiliser pour étudier et lancer votre propre paquet.

Cette réponse à https://askubuntu.com/a/485230/158442 pourrait être utile en tant que directive générale.

Bien que checkinstall soit idéal pour une solution rapide et sale, vous devez utiliser un emballage approprié à long terme.

7
muru

Tout d’abord, tout dépend de la façon dont vous gérez vos codes sources. Je crée un répertoire tel que ~/sources et je place chaque programme dans ses sous-répertoires, tandis que d'autres créeront un nouveau répertoire pour chaque programme.

De même, certains, comme moi, créent un nouveau sous-sous-répertoire pour chaque nouvelle version et suppriment les anciennes versions uniquement s’il est assuré qu’il n’y a pas de bogue important dans la nouvelle version susceptible d’arrêter mon travail.

Il n'y a pas qu'une seule façon de faire cela, mais quelle que soit la façon que vous choisissiez, choisissez la meilleure façon de la gérer.

  1. Nettoyage de la désinstallation

    • Je suggèrerais de créer un script rem_dep.sh qui ressemblerait à ceci.

      #! /bin/bash
      Sudo apt-get remove dep1 dep2 ... depn
      

      dep1, dep2, depn sont des dépendances.

  2. Mise à niveau propre et facile

    • si vous obtenez le code source d'un système de gestion de version automatisé tel que git ou Bazaar, ou si les liens sont prévisibles, vous pouvez créer un script Shell qui

      #1 make a backup of earlier version
      #2 get new source
      #3 configure, build/make the source
      #5 if make went correctly, remove earlier version.
      #6 make install new version, update dependencies if required.
      
    • Dans d'autres cas également, vous pouvez créer de tels scripts avec un travail manuel dans une certaine mesure.

  3. Gestion des conflits

    • Le meilleur moyen consiste à utiliser l'option --prefix lors de l'installation des logiciels et de leurs dépendances.
    • Une autre chose importante est de garder votre système à jour afin de minimiser les conflits.

NOTE: Si vous compilez plus de logiciels que vous ne devriez (définissez un max_limit, par exemple 5, 10 ou 100), il est préférable de quitter Ubuntu et de passer à Arch Linux.

4
Registered User

Construire des dépendances:

  • Autant que je sache, ils doivent être enregistrés manuellement. Vous pouvez créer un fichier tel que README pour conserver la liste des dépendances installées manuellement.

  • Si ce logiciel a déjà un fichier binaire construit dans les référentiels Ubuntu ou PPA. Le suivi des dépendances lors de l'installation devrait faciliter:

    Sudo apt-get build-dep target_package
    

Nettoyer désinstaller:

Conservez le dossier configuré & installé. Mieux vaut collecter toutes les sources dans un dossier spécifique avec le fichier de dépendances installées.

Mise à niveau propre et isolation des fichiers installés:

Installez-les dans --prefix (de préférence --prefix=/opt/software_name-version/).

Cela résoudra de nombreux problèmes: versions simultanées avec celle du référentiel; mise à niveau propre; plus facile pour la désinstallation en cas de suppression de la source.

Construire un paquet Debian (Pour les paquets disponibles dans les référentiels Ubuntu/PPA)

3
user.dz