Forum Linux.général Installer et appeler plusieurs versions d'un programme. (exple : R)

Posté par  .
Étiquettes : aucune
0
4
mai
2010
Bonjour,

J'aimerai savoir la manière la plus simple pour installer et appeler un programme avec plusieurs
versions différentes.
Je m'explique en exemple :) je voudrais faire tourner plusieurs versions de R sur un même
serveur de calcul, j'ai 2 versions à installer à partir des sources (R-2.2.1 & R-2.8.1). Je souhaiterai
donc les appeler comme :

# R-2.8.1
# R-2.2.1

Auriez-vous un tuto ? un lien ? :)

Merci d'avance.
  • # Plusieurs versions

    Posté par  (site web personnel) . Évalué à 2.

    La solution qui est souvent utilisée est d'installer dans /opt. Typiquement, au moment de la compilation, tu configures avec "./configure --prefix=/opt/R-2.2.1 [autres options...]". Vérifie quand même que les autres paramètres d'installation héritent bien de --prefix (et même, tu peux chown'er à ton utilisateur courant le dossier /opt/R-2.2.1 pour être sûr de ne pas écraser les binaires "systèmes").
    • [^] # Re: Plusieurs versions

      Posté par  (site web personnel) . Évalué à 2.

      Le tout ensuite s'est de s'assurer que les différents chemins par défauts pour les utilisateurs soient bien compatibles. Particulièrement les éventuels chemins de recherche de librairies dynamiques et d'executables.

      Par exemple on rajoutera dans le PATH des utilisateurs le répertoire /opt/bin.
      Et dans ce répertoire on créera des scripts appelés
      R-w.x.y qui avant de lancer la commande /opt/R-w.x.y/bin/R ajouteront un petit
      export LD_LIBRARY_PATH=/opt/R-w.x.y/lib/:$LD_LIBRARY_PATH
      et qui une fois la commande terminée executeront un petit
      unset LD_LIBRARY_PATH.

      Etc.

      « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

  • # répertoire d'installation. Pourquoi pas le répertoire personnel ?

    Posté par  . Évalué à 3.

    En fait, si tu cherches dans les options du script ./configure, tu dois pouvoir spécifier un préfixe ou un suffixe pour le binaire que tu crées. Dans ce cas, c'est ultra facile d'installer R, même dans /usr/bin, car tu vas spécifier un nom de binaire particulier qui n'a aucune chance d'écraser le binaire normal.

    Fais quand même gaffe.

    Si tu dois les installer dans ton répertoire perso, tu as juste à spécifier quel est le répertoire cible d'installation (--prefix et --exec-prefix sont les options à examiner je crois)

    À plus.

    Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

    • [^] # Re: répertoire d'installation. Pourquoi pas le répertoire personnel ?

      Posté par  . Évalué à 3.

      Merci pour vos réponses.

      Ce que j'ai fais en voyant le premier message :

      # cd /opt/R-2.11.0/
      # ./configure --prefix=/opt/R-2.11.0/
      # make
      # make install

      J'ai oublié comment créer un alias de commande ? R-2.11.0 vers le path de l'exe R, c-a-d /opt/R-2.11.0/bin/exec/R ...

      J'aimerai bien au final avoir par exemple :
      /opt/R-2.11.0/
      /opt/R-2.11.1/
      /opt/R-2.11.2/

      Et autant de lien/alias facile a taper dans la console pour mes utilisateurs.
      • [^] # Re: répertoire d'installation. Pourquoi pas le répertoire personnel ?

        Posté par  (site web personnel) . Évalué à 3.

        J'ai oublié comment créer un alias de commande ?

        Tu n'as jamais su le faire plutôt, non ? ;-)

        cd /usr/bin ; ln -s /opt/R-2.11.0/bin/exec/R R-2.11.0

        je ne vois pas trop l'intérêt de se trimballer toutes ces versions, R est bien compatible de version en version, non ?
      • [^] # Re: répertoire d'installation. Pourquoi pas le répertoire personnel ?

        Posté par  . Évalué à 2.

        # cd /opt/R-2.11.0/
        # ./configure --prefix=/opt/R-2.11.0/
        # make
        # make install

        Miam ! :-) De la bonne install bien crade....

        PS: le préfix indique généralement la racine dans laquelle il va s'installer le programme (en respectant une certaine convention: binaires dans bin/, librairies dans lib/, etc...). De même, l'os doit être paramètré pour utiliser ces répertoire. Si tu n'utilise pas un prefix standard (càd préconfiguré sur ton système, /usr et généralement /usr/local, le premier étant "réservé" aux paquets officiels), tu dois changer deux paramètres:
        1) les chemins de recherche des librairies partagées : soit d'une manière globale au moyen du fichier /etc/ld.so.conf (ou ajouter un fichier dans /etc/ld.so.d) suivit d'une exécution de 'ldconfig' pour regénérer le cache; soit au moyen de la variable d'environement LD_LIBRARY_PATH.
        2) les chemins de recherche d'exécutables par le shell: avec la variable d'environement PATH (+ commande rehash pour les c-shells).

        Dans ton cas (installation de version en //), je pense que tu peux oublier de modifier ld.so pour éviter tout risque de conflit de version ou éviter que le loader mélanger les librairies des différentes installations. Comme le suggère Anglade, fait un script qui modife l'environement avant de lancer le bon binaire.
  • # Installer et appeler plusieurs versions d'un programme. (exple : R)

    Posté par  . Évalué à 2.

    Selon les statisticiens que j'ai autour de moi, les versions ne sont pas identiques ou peut-être les
    modules/ les librairies ? je sais que la version 2.2.1 est celle qui est la plus apprécié, pourquoi ? yo no sais ! :)

    J'avoue ... ca doit être que des alias que j'ai dû faire jusqu'à présent. Ta commande est donc
    valable pour tous les utilisateurs se le lien symbolique est placé dans /usr/bin ?

    Je suis pas super à l'aise avec les trucs à compiler, surement l'habitude des rpm, yum et
    autres apt-*, les messages parfois rencontrés sont pas très explicites 'make[3]: quittant le répertoire'
    c'est bon ? ou c'est pas bon ?

    :)

    Merci à tous pour vos réponses.
    J'ai plus ou moins toujours trouvé réponse à mes questions grâce aux forum et sites d'entraide,
    j'osais jamais trop poster de peur de se faire traiter comme un boulet, mais je crois que
    maintenant je suis inscrit je vais prendre une nouvelle habitude ...
    • [^] # Re: Installer et appeler plusieurs versions d'un programme. (exple : R)

      Posté par  . Évalué à 3.

      Pour les liens, oui c'est valable pour tout le monde dans /usr/bin.

      Pour le make, il finit toujours par un "quitant le répertoire", mais regarde les lignes au-dessus si ya pas une erreur signalée. En tous cas, à la fin du make, tu peux toujours vérifier le status afin de voir si ça s'est bien passé (echo $?).

      Enfin, pour éviter d'être un boulet, essaye de répondre aux commentaires des gens auxquels tu réponds, ce qui leur permet de savoir quand ils ont une réponse :-) Là personne ne verra que t'as écrit un nouveau message.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.