現在実行中のtmuxのバージョンを確認するにはどうすればよいですか?


138

私は走ることができることを知っています tmux -Vのバージョンを確認するtmuxことが私の中にあるPATHが、バージョンのどのように私は得ることができますtmuxそれがされ、現在実行していますか


124
親愛なるGoogle社員: tmux -V
Mateen Ulhaq 2018年

回答:


88

最も明白ですが、100%正しい方法ではないこの方法は、コンソールでこのコマンドを実行することです

$ tmux -V

このような出力を受け取ります tmux 2.9a現在実行されていないtmux INSTALLEDのバージョンで。99%の場合はそれで十分ですが、微妙なニュアンスがある場合があります。

コマンドtmux -V は、/ usr / bin / tmuxまたはPATH変数内の他のディレクトリにインストールされているtmuxのバージョンを返します。tmuxがすでに実行されている場合、tmuxを他のバージョンのバイナリから、別の場所から起動できる可能性があります(たとえば、tmuxはから起動できます/home/user/bin/tmux)。この場合、あなたは電話する必要があります

$ ps  -e | grep tmux

現在実行中のすべてのtmuxプロセスのPIDを確認します。このようなものを出力します

[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0    00:00:00 tmux: client
19701 ?        00:00:00 tmux: server

ここで、番号19701は、現在実行中のtmuxサーバーのプロセスID(PID)を示しています。

tmuxサーバーのPIDを取得した後、コマンドを実行できます


$ lsof -p 19701

現在実行中のtmuxサーバープロセス(私の場合は19701)に関する情報を取得すると、次のような出力が得られます(図1)。

COMMAND     PID       USER   FD   TYPE             DEVICE  SIZE/OFF     NODE NAME
tmux:\x20 19701 vodolaz095  cwd    DIR               8,33      4096 22544385 /home/vodolaz095
tmux:\x20 19701 vodolaz095  rtd    DIR                8,1      4096        2 /
tmux:\x20 19701 vodolaz095  txt    REG                8,1    677760  3675332 /usr/bin/tmux
tmux:\x20 19701 vodolaz095  mem    REG                8,1   6406312   131327 /var/lib/sss/mc/group

ご覧のとおり、現在実行中のtmuxは、/ usr / bin / tmuxに配置されたバイナリから実行されました。

または、1つのライナーを呼び出すことができます


    lsof -p `pgrep 'tmux: server'`

図1と同じ出力を実現する

tmuxバイナリCURRENTLY RUNNING(私の場合は/usr/bin/tmux)へのパスを取得した後、フラグ-Vを使用してこのバイナリを実行し、バージョンを取得できます。


/usr/bin/tmux -V

または、tmuxが制限付きユーザーによってにインストールされた場合/home/user/bin/tmux


/home/user/bin/tmux -V

その結果、インストールされているtmuxのバージョンではなく、現在実行中のtmuxのバージョンが表示されます。


7
tmux指定されたプロセスが開始されてからアップグレードされている場合、これは機能しないことに言及する価値があります。
誰もいない

3
MacOsXでエラーが発生しましたps: option requires an argument -- u
alexserver '19 / 11/15

55
実行しtmux -V、UbuntuとOSXでテスト
マウリシオポッペ

1
この方法では、最初にtmuxを実行する必要があります。代わりにwhich tmux、パスを見つけるために使用できます
Shiva

1
@Shiva-質問作者は「現在実行されているtmuxのバージョン?」-したがって、tmuxは既に実行されています
vodolaz095

148

コメントで指摘されているようにtmux -V、バージョンを返します:

$ tmux -V
# tmux 1.8

Centos 7およびOSX 10.11.5でテスト済み。


2
これが選択された答えです。Amazon Linuxでもこれをテストしました👍–
Brady Dowling

7
これが質問に答えるとは思いません。なぜそんなに高く評価されているのかわかりません。このコマンドは、パスにあるtmuxのバージョンを返すだけです。
クォンテン

4
これは、tmuxバージョンを取得する方法の最初の結果として表示されるためです。
Derek款會功夫2017

プレイヤーを嫌い、ゲームを嫌い
sixty4bit

13

実行中のtmuxの実際のバージョンを見つけるには、tmuxのPIDを見つける必要があります。

pgrep tmux

この情報を使用すると、次のコマンドを実行してバージョンを確認できます。

lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"

リストされているtmuxファイルの隣に(削除された)がない場合は、そのファイルを-V

「(削除済み)」のファイルが表示される場合は、古いアンインストールバージョンを実行しています。Linuxを使用している場合は、次のコマンドを実行して、それが何であるかを理解できます。

/proc/$tmuxPID/exe -V`

OS Xを使用している場合は、ファイル名へのパスに含まれている情報(おそらくのようなもの)に行き詰まっていますCellar/tmux/<version number>/bin/tmux

これらのステップの多くを次のワンライナーに組み合わせることができます:

for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done

または、Linuxを使用している場合、これは常に機能します。

for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done

6

tmux サーバーのバージョンを取得するには、display-messageを使用できます。

./tmux2.3 display-message -p "#{version}"

サーバーのバージョンが表示されます(私の場合は2.7)

-pはstdoutの出力を指示するので、それを使用してスクリプトを作成でき、{version}はmanページのFORMATSセクションからの任意のものにすることができます。

以下は、tmuxサーバーの実行可能ファイルを提供します。

realpath /proc/$(tmux display-message -p "#{pid}")/exe

/procハックはLinuxのみである(そしておそらくSolarisなど;ではなく、一般的にポータブル)
tripleee

display-messageは、サーバーバージョンを取得するための完璧なソリューションです。
ベンバーナード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.