no coinciden las versiones del protocolo (cliente 8, servidor 6) al intentar actualizar


65

Estoy tratando de actualizar a una versión más nueva (que tiene una corrección de errores) que mi 1.6 actual. Estoy en Ubuntu y recientemente me actualicé a Ubuntu 13.04.

Idealmente, quiero usar tmux versión 1.8 o incluso 1.9. He descargado versiones más nuevas pero no puedo hacer que funcionen.

Descargué 1.9a pero cuando intento ejecutarlo, simplemente se cuelga.

Intenté esta descarga: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/README#l26

e hizo el

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

pero consigo

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

Traté de descargar y usar una versión 1.8.4, pero la descarga no parecía tener archivos que pudiera usar.

Respuestas:


31

Básicamente, esto le dice que ya tiene un tmuxservidor (antiguo) en ejecución y que el nuevo tmuxno puede conectarse porque ya no se entienden entre sí. Salga de todas sus tmuxsesiones existentes y comience una nueva con la nueva versión y todo debería estar bien.


Sí, cerrar sesión parecía clave. Para la actualización 1.6 a 1.7, siento que cerrar sesión / iniciar sesión fue la única solución. Las actualizaciones de versiones posteriores solo parecían requerir que me desconectara de todas las ventanas de terminal.
Michael Durrant

8
Explique cómo salir de todas las sesiones de tmux correctamente si no puede acceder a ellas, ¡porque tmux no es compatible con versiones anteriores! Los procesos de asesinato no son lo que yo llamo salir, esto es más como una masacre. ;)
Tino

1
Maté mi sesión tmux existente usando pkill tmux(después de buscar una sesión tmux con pgrep tmux) desde un terminal normal. Después, tmux se lanzó / se comportó correctamente ...
temuraru

220

Hack bastante impresionante, si necesitas que tu tmux funcione y no quieres perder todas tus sesiones:

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

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

publicación original en Google Plus: https://plus.google.com/110139418387705691470/posts/BebrBSXMkBp


2
¡Esto se veía genial! Pero, por desgracia, en mi compresión de Debian -> actualización de Jessie (con una parada temporal en wheezy), obtuve: tmux at== no sessions. /var/run/tmux/tmux-0/defaultexistió, así que intenté: tmux -S /var/run/tmux/tmux-0/default at== protocol version mismatch (client 8, server 6). Ahora /proc/$(pgrep tmux)/exe== /proc/2534/exe: Permission deniedy ls -l /proc/$(pgrep tmux)/exe== /proc/2534/exe -> /usr/bin/tmux (deleted). :-(
Peter V. Mørch

Sin embargo, tenga en cuenta que en la publicación de Google Plus a la que se hace referencia, el desarrollador de tmux Thomas Adam escribe que no recomienda hacerlo.
Abbafei

Tengo el problema de que el identificador de archivo en / proc / 4705 / exe es un identificador de archivo obsoleto. ¿Puedo seguir usando este truco?
Ferrybig

1
@ PeterV.Mørch Los /proc/$pid/exearchivos no son enlaces simbólicos regulares ; debería poder usarlos para invocar los programas relevantes incluso si se han desvinculado.
Blacklight Shining

1
pgrep -o tmuxda el (único) pid del tmux en ejecución más antiguo, presumiblemente el que tiene la sesión que necesita, por lo que /proc/$(pgrep -o tmux)/exe attachpodría funcionar mejor que solo en ejecución pgrep tmux(que puede devolver múltiples pids)
Matt Curtis

2

Tal vez esto no sea ideal para ti, pero creé un chroot, y corrí tmuxdesde adentro:

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

Esto asegura que el entorno tmux no cambie durante la actualización


0

matar todo el tmuxproceso debería funcionar ya que también me encontré con este problema.

sudo killall -9 tmux
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.