Compiler en static de Linux vers Linux demande de refaire tout le travail de makefile toute la compilation en local de toutes tes bibliotheques
Qu'appelles-tu "refaire tout le travail de makefile"? Entends-tu "modifier" le makefile? Parce que normalement tu ne devrais pas avoir à toucher aux Makefile. Il y a en général une option pour compiler la librairie en statique (--enable-static ou équivalent). Je ne compile jamais en statique, mais je sais que ça devrait être tout aussi simple qu'en dynamique.
Ça te permettrait en effet d'avoir un gros binaire avec tout dedans et ça résoud le problème.
Quand a ton lien sur les les bibliotheaues partagees, c'est justement le probleme ... je ne sais pas ce que j'aurai lorsque j'arriverai.
Comme dit plus haut, tu peux tout à fait installer tout dans un préfixe de ton choix. Donc "si", tu sais ce que tu auras quand tu arriveras. :-)
Bien sûr, je ne conseillerais pas normalement ce type de procédure pour une belle install propre, avec des libs partagées par divers programmes, etc. Mais si cela te convient et peut te permettre de contourner l'administration trop procédurière, faire gagner des semaines de boulot à tout le monde, alors pourquoi pas.
En gros tu crées ton préfixe perso. Par exemple $HOME/nomduprojet/ et tu compiles tous tes programmes avec --prefix=$HOME/nomduprojet/
Tu voudras probablement temporairement changer ton $PATH, $ACLOCAL_FLAGS, $PKG_CONFIG_PATH, $LD_LIBRARY_PATH, etc. relativement à ce préfixe, bien sûr.
Au final l'ensemble du projet et toutes les dépendances seront inclus dans ce préfixe. Tu n'auras alors qu'à compresser le répertoire et envoyer tout ce qu'il y a dedans sur ta machine cible. Puis sur ta machine, tu décompresses où tu veux, et tu mets à jour le PATH et le LD_LIBRARY_PATH. En général, il n'est même pas nécessaire d'avoir les mêmes qu'à la compilation. Je dis "en général" car selon le programme, il est possible que le préfixe de compilation se retrouve dans des fichiers de conf, voire même dans des binaires compilés. Donc ça reste du cas par cas, un peu dangereux, et il est quand même préférable de savoir quel sera le préfixe final. Mais juste savoir le préfixe que tu peux utiliser, ça ne doit pas être si dur à savoir, non?
Normalement tes admins devraient savoir tout ça ceci dit! Je comprends pas pourquoi tu te retrouves à faire cela si c'est pas ton boulot. Les admins devraient te dire ce dont ils ont besoin. C'est leur boulot.
je sais que j'aurais un linux 64 bits sans droits d'admin.
Ça c'est vraiment pas un blem. Sauf si ton programme est censé avoir accès à des ressources systèmes interdites aux utilisateurs (parce que ça peut faire tout pêter, ou bien parce que ça peut donner des infos sur les autres utilisateurs, par ex). Dans ce cas, il te faut être root à un moment donné pour au minimum faire un setuid. Mais la plupart des programmes utilisateurs n'ont pas ce cas d'usage et peuvent tout à fait être installés sans le moindre droit par un utilisateur normal.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Ca marche avec Linux ??
Posté par Jehan (site web personnel, Mastodon) . En réponse à la dépêche À la Croisée des Chemins: crossroad, environnement de cross-compilation. Évalué à 3.
Qu'appelles-tu "refaire tout le travail de makefile"? Entends-tu "modifier" le makefile? Parce que normalement tu ne devrais pas avoir à toucher aux Makefile. Il y a en général une option pour compiler la librairie en statique (--enable-static ou équivalent). Je ne compile jamais en statique, mais je sais que ça devrait être tout aussi simple qu'en dynamique.
Ça te permettrait en effet d'avoir un gros binaire avec tout dedans et ça résoud le problème.
Comme dit plus haut, tu peux tout à fait installer tout dans un préfixe de ton choix. Donc "si", tu sais ce que tu auras quand tu arriveras. :-)
Bien sûr, je ne conseillerais pas normalement ce type de procédure pour une belle install propre, avec des libs partagées par divers programmes, etc. Mais si cela te convient et peut te permettre de contourner l'administration trop procédurière, faire gagner des semaines de boulot à tout le monde, alors pourquoi pas.
En gros tu crées ton préfixe perso. Par exemple $HOME/nomduprojet/ et tu compiles tous tes programmes avec --prefix=$HOME/nomduprojet/
Tu voudras probablement temporairement changer ton $PATH, $ACLOCAL_FLAGS, $PKG_CONFIG_PATH, $LD_LIBRARY_PATH, etc. relativement à ce préfixe, bien sûr.
Au final l'ensemble du projet et toutes les dépendances seront inclus dans ce préfixe. Tu n'auras alors qu'à compresser le répertoire et envoyer tout ce qu'il y a dedans sur ta machine cible. Puis sur ta machine, tu décompresses où tu veux, et tu mets à jour le PATH et le LD_LIBRARY_PATH. En général, il n'est même pas nécessaire d'avoir les mêmes qu'à la compilation. Je dis "en général" car selon le programme, il est possible que le préfixe de compilation se retrouve dans des fichiers de conf, voire même dans des binaires compilés. Donc ça reste du cas par cas, un peu dangereux, et il est quand même préférable de savoir quel sera le préfixe final. Mais juste savoir le préfixe que tu peux utiliser, ça ne doit pas être si dur à savoir, non?
Normalement tes admins devraient savoir tout ça ceci dit! Je comprends pas pourquoi tu te retrouves à faire cela si c'est pas ton boulot. Les admins devraient te dire ce dont ils ont besoin. C'est leur boulot.
Ça c'est vraiment pas un blem. Sauf si ton programme est censé avoir accès à des ressources systèmes interdites aux utilisateurs (parce que ça peut faire tout pêter, ou bien parce que ça peut donner des infos sur les autres utilisateurs, par ex). Dans ce cas, il te faut être root à un moment donné pour au minimum faire un setuid. Mais la plupart des programmes utilisateurs n'ont pas ce cas d'usage et peuvent tout à fait être installés sans le moindre droit par un utilisateur normal.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]