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:
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)?
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?
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)?
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é.
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.
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.
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
où dep1, dep2, depn
sont des dépendances.
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.
Gestion des conflits
--prefix
lors de l'installation des logiciels et de leurs dépendances.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.
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
Conservez le dossier configuré & installé. Mieux vaut collecter toutes les sources dans un dossier spécifique avec le fichier de dépendances installées.
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)