如何为依赖于我所在机器的二进制文件创建别名

如何为依赖于我所在机器的二进制文件创建别名

我在不同的机器上工作,有些是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)

这会将这个新的特定于 arch 的 bin 路径附加到您现有的路径中。

或者,如果您想要的是机器架构以外的其他信息,请使用不同的区分符。例如,判断 CentOS 版本的一个简单方法是查看软件包的版本centos-release,使用rpm -q,因此,如下所示:

PATH=$PATH:~/bin/centos$(rpm -q --qf '%{VERSION}' centos-release)

这会让你得到以下两种结果~/bin/centos6之一~/bin/centos7— — 尽管没有错误处理,所以在 Fedora 或其他平台上你会得到一个毫无意义的错误消息就在路上if. (在运行此命令之前,也许需要用语句检查 centos-release 是否存在。)

您还可以添加--nosignatures --nodigest以将此 RPM 命令加速百分之几秒。这不是什么大问题,但由于它会在每个新的登录 shell 上发生,所以似乎值得额外输入。

相关内容