如何在 Linux 中切换相同程序的不同版本 | Linux 中国

更新日期:2018-08-24
Linux中国

alt 是一个命令行工具,可以让你在类 Unix 系统中切换相同程序的不同版本。-- Sk
有用的原文链接请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。致谢编译自 | 
http://www.ostechnix.com/how-to-switch-between-different-versions-of-commands-in-linux/

 作者 | Sk
 译者 | Andy Song (pinewall) 共计翻译:31 篇 贡献时间:149 天

几天前,我们曾经讨论如何如何在不同的 PHP 版本之间进行切换[1]。在那篇文章中,我们使用 update-alternatives 命令实现从一个 PHP 版本切换到另一个 PHP 版本。也就是说,update-alternatives 命令可以将系统范围system wide默认使用的 PHP 版本设置为我们希望的版本。通俗的来说,你可以通过 update-alternatives 命令从系统范围设置程序的版本。如果你希望可以在不同目录动态设置不同的程序版本,该如何完成呢?在这种情况下,alt工具可以大显身手。alt 是一个命令行工具,可以让你在类 Unix 系统中切换相同程序的不同版本。该工具简单易用,是 Rust 语言编写的自由、开源软件。

安装

安装 alt 工具十分简单。

运行如下命令,即可在 Linux 主机上安装 alt:

$ curl -sL http://github.com/dotboris/alt/raw/master/install.sh | bash -s

下一步,将 shims 目录添加到你的 PATH 环境变量中,具体操作取决于你使用的 Shell。

对于 Bash:

$ echo "export PATH="$HOME/.local/alt/shims:$PATH"" >> ~/.bashrc$ source ~/.bashrc

对于 Zsh:

$ echo "export PATH="$HOME/.local/alt/shims:$PATH"" >> ~/.zshrc$ source ~/.zshrc

对于 Fish:

$ echo "set -x PATH "$HOME/.local/alt/shims" $PATH" >> ~/.config/fish/config.fish

现在 alt 已经安装完毕!

使用 alt 工具在 Linux 系统中切换相同程序的不同版本

如我之前所述,alt 只影响当前目录。换句话说,当你进行版本切换时,只在当前目录生效,而不是整个系统范围。

下面举例说明。我在我的 Ubuntu 系统中安装了两个版本的 PHP,分别为 PHP 5.6 和 PHP 7.2;另外,在 myproject 目录中包含一些 PHP 应用。

首先,通过命令查看系统范围默认的 PHP 版本:

$ php -v

示例输出:

查找 PHP 版本

如截图中所示,我系统中默认的 PHP 版本为 PHP 7.2。

然后,我将进入放置 PHP 应用的 myproject 目录。

$ cd myproject

使用如下命令扫描可用的 PHP 版本:

$ alt scan php

示例输出:

扫描 PHP 版本

可见,我有两个 PHP 版本,即 PHP 5.6 和 PHP 7.2。按下 <空格> 键选中当前可用的版本。选中全部可用版本后,你可以看到图中所示的叉号cross mark。使用上下方向键在版本间移动,点击回车即可保存变更。

选取 PHP 版本

下面运行该命令并选取我们希望在 myproject 目录中使用的 PHP 版本:

$ alt use php

我希望使用 PHP5.6 版本,故我(使用方向键)选取该版本并点击回车键。

设置 PHP 版本

现在,你可以在 /home/sk/myproject 目录下使用 PHP 5.6 版本啦。

让我们检查一下,在 myproject 目录下是否默认使用 PHP 5.6 版本:

$ php -v

示例输出:

检查 PHP 版本

只要你不设置成其它版本,(在该目录下)将一直使用 PHP 5.6 版本。清楚了吗?很好!请注意,我们仅在这个目录下使用 PHP 5.6 版本。在系统范围内(LCTT 译注:当然是没单独设置过其它版本的目录下),PHP 7.2 仍是默认的版本。让我们检验一下,请看下图。

比对 PHP 版本

从上面的截图中可以看出,我有两个版本的 PHP:在 myproject 目录下,使用的版本为 PHP 5.6;在 myproject 外的其它目录,使用的版本为 PHP 7.2。

同理,你可以为每个目录设置你希望的程序版本。我这里使用 PHP 仅用于说明操作,但方法适用于任何你打算使用的软件,例如 NodeJS 等。

下面是 NodeJS 的示例视频。

如果你希望在不同软件包版本下测试你的应用,那么 alt 是你不错的选择。

本次分享到此结束。后续还有更多内容,敬请期待!

干杯!

via: http://www.ostechnix.com/how-to-switch-between-different-versions-of-commands-in-linux/

作者:SK[3] 选题:lujun9972 译者:pinewall 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


今日推荐
----------------------------------------
友情链接:痞棋士 栾吉儿 求和赠礼 larzime 四风烧酒 伊莲梵喜 刘佰钰 尹厚anti事件 相妻先吃掉 圣人湾 新抢钱夫妻快播 史桂莲 怎缺网 zhangyiuyu 哈金杰 昏君养成计划txt 娄善喜 郑九成 张瑞丁 可爱的洪水猛兽txt 杨宪萍 闫德英 wow天神悟道圣坛 就差钱带字幕的 梁苏记 小旺奇 极品邪龙txt 七星彩 徐洪福 郑智坚 赛尔号加鲁德 吴雅凛 依本多情 礼物 邪能腺体 丝黛秀 劢衄鬯龠 金钗劫 圈宠邪妻 知艾家园 心悦卡盟 水壶姐 罗七生活网 米露恩的召唤有什么用 基男心计 虐爱小神父 熊天平近况 jastbell 生化医生在都市 梁佩玲近况