Nicht übereinstimmende Protokollversion (Client 8, Server 6) beim Versuch, ein Upgrade durchzuführen

65

Ich versuche, auf eine neuere Version zu aktualisieren (die einen Bugfix enthält) als meine aktuelle Version 1.6. Ich bin auf Ubuntu und habe kürzlich ein Upgrade auf Ubuntu 13.04 durchgeführt.

Im Idealfall möchte ich tmux Version 1.8 oder sogar 1.9 verwenden. Ich habe neuere Versionen heruntergeladen, kann sie aber nicht zum Laufen bringen.

Ich habe 1.9a heruntergeladen, aber wenn ich es versuche, hängt es nur.

Ich habe diesen Download ausprobiert: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/README#l26

und tat das

$ sh autogen.sh
$ ./configure && make

aber ich verstehe

$ ./tmux
$ protocol version mismatch (client 8, server 6)

Ich habe versucht, eine 1.8.4-Version herunterzuladen und zu verwenden, aber der Download schien keine Dateien zu enthalten, die ich verwenden konnte.

Michael Durrant
quelle

Antworten:

31

Dies sagt Ihnen im Grunde, dass Sie bereits einen (alten) tmuxServer laufen haben und der Neue tmuxkeine Verbindung dazu herstellen kann, weil er sich nicht mehr versteht. Beenden Sie alle Ihre vorhandenen tmuxSitzungen und starten Sie eine neue mit der neuen Version, und alles sollte in Ordnung sein.

Andreas Wiese
quelle
Ja, das Abmelden schien der Schlüssel zu sein. Für das Upgrade von 1.6 auf 1.7 war das Abmelden / Anmelden meiner Meinung nach die einzige Lösung. Bei späteren Versions-Upgrades musste ich mich anscheinend von allen Terminalfenstern abmelden.
Michael Durrant
8
Bitte erläutern Sie, wie Sie alle tmux-Sessions ordnungsgemäß beenden, wenn Sie nicht darauf zugreifen können, da tmux nicht abwärtskompatibel ist! Prozesse zu töten ist nicht das, was ich als aufregend bezeichne, es ist eher ein Massaker. ;)
Tino
1
Ich habe meine bestehende tmux-Sitzung über ein normales Terminal beendet pkill tmux(nachdem ich eine tmux-Sitzung mit gesucht habe pgrep tmux). Danach startete / benahm sich tmux korrekt ...
temuraru
220

Ziemlich cooler Hack, wenn du deinen tmux brauchst und nicht alle deine Sessions verlieren willst:

$ tmux attach
protocol version mismatch (client 7, server 6)

$ pgrep tmux
3429
$ /proc/3429/exe attach

Originalbeitrag auf Google Plus - https://plus.google.com/110139418387705691470/posts/BebrBSXMkBp

kanap008
quelle
2
Das sah so cool aus! Aber leider bekam ich in meinem Debian-Squeeze -> Jessie-Upgrade (mit einem vorübergehenden Stopp bei Keuchen): tmux at== no sessions. /var/run/tmux/tmux-0/defaultexistierte, also habe ich versucht: tmux -S /var/run/tmux/tmux-0/default at== protocol version mismatch (client 8, server 6). Nun /proc/$(pgrep tmux)/exe== /proc/2534/exe: Permission deniedund ls -l /proc/$(pgrep tmux)/exe== /proc/2534/exe -> /usr/bin/tmux (deleted). :-(
Peter V. Mørch
Beachten Sie jedoch, dass der TMUX-Entwickler Thomas Adam in dem Google Plus-Beitrag, auf den verwiesen wird, schreibt, dass er dies nicht empfiehlt.
Abbafei,
Ich habe das Problem, dass das Dateihandle unter / proc / 4705 / exe ein veraltetes Dateihandle ist. Kann ich diesen Trick trotzdem anwenden?
Ferrybig
1
@ PeterV.Mørch Die /proc/$pid/exeDateien sind keine regulären Symlinks ; Sie sollten in der Lage sein, damit die entsprechenden Programme aufzurufen, auch wenn sie nicht verbunden sind.
Blacklight Shining
1
pgrep -o tmuxGibt die (einzelne) PID des ältesten laufenden tmux an, vermutlich diejenige mit der Sitzung, die Sie benötigen, und /proc/$(pgrep -o tmux)/exe attachfunktioniert daher möglicherweise besser als nur das Ausführen pgrep tmux(was mehrere PIDs zurückgeben kann)
Matt Curtis
2

Das ist vielleicht nicht ideal für dich, aber ich habe ein erstellt chrootund bin tmuxvon innen heraus gelaufen :

sudo -i
debootstrap stable /chroot
mount -o bind /dev /chroot/dev
mount -o bind /dev/pts /chroot/dev/pts
mount -o bind /sys /chroot/sys
mount -o bind /proc /chroot/proc
chroot /chroot
apt-get install tmux ssh
tmux
ssh user@localhost
apt-get bla bla bla

Dadurch wird sichergestellt, dass sich die tmux-Umgebung während des Upgrades nicht ändert

Peter V. Mørch
quelle
0

kill all tmuxprocess sollte funktionieren, da ich auch auf dieses Problem gestoßen bin.

sudo killall -9 tmux
dli
quelle