如何在Linux中切換相同程序的不同版本
幾天前,我們?cè)?jīng)討論如何如何在不同的 PHP 版本之間進(jìn)行切換
。在那篇文章中,我們使用 update-alternatives
命令實(shí)現(xiàn)從一個(gè) PHP 版本切換到另一個(gè) PHP 版本。也就是說(shuō),update-alternatives
命令可以將系統(tǒng)范圍默認(rèn)使用的 PHP 版本設(shè)置為我們希望的版本。通俗的來(lái)說(shuō),你可以通過(guò) update-alternatives
命令從系統(tǒng)范圍設(shè)置程序的版本。如果你希望可以在不同目錄動(dòng)態(tài)設(shè)置不同的程序版本,該如何完成呢?在這種情況下,alt
工具可以大顯身手。alt
是一個(gè)命令行工具,可以讓你在類(lèi) Unix 系統(tǒng)中切換相同程序的不同版本。該工具簡(jiǎn)單易用,是 Rust 語(yǔ)言編寫(xiě)的自由、開(kāi)源軟件。
安裝
安裝 alt
工具十分簡(jiǎn)單。
運(yùn)行如下命令,即可在 Linux 主機(jī)上安裝 alt
:
- $ curl -sL https://github.com/dotboris/alt/raw/master/install.sh | bash -s
下一步,將 shims
目錄添加到你的 PATH 環(huán)境變量中,具體操作取決于你使用的 Shell。
對(duì)于 Bash:
- $ echo 'export PATH="$HOME/.local/alt/shims:$PATH"' >> ~/.bashrc
- $ source ~/.bashrc
對(duì)于 Zsh:
- $ echo 'export PATH="$HOME/.local/alt/shims:$PATH"' >> ~/.zshrc
- $ source ~/.zshrc
對(duì)于 Fish:
- $ echo 'set -x PATH "$HOME/.local/alt/shims" $PATH' >> ~/.config/fish/config.fish
現(xiàn)在 alt
已經(jīng)安裝完畢!
使用 alt 工具在 Linux 系統(tǒng)中切換相同程序的不同版本
如我之前所述,alt 只影響當(dāng)前目錄。換句話(huà)說(shuō),當(dāng)你進(jìn)行版本切換時(shí),只在當(dāng)前目錄生效,而不是整個(gè)系統(tǒng)范圍。
下面舉例說(shuō)明。我在我的 Ubuntu 系統(tǒng)中安裝了兩個(gè)版本的 PHP,分別為 PHP 5.6 和 PHP 7.2;另外,在 myproject
目錄中包含一些 PHP 應(yīng)用。
首先,通過(guò)命令查看系統(tǒng)范圍默認(rèn)的 PHP 版本:
- $ php -v
示例輸出:
如截圖中所示,我系統(tǒng)中默認(rèn)的 PHP 版本為 PHP 7.2。
然后,我將進(jìn)入放置 PHP 應(yīng)用的 myproject
目錄。
- $ cd myproject
使用如下命令掃描可用的 PHP 版本:
- $ alt scan php
示例輸出:
可見(jiàn),我有兩個(gè) PHP 版本,即 PHP 5.6 和 PHP 7.2。按下 <空格>
鍵選中當(dāng)前可用的版本。選中全部可用版本后,你可以看到圖中所示的叉號(hào)。使用上下方向鍵在版本間移動(dòng),點(diǎn)擊回車(chē)即可保存變更。
下面運(yùn)行該命令并選取我們希望在 myproject
目錄中使用的 PHP 版本:
- $ alt use php
我希望使用 PHP5.6 版本,故我(使用方向鍵)選取該版本并點(diǎn)擊回車(chē)鍵。
現(xiàn)在,你可以在 /home/sk/myproject
目錄下使用 PHP 5.6 版本啦。
讓我們檢查一下,在 myproject
目錄下是否默認(rèn)使用 PHP 5.6 版本:
- $ php -v
示例輸出:
只要你不設(shè)置成其它版本,(在該目錄下)將一直使用 PHP 5.6 版本。清楚了嗎?很好!請(qǐng)注意,我們僅在這個(gè)目錄下使用 PHP 5.6 版本。在系統(tǒng)范圍內(nèi)(LCTT 譯注:當(dāng)然是沒(méi)單獨(dú)設(shè)置過(guò)其它版本的目錄下),PHP 7.2 仍是默認(rèn)的版本。讓我們檢驗(yàn)一下,請(qǐng)看下圖。
從上面的截圖中可以看出,我有兩個(gè)版本的 PHP:在 myproject
目錄下,使用的版本為 PHP 5.6;在 myproject
外的其它目錄,使用的版本為 PHP 7.2。
同理,你可以為每個(gè)目錄設(shè)置你希望的程序版本。我這里使用 PHP 僅用于說(shuō)明操作,但方法適用于任何你打算使用的軟件,例如 NodeJS 等。
下面是 NodeJS 的示例視頻。
如果你希望在不同軟件包版本下測(cè)試你的應(yīng)用,那么 alt
是你不錯(cuò)的選擇。
本次分享到此結(jié)束。后續(xù)還有更多內(nèi)容,敬請(qǐng)期待!