![如何为依赖于我所在机器的二进制文件创建别名](https://linux22.com/image/1518781/%E5%A6%82%E4%BD%95%E4%B8%BA%E4%BE%9D%E8%B5%96%E4%BA%8E%E6%88%91%E6%89%80%E5%9C%A8%E6%9C%BA%E5%99%A8%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA%E5%88%AB%E5%90%8D.png)
我在不同的机器上工作,有些是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 上发生,所以似乎值得额外输入。