Respuestas:
La forma más obvia, pero no 100% correcta, es ejecutar este comando en la consola
$ tmux -V
y reciba una salida como esta tmux 2.9a
con la versión de tmux INSTALADA, que actualmente no se está ejecutando. En el 99% de los casos es suficiente, pero puede haber sutiles matices.
El comando tmux -V
devolverá la versión de tmux instalada en / usr / bin / tmux o cualquier otro directorio dentro de su variable PATH. Si ya tiene tmux ejecutándose, es posible que tmux pueda iniciarse desde un binario de otra versión y desde un lugar diferente (por ejemplo, tmux puede iniciarse desde /home/user/bin/tmux
). En este caso, tienes que llamar
$ ps -e | grep tmux
para ver el PID de todos los procesos tmux actualmente en ejecución. Producirá algo como esto
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0 00:00:00 tmux: client
19701 ? 00:00:00 tmux: server
Aquí, el número 19701 representa la identificación del proceso (PID) del servidor tmux actualmente en ejecución.
Después de obtener el PID del servidor tmux, puede ejecutar el comando
$ lsof -p 19701
para obtener información sobre el proceso actual del servidor tmux (en mi caso es 19701) que generará algo como esto (Figura 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
Como puede ver, tmux actualmente en ejecución se ejecutó desde un binario ubicado en / usr / bin / tmux.
O puedes llamar a un trazador de líneas
lsof -p `pgrep 'tmux: server'`
para lograr el mismo resultado que la Figura 1
Después de obtener la ruta al binario tmux EN EJECUCIÓN ACTUAL (en mi caso, lo fue /usr/bin/tmux
), puede ejecutar este binario con la bandera -V para obtener su versión
/usr/bin/tmux -V
o, si tmux fue instalado por un usuario limitado en /home/user/bin/tmux
,
/home/user/bin/tmux -V
Y, como resultado, obtendrá la versión de tmux actualmente en ejecución, no la que estaba instalada.
tmux
se ha actualizado desde que se inició el proceso dado.
ps: option requires an argument -- u
tmux -V
, probado en Ubuntu y OSX
which tmux
para encontrar el camino
Como se señaló en un comentario, tmux -V
devuelve la versión:
$ tmux -V
# tmux 1.8
Probado en Centos 7 y OSX 10.11.5.
Para encontrar la versión real de tmux que se está ejecutando, debe encontrar el PID de tmux:
pgrep tmux
Con esta información, puede verificar la versión ejecutando:
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
Si no hay un (eliminado) al lado del archivo tmux en la lista, puede ejecutar ese archivo con un -V
.
Si da como resultado archivos que están "(eliminados)", está ejecutando una versión antigua y desinstalada. Si está en Linux, puede averiguar qué es ejecutando:
/proc/$tmuxPID/exe -V`
Si está en OS X, está atascado con cualquier información que esté en la ruta al nombre del archivo, posiblemente algo así Cellar/tmux/<version number>/bin/tmux
.
Puede combinar muchos de estos pasos en la siguiente línea:
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
O si estás en Linux, esto siempre funciona:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Para obtener la versión del servidor tmux , puede usar display-message.
./tmux2.3 display-message -p "#{version}"
Mostrará la versión del servidor (2.7 en mi caso)
-p dirigirá la salida de stdout para que pueda escribir con él y {version} puede ser cualquier cosa desde la sección FORMATS en la página man.
Lo siguiente le dará el ejecutable de su servidor tmux.
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
truco es solo Linux (y posiblemente Solaris, etc.; pero no generalmente portátil)
tmux -V