versi protokol tidak cocok (klien 8, server 6) ketika mencoba untuk memutakhirkan

65

Saya mencoba memutakhirkan ke versi yang lebih baru (yang memiliki perbaikan bug) daripada versi 1.6 saya saat ini. Saya di Ubuntu dan baru-baru ini ditingkatkan ke Ubuntu 13.04.

Idealnya saya ingin menggunakan tmux versi 1.8 atau bahkan 1.9. Saya telah mengunduh versi yang lebih baru tetapi tidak dapat membuatnya berfungsi.

Saya mengunduh 1.9a tetapi ketika saya mencoba dan menjalankannya, itu hanya hang.

Saya mencoba unduhan ini: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/README#l26

dan melakukan

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

tapi saya mengerti

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

Saya mencoba mengunduh dan menggunakan versi 1.8.4 tetapi unduhan tersebut tampaknya tidak memiliki file yang dapat saya gunakan.

Michael Durrant
sumber

Jawaban:

31

Ini pada dasarnya memberitahu Anda, bahwa Anda sudah memiliki tmuxserver (lama) berjalan dan yang baru tmuxtidak dapat terhubung karena mereka tidak saling mengerti lagi. Keluar dari semua tmuxsesi yang ada dan mulai yang baru menggunakan versi baru dan semuanya akan baik-baik saja.

Andreas Wiese
sumber
Ya logout sepertinya kuncinya. Untuk peningkatan 1,6 ke 1,7 saya merasa bahwa logout / in adalah satu-satunya perbaikan. Pembaruan versi selanjutnya sepertinya mengharuskan saya untuk keluar dari semua jendela terminal.
Michael Durrant
8
Tolong jelaskan bagaimana cara keluar semua sesi tmux dengan benar jika Anda tidak dapat mengaksesnya, karena tmux tidak kompatibel ke belakang! Proses pembunuhan bukanlah apa yang saya sebut keluar, ini lebih seperti pembantaian. ;)
Tino
1
Saya membunuh sesi tmux saya yang ada dengan menggunakan pkill tmux(setelah mencari sesi tmux dengan pgrep tmux) dari terminal normal. Setelah itu, tmux diluncurkan / berperilaku dengan benar ...
temuraru
220

Retas yang cukup luar biasa, jika Anda perlu tmux Anda bekerja dan tidak ingin kehilangan semua sesi Anda:

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

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

pos asli di Google Plus - https://plus.google.com/110139418387705691470/posts/BebrBSXMkBp

kanap008
sumber
2
Ini terlihat sangat keren! Tapi sayangnya, dalam debian squeeze saya -> peningkatan jessie (dengan berhenti sementara pada mengi), saya mendapat: tmux at== no sessions. /var/run/tmux/tmux-0/defaultada, jadi saya mencoba: tmux -S /var/run/tmux/tmux-0/default at== protocol version mismatch (client 8, server 6). Sekarang /proc/$(pgrep tmux)/exe== /proc/2534/exe: Permission denieddan ls -l /proc/$(pgrep tmux)/exe== /proc/2534/exe -> /usr/bin/tmux (deleted). :-(
Peter V. Mørch
Namun, perlu diketahui bahwa di pos Google Plus yang direferensikan, pengembang tmux Thomas Adam menulis bahwa ia tidak merekomendasikan melakukan hal ini.
Abbafei
Saya mendapatkan masalah bahwa file handle di / proc / 4705 / exe adalah file handle yang sudah basi. Masih bisakah saya menggunakan trik ini?
Ferrybig
1
@ PeterV.Mørch /proc/$pid/exeFile - file ini bukan symlink biasa ; Anda harus dapat menggunakannya untuk menjalankan program yang relevan bahkan jika mereka telah diputuskan tautannya.
Blacklight Shining
1
pgrep -o tmuxmemberikan (tunggal) pid dari tmux berjalan tertua, mungkin yang dengan sesi yang Anda butuhkan, jadi /proc/$(pgrep -o tmux)/exe attachmungkin bekerja lebih baik daripada hanya menjalankan pgrep tmux(yang dapat mengembalikan beberapa pids)
Matt Curtis
2

Ini mungkin tidak ideal untuk Anda, tetapi saya membuat chroot, dan berlari tmuxdari dalamnya:

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

Ini memastikan bahwa lingkungan tmux tidak berubah selama peningkatan

Peter V. Mørch
sumber
0

membunuh semua tmuxproses harus bekerja karena saya juga mengalami masalah ini.

sudo killall -9 tmux
dli
sumber