Forum général.cherche-logiciel Rendre autonome un logiciel

Posté par  . Licence CC By‑SA.
Étiquettes :
0
12
mai
2013

Bonjour à tous,

il vient de m'arriver une tuile : j'ai sur les bras un serveur installé en 2006 équipé d'une Fedora Core release 4 (Stentz).
Cette machine n'a jamais été mise à jour, et il est hors de question de toucher quoi que ce soit vu que ça fait tourner "un truc qui marche très bien". Bref, pas touche au système, et puis je ne me sens pas d'upgrader un vieux truc comme ça car j'imagine que les dépôts ne sont plus disponibles.

Un gros inconvénient est que pas mal d'utilitaires sont manquants ou pas à jour. Par exemple il manque "base64" et il manque à Bash tout un tas de chose qui sont désormais triviales.
Je suis obligé de bricoler mes scripts dans tous les sens, ça sent pas bon.

Si je récupère un binaire base64 ou bash depuis une autre machine, il y a des dépendances manquantes forcément.

Quelles sont les solutions disponibles ?

Un chroot avec toute l'artillerie : je recopie tout depuis une autre machine ?
Une solution qui "empacte" un programme, comme BusyBox ?
Autre ?

  • # Astuce

    Posté par  . Évalué à 3.

    Un chroot avec toute l'artillerie : je recopie tout depuis une autre machine ?

    Je n'ai jamais testé pour un chroot, mais un simple ldd donne de très bons résultats.

    ldd /chemin/mon_executable
    
    

    Et ensuite ldd sur les bibliothèques que tu as recopié.
    Au final ça fait pas mal de fichiers je suppose.
    Sinon tu demandes au gestionnaire de paquets de la machine source. Le résultat est censé être meilleur.

    Je pense cependant que le mieux est de faire un chroot, de mettre dedans le nécessaire pour faire une mise à jour complète et cela te permet de garder l'ancien système non bricolé.
    Je n'ai jamais fait, et je ne saurais te guider.

  • # DVD

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

    Si cette machine n'a vraiment jamais été mise à jour, tu récupères une image du DVD (trouvable sur des sites d'archéologie je pense) et tu installes tes paquets en configurant yum pour qu'il utilise le DVD comme source.

    • [^] # Re: DVD

      Posté par  . Évalué à 3.

      Je ne vois pas comment ça va aider à :
      1 - pas touche au système
      2 - avoir une version récente de Bash et autres utilitaires

      • [^] # Re: DVD

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

        Je n'avais pas vu que tu voulais une version plus récente de bash. Ça permet d'installer certains composants manquants sans toucher au reste du système car les versions en dépendance de ces composants sont cohérentes avec celles installées sur le système, mais j'ai mal compris ton besoin.

  • # LD_LIBRARY_PATH

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

    Tu peux:
    - installer les différents binaires dont tu as besoin dans une arborecence à part (par exemple /opt/new/bin/, /opt/new/lib/)
    - avec "ldd" (voir un commentaire plus haut), retrouver les différentes librairies dont tu as besoin, et les mettre dans /opt/new/lib/
    - et enfin, lancer tes programmes en définissant auparavant la variable d'environnement LD_LIBRARY_PATH=/opt/new/lib/

    Cela aura pour effet que ton programme (par exemple /opt/new/bin/bash) ira chercher en priorité ses librairies dans /opt/new/lib/ plutôt que dans /lib/ .

    Attention aux effets collatéraux:
    - tous les programmes que tu lanceras en-dessous du "LD_LIBRARY_PATH=/opt/new/lib/" bénéficierons de cette priorité. Or, les "vieux" programmes risquent de ne pas trop apprécier
    - une solution (par exemple pour utiliser base64) serait ceci:

    $ cat ton_script.sh

    !/bin/sh


    LD_LIBRARY_PATH=/opt/new/lib/ ; base64 quelquechose

    Ainsi, le LD_LIBRARY_PATH est limité au programme base64

  • # P2V + bricolage sur VM

    Posté par  . Évalué à 2.

    C'est bourrin mais au moins tu ne perds rien et tu évites le bricolage sur la machine de départ.
    Et là tu peux bricoler à gogo sur ta VM avec sauvegarde d'état à chaque étapes.
    Une fois ta solution calée, tu peux passer ta VM en prod ou répercuter tes bricolages sur ton vieux serveur
    PS : Je suis un VMWare Addict mais je pense que des solutions libres peuvent faire cela aussi

    • [^] # Re: P2V + bricolage sur VM

      Posté par  . Évalué à 2.

      j'allais dire un truc similaire.

      ca impose d'arreter le serveur, mais un clonezilla des disques vers un support de stockage,
      puis un clonezilla du support de stockage vers une VM.

      tu peux meme reinstaller ton serveur physique pour en faire un serveur de VM, et remettre l'image de clonezilla dans une VM.

      c'est transparent pour tes utilisateurs si tu coupes le serveur quand ils ne sont pas là
      (ah, les joies du travail tard le soir, la nuit, ou les week end)

  • # Compil'

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

    Tu compiles toi-même les logiciels dont tu as besoin, sur un système identique au système cible, ensuite tu les installes dans un chemin distinct pour ne pas avoir de collision avec ton système.
    Tu peux avoir besoin d'embarquer des librairies plus à jour, et donc là en effet tu as besoin de modifier ton chemin de chargement des librairies partagées comme expliqué par d'autres commentaires.

Suivre le flux des commentaires

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