प्रोटोकॉल संस्करण बेमेल (क्लाइंट 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 अपग्रेड के लिए मुझे लगता है कि लॉग आउट / इन एकमात्र फिक्स था। इसके बाद के संस्करण के उन्नयन ने मुझे सभी टर्मिनल खिड़कियों से लॉग आउट करने की आवश्यकता महसूस की।
माइकल डुरंट

8
कृपया बताएं कि अगर आप उन्हें एक्सेस नहीं कर सकते हैं तो सभी tmux-session को सही तरीके से कैसे बाहर निकालें, क्योंकि tmux बैकवर्ड संगत नहीं है! हत्या की प्रक्रिया वह नहीं है जिसे मैं बाहर निकलना कहता हूं, यह एक नरसंहार की तरह है। ;)
टीनो

1
मैंने एक सामान्य टर्मिनल से अपने मौजूदा tmux सत्र का उपयोग करके pkill 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
यह बहुत अच्छा लग रहा था! लेकिन अफसोस, मेरे डेबियन निचोड़ में -> जेसी उन्नयन (मट्ठे पर एक अस्थायी रोक के साथ), मुझे मिला: 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 deniedऔर ls -l /proc/$(pgrep tmux)/exe== /proc/2534/exe -> /usr/bin/tmux (deleted)। :-(
पीटर वी। मॉर्क

हालाँकि, ध्यान दें कि Google प्लस पोस्ट में जो संदर्भित है, tmux डेवलपर थॉमस एडम लिखते हैं कि वह ऐसा करने की सलाह नहीं देते हैं।
अब्बाफी

मुझे यह समस्या है कि फ़ाइल हैंडल / proc / 4705 / exe एक बासी फ़ाइल हैंडल है। क्या मैं अभी भी इस ट्रिक का उपयोग कर सकता हूं?
फेरीबिग

1
@ PeterV.Mørch /proc/$pid/exeफ़ाइलें नियमित सिमलिंक नहीं हैं ; आप प्रासंगिक कार्यक्रमों को लागू करने के लिए उनका उपयोग करने में सक्षम होना चाहिए, भले ही वे अनलिंक हो गए हों।
ब्लैकलाइट शाइनिंग

1
pgrep -o tmuxसबसे पुराने चल रहे tmux का सिंगल (सिंगल) पीड देता है, संभवतः आपको जिस सत्र की ज़रूरत है, उसी /proc/$(pgrep -o tmux)/exe attachतरह से बस चलाने से बेहतर काम हो सकता है pgrep tmux(जो कई पाइड वापस कर सकता है)
मैट कर्टिस

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.