업그레이드를 시도 할 때 프로토콜 버전 불일치 (클라이언트 8, 서버 6)


65

현재 1.6보다 최신 버전 (버그 수정 사항)으로 업그레이드하려고합니다. 우분투를 사용 중이며 최근 우분투 13.04로 업그레이드했습니다.

이상적으로 tmux 버전 1.8 또는 1.9를 사용하고 싶습니다. 최신 버전을 다운로드했지만 작동하지 않습니다.

1.9a를 다운로드했지만 실행하려고하면 중단됩니다.

이 다운로드를 시도했습니다 : http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/README#l26

그리고

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

그러나 나는 얻는다

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

1.8.4 버전을 다운로드하여 사용하려고했지만 다운로드에 사용할 수있는 파일이없는 것 같습니다.

답변:


31

이것은 기본적으로 당신에게 이미 (오래된) tmux서버가 실행 중이며 새로운 서버 tmux는 더 이상 서로를 이해하지 못하기 때문에 연결할 수 없다는 것을 알려줍니다 . 기존 tmux세션을 모두 종료 하고 새 버전을 사용하여 새로 시작하면 모든 것이 정상입니다.


예, 로그 아웃하는 것이 핵심이었습니다. 1.6에서 1.7로 업그레이드하는 경우 로그 아웃 / 로그인이 유일한 해결책이라고 생각합니다. 이후 버전 업그레이드는 모든 터미널 창에서 로그 아웃 해야하는 것처럼 보였습니다.
Michael Durrant

8
tmux는 이전 버전과 호환되지 않기 때문에 모든 tmux 세션을 액세스 할 수없는 경우 올바르게 종료하는 방법을 설명하십시오! 죽이는 과정은 내가 출구라고 부르는 것이 아닙니다. 이것은 학살과 비슷합니다. ;)
티노

1
일반 터미널에서 ( pkill tmux와 함께 tmux 세션을 찾은 후)을 사용하여 기존 tmux 세션을 종료했습니다 pgrep tmux. 그 후, tmux는 올바르게 시작 / 동작했습니다 ...
temuraru

220

tmux가 필요하고 모든 세션을 잃고 싶지 않은 경우 매우 멋진 해킹 :

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

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

Google Plus의 원래 게시물-https: //plus.google.com/110139418387705691470/posts/BebrBSXMkBp


2
이것은 너무 멋져 보였다! 그러나 아아, 내 데비안 스퀴즈-> jessie 업그레이드 (wheezy에서 일시적으로 중지)에서 tmux at== no sessions. /var/run/tmux/tmux-0/default존재 했으므로 tmux -S /var/run/tmux/tmux-0/default at== 시도했습니다 protocol version mismatch (client 8, server 6). 이제 /proc/$(pgrep tmux)/exe== /proc/2534/exe: Permission deniedls -l /proc/$(pgrep tmux)/exe== /proc/2534/exe -> /usr/bin/tmux (deleted)입니다. :-(
Peter V. Mørch 9

그러나 참조되는 Google Plus 게시물 에서 tmux 개발자 Thomas Adam은이 작업을 수행하지 않는 것이 좋습니다.
Abbafei

/ proc / 4705 / exe의 파일 핸들이 오래된 파일 핸들이라는 문제가 있습니다. 이 트릭을 계속 사용할 수 있습니까?
Ferrybig

1
@ PeterV.Mørch /proc/$pid/exe파일 은 일반적인 심볼릭 링크가 아닙니다 . 관련 프로그램이 연결 해제 된 경우에도이를 사용하여 관련 프로그램을 호출 할 수 있어야합니다.
Blacklight Shining

1
pgrep -o tmuxMatty는 가장 오래된 러닝 tmux의 단일 pid, 아마도 필요한 세션이있는 pid를 제공하므로 /proc/$(pgrep -o tmux)/exe attach단순히 뛰는 것보다 더 잘 작동 pgrep tmux할 수 있습니다 (여러 pid를 반환 할 수 있음)
Matt Curtis

2

이것은 아마도 당신에게 이상적이지 않지만, 나는 그것을 만들고 그 안에서 chroot달렸 tmux습니다.

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

이는 업그레이드 중에 tmux 환경이 변경되지 않도록합니다.


0

tmux이 문제가 발생하면 모든 프로세스가 작동해야합니다.

sudo killall -9 tmux
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.