phiên bản giao thức không khớp (máy khách 8, máy chủ 6) khi cố gắng nâng cấp


65

Tôi đang cố nâng cấp lên phiên bản mới hơn (có sửa lỗi) so với phiên bản 1.6 hiện tại của tôi. Tôi đang dùng Ubuntu và gần đây đã nâng cấp lên Ubuntu 13.04.

Lý tưởng nhất là tôi muốn sử dụng tmux phiên bản 1.8 hoặc thậm chí 1.9. Tôi đã tải xuống các phiên bản mới hơn nhưng không thể làm cho chúng hoạt động.

Tôi đã tải xuống 1.9a nhưng khi tôi thử và chạy nó, nó chỉ bị treo.

Tôi đã thử tải xuống này: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/README#l26

và đã làm

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

nhưng tôi hiểu

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

Tôi đã cố tải xuống và sử dụng phiên bản 1.8.4 nhưng bản tải xuống dường như không có tệp tôi có thể sử dụng.

Câu trả lời:


31

Điều này về cơ bản cho bạn biết rằng bạn đã có một tmuxmáy chủ (cũ) đang chạy và máy chủ mới tmuxkhông thể kết nối với nó vì họ không hiểu nhau nữa. Thoát tất cả các tmuxphiên hiện có của bạn và bắt đầu một phiên mới bằng cách sử dụng phiên bản mới và mọi thứ sẽ ổn.


Yeah đăng xuất dường như quan trọng. Đối với bản nâng cấp 1.6 lên 1.7 tôi cảm thấy rằng đăng xuất / đăng nhập là cách khắc phục duy nhất. Nâng cấp phiên bản tiếp theo dường như chỉ yêu cầu tôi đăng xuất khỏi tất cả các cửa sổ đầu cuối.
Michael Durrant

8
Vui lòng giải thích cách thoát tất cả các phiên tmux đúng cách nếu bạn không thể truy cập chúng, vì tmux không tương thích ngược! Giết quá trình không phải là những gì tôi gọi là thoát, đây giống như một vụ thảm sát. ;)
Tino

1
Tôi đã giết phiên tmux hiện tại của mình bằng cách sử dụng pkill tmux(sau khi tìm kiếm phiên tmux với pgrep tmux) từ một thiết bị đầu cuối bình thường. Sau đó, tmux đã khởi chạy / hành xử chính xác ...
temuraru

220

Hack khá tuyệt vời, nếu bạn cần tmux của bạn hoạt động và không muốn mất tất cả các phiên của bạn:

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

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

bài đăng gốc trên Google Plus - https://plus.google.com/110139418387705691470/posts/BebrBSXMkBp


2
Trông thật tuyệt! Nhưng than ôi, trong sự siết chặt của tôi -> nâng cấp jessie (với một điểm dừng tạm thời về sự khò khè), tôi đã nhận được: tmux at== no sessions. /var/run/tmux/tmux-0/defaulttồn tại, vì vậy tôi đã thử: tmux -S /var/run/tmux/tmux-0/default at== protocol version mismatch (client 8, server 6). Bây giờ /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

Tuy nhiên, lưu ý rằng trong bài đăng trên Google Plus được tham chiếu, nhà phát triển tmux Thomas Adam viết rằng ông không khuyên bạn nên làm điều này.
Abbafei

Tôi nhận được vấn đề rằng tập tin xử lý tại / Proc / 4705 / exe là một tập tin xử lý cũ. Tôi vẫn có thể sử dụng thủ thuật này chứ?
Ferrybig

1
@ PeterV.Mørch Các /proc/$pid/exetập tin không phải là liên kết tượng trưng thông thường ; bạn sẽ có thể sử dụng chúng để gọi các chương trình có liên quan ngay cả khi chúng chưa được liên kết.
Blacklight Shining

1
pgrep -o tmuxcung cấp cho pid (đơn) của tmux đang hoạt động lâu đời nhất, có lẽ là phiên có phiên bạn cần, vì vậy /proc/$(pgrep -o tmux)/exe attachcó thể hoạt động tốt hơn so với chỉ chạy pgrep tmux(có thể trả lại nhiều pids)
Matt Curtis

2

Điều này có lẽ không lý tưởng cho bạn, nhưng tôi đã tạo ra chrootvà chạy tmuxtừ bên trong nó:

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

Điều này đảm bảo rằng môi trường tmux không thay đổi trong quá trình nâng cấp


0

Giết tất cả tmuxquá trình nên hoạt động vì tôi cũng gặp phải vấn đề này.

sudo killall -9 tmux
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.