
Я работаю на разных машинах, некоторые как centos7
, некоторые как centos6
, я собираю двоичный файл tmux
с разной версией для каждого «типа», так как одна и та же версия не может запускать обе.
Как мне настроить .bashrc
переключение между версиями tmux
в зависимости от того, на каком устройстве я работаю?
решение1
Команда uname -m
скажет вам, на какой архитектуре вы работаете. Например, на моей системе прямо сейчас:
$ uname -m
x86_64
Я мог бы предложить поместить двоичные файлы archful в ~/bin/i686
и ~/bin/x86_64
. (Или, если это 32-битный Power или что-то еще, то что бы ни uname -m
возвращалось.) Затем, в ~/.bash_profile
(который являетсяподходящее место для этого, есть такая строка:
PATH=$PATH:~/bin/$(uname -m)
который добавит этот новый специфичный для архитектуры путь к бину к вашему существующему пути.
Или, если вам нужно что-то иное, чем архитектура машины, используйте другой отличительный признак. Например, простой способ узнать версии CentOS — это посмотреть на версию пакета centos-release
, с помощью rpm -q
, так, вот так:
PATH=$PATH:~/bin/centos$(rpm -q --qf '%{VERSION}' centos-release)
что даст вам либо, ~/bin/centos6
либо ~/bin/centos7
— хотя обработки ошибок нет, поэтому в Fedora или чем-то подобном вы получите бессмысленное сообщение об ошибкепрямо на пути. (Возможно, стоит проверить, существует ли centos-release, с помощью оператора, if
прежде чем запускать это.)
Вы также можете добавить, --nosignatures --nodigest
чтобы ускорить эту команду RPM на несколько сотых секунды. Не так уж и важно, но поскольку это будет происходить при каждом новом входе в систему, кажется, стоит набрать больше.