Hoooo j'ai fait une ptite manip assez chouette avec mon nunux !
J'ai voulu faire une update de weechat. Je le fais tourner dans tmux. Mais ce weechat il ne sert que pour le relay, du coup jamais je vais dans ce tmux habituellement.
Mais là pour faire une upgrade propre j'ai voulu m'y rendre.
Pas de bol, tmux a été mis à jour et le client n'a pas voulu se connecter au serveur. (server too old).
0 Boosts
0 Likes
Ça se fait en deux étapes. Dans /proc/$PID/map , on retrouve toutes les libs utilisées (entre autre). Si le fichier a été dégagé, il y a un explicite "deleted".
Ensuite il faut chopper l'horrible référence à la lib de la forme "7fe680c94000-7fe680ca9000" .
Et pour retrouver le fichier il faut aller le choper dans /proc/$PID/map_files .
Là on peut le cp ailleurs et lui remettre son joli nom.
On fait ça pour chacune des libs.
Il ne reste plus qu'à LD_LIBRARY_PATH=/le/dossier/ou/vous/avez/tout/mis /proc/$PID/exe attach
et hop vous voilà dans votre session tmux d'antan !
@lord Haha le genre de truc qui donne envie d'avoir des binaires statiques.
@breizh @lord Et d'ailleurs coté maj, même en faisant les choses bien propre (jamais lol), lancer le gestionnaire de paquet dans un tmux c'est vachement utile pour pouvoir si ré-attacher si la connexion coupe, sauf que du coup si tmux casse son protocole d'une version à l'autre sans rétro-compat' c'est un peu con.
@lord "/proc/$(pgrep tmux | head -1)/exe"
Bon, j'aurai pu aller fouiller dans les dépots toussa pour bidouiller.
Mais j'ai tenté une autre approche.
Tenter de se raccrocher à la session directement par le process.
Je chope le pid du serveur avec pgrep. Puis un ptit coup de /proc/$PID/exe attach .
Avec un peu de bol ça pourrait passer.
Mais non ça ne veut pas car les libs ne sont plus à la même version.
Bon, quitte à ne pas aller dans les dépots choper les libs, comment faire ?
Sur le disque je n'ai que les nouvelles libs trop récentes, mais le serveur tmux qui tourne en fond a encore les anciennes libs !
Du coup on peut tenter de retrouver ces libs.