It has become fashionable to run distribution upgrade in a tmux
terminal to avoid remote connection issues or issues with the X server (e.g. opensuse documentation).
Yet this does not take into account the risk of having a version mismatch between the already upgraded tmux
client and the server that manages the terminal where the distribution upgrade is running.
To materialize the risk one has to leave the tmux console for the normal terminal during the upgrade. If tmux client is upgraded in the meantime one would not be able to reattach to the tmux session. Instead running tmux attach
or tmux ls
one would get
# tmux ls
protocol version mismatch (client 7, server 6)
I ran into this client 7, server 6 version mismatch when upgrading from OpenSUSE 12.2 to 12.3. A quick solution I could come up with was to download the tmux
rpm from the old distribution repository and unpack it with cpio
since the machine had a network connection in the process of the upgrade.
wget http://download.opensuse.org/distribution/12.2/repo/oss/suse/i586/tmux-1.6-2.1.2.i586.rpm
rpm2cpio ../tmux-1.6-2.1.2.i586.rpm > tmux-1.6.cpio
cpio -i -d < tmux-1.6.cpio
./usr/bin/tmux
Should one put a warning on the possible version mismatch when running distro upgrade in a tmux session? Is there an easy way to make tmux client run in a mode compatible with older servers?