アップグレードしようとしたときのプロトコルバージョンの不一致(クライアント8、サーバー6)


65

現在の1.6よりも新しいバージョン(バグ修正済み)にアップグレードしようとしています。私はUbuntuを使用していますが、最近Ubuntu 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には下位互換性がないため、アクセスできない場合は、すべての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
これはとてもクールに見えました!しかし、残念ながら、私のdebian squeeze-> jessie upgrade(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)。:-(
ピーターV.モルヒ

ただし、参照されているGoogle Plusの投稿では、tmux開発者のThomas Adamがこれを行うことはお勧めしていません。
アッバフェイ

/ proc / 4705 / exeのファイルハンドルが古いファイルハンドルであるという問題が発生します。このトリックを引き続き使用できますか?
フェリービッグ

1
@PeterV.Mørch /proc/$pid/exeファイルは通常のシンボリックリンクではありません。リンクされていない場合でも、それらを使用して関連プログラムを呼び出すことができるはずです。
ブラックライトシャイニング

1
pgrep -o tmux最古のランニングtmuxは、あなたが必要とするセッションと、おそらく1の(単一)のPIDを与えるので、/proc/$(pgrep -o tmux)/exe attach単に実行するよりも良い仕事かもしれませんpgrep tmux(複数のPIDを返すことができます)
マット・カーティス

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.