如何在 Linux 中切換相同程序的不同版本
來自專欄 Linux10 人贊了文章
幾天前,我們曾經討論如何在不同的 PHP 版本之間進行切換。在那篇文章中,我們使用 update-alternatives
命令實現從一個 PHP 版本切換到另一個 PHP 版本。也就是說,update-alternatives
命令可以將 系統範圍(system wide)默認使用的 PHP 版本設置為我們希望的版本。通俗的來說,你可以通過 update-alternatives
命令從系統範圍設置程序的版本。如果你希望可以在不同目錄動態設置不同的程序版本,該如何完成呢?在這種情況下,alt
工具可以大顯身手。alt
是一個命令行工具,可以讓你在類 Unix 系統中切換相同程序的不同版本。該工具簡單易用,是 Rust 語言編寫的自由、開源軟體。
安裝
安裝 alt
工具十分簡單。
運行如下命令,即可在 Linux 主機上安裝 alt
:
$ curl -sL https://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: https://www.ostechnix.com/how-to-switch-between-different-versions-of-commands-in-linux/
作者:SK 選題:lujun9972 譯者:pinewall 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
推薦閱讀:
※Learn Shell 第一課
※Tomcat 安全管理之禁用root用戶運行
※Linux/UNIX For DOS Users
※基於命令行的任務管理器 Taskwarrior
※Linux下的靜態庫、動態庫和動態載入庫