Je ne sais pas si c'est le meilleur endroit pour poser cette question. Veuillez m'indiquer la bonne direction s'il existe un meilleur endroit.
Disons, hypothétiquement, que j'ai deux machines - A est une machine de développement et B est une machine de production. A a un logiciel comme un compilateur qui peut être utilisé pour créer un logiciel à partir de la source, tandis que B n'en a pas.
Sur A, je peux facilement créer un logiciel à partir des sources en suivant la routine habituelle :
./configure
make
Ensuite, je peux installer le logiciel construit sur A en exécutant sudo make install
. Cependant, ce que j'aimerais vraiment faire, c'est installer le logiciel que je viens de créer sur B. Quelle est la meilleure façon de le faire ?
J'ai envisagé plusieurs options :
- Utiliser un gestionnaire de packages pour installer le logiciel sur B :ce n'est pas une option pour moi car le logiciel disponible dans le gestionnaire de packages est très obsolète.
- Installer le compilateur et les autres outils de compilation sur B :je préfère ne pas installer les outils de compilation sur la machine de production en raison de diverses contraintes.
- Copier manuellement les fichiers binaires de A à B :cela est sujet aux erreurs, et je voudrais m'assurer que les fichiers binaires sont installés de manière cohérente sur les machines de production.
- Installer uniquement
make
sur B, transférez le répertoire source et exécutezsudo make install
sur B :c'est la meilleure solution que j'ai trouvée jusqu'à présent, mais pour une raison quelconque (peut-être des décalages d'horloge),make
tentera de reconstruire le logiciel qui aurait déjà dû être compilé, ce qui échoue puisque les outils de compilation ne sont pas installés sur B. Étant donné que mes machines ont également des vitesses d'E/S terribles, le transfert du répertoire source prend très longtemps .
Ce qui serait vraiment bien, c'est s'il y avait un moyen de créer une sorte de paquet contenant les binaires construits qui peuvent être transférés et exécutés pour installer les binaires et les fichiers de configuration. Existe-t-il un tel outil ?
Réponse acceptée :
En utilisant ce que vous avez jusqu'à présent et si le makefile est généré avec les outils automatiques GNU, je définirais l'emplacement cible ou le chemin d'installation avec
./configure --prefix=/somewhere/else/than/the/usual/usr/local
puis lancez
make && make install
et enfin copiez les fichiers du dossier préfixe vers le dossier usr/
dossier dans l'autre machine. Cela suppose que les deux machines ont la même architecture, sinon, utilisez la chaîne d'outils croisée correspondante.