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è)命令行工具,可以讓你在類 Unix 系統(tǒng)中切換相同程序的不同版本。該工具簡(jiǎn)單易用,是 Rust 語(yǔ)言編寫的自由、開(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)前目錄。換句話說(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)擊回車即可保存變更。
下面運(yùn)行該命令并選取我們希望在 myproject
目錄中使用的 PHP 版本:
$ alt use php
我希望使用 PHP5.6 版本,故我(使用方向鍵)選取該版本并點(diǎn)擊回車鍵。
現(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ò)的選擇。
PS:下面看下linux 不同java版本之間的切換
最近因?yàn)榻?jīng)常要使用jdk7和jdk8 所以需要手動(dòng)切換jdk
在同時(shí)安裝好jdk7和jdk8后 終端輸入
$ sudo update-alternatives --config java $ sudo update-alternatives --config javac
總結(jié)
以上所述是小編給大家介紹的Linux 中如何切換相同程序的不同版本,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
VMware Workstation安裝(Linux內(nèi)核)銀河麒麟圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware Workstation安裝(Linux內(nèi)核)銀河麒麟,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10linux如何通過(guò)防火墻iptables做隔離端口的腳本
這篇文章主要介紹了linux如何通過(guò)防火墻iptables做隔離端口的腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Linux命令學(xué)習(xí)總結(jié)之rm命令
rm命令用來(lái)刪除Linux系統(tǒng)中的文件或目錄。通常情況下rm不會(huì)刪除目錄,你必須通過(guò)指定參數(shù)-r或-R來(lái)刪除目錄。接下來(lái)通過(guò)本文給大家分享Linux命令學(xué)習(xí)總結(jié)之rm命令,對(duì)linux rm命令相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小內(nèi)存VPS服務(wù)器上的
VPS(全稱Virtual Private Server)是利用最新虛擬化技術(shù)在一臺(tái)物理服務(wù)器上創(chuàng)建多個(gè)相互隔離的虛擬私有主機(jī)。它們以最大化的效率共享硬件、軟件許可證以及管理資源。2008-12-12window與linux項(xiàng)目部署之linux文件路徑不存在問(wèn)題
小編在一次項(xiàng)目測(cè)試中,發(fā)現(xiàn)一些bug,window與linux項(xiàng)目部署-linux文件路徑不存在問(wèn)題,本文給出了解決方案,需要的朋友可以參考下2019-11-11騰訊云服務(wù)器Centos掛載數(shù)據(jù)盤的方法
這篇文章主要介紹了騰訊云服務(wù)器Centos掛載數(shù)據(jù)盤的方法,參考了網(wǎng)上一些資料,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10用DNSPod和Squid打造自己的CDN (八) 測(cè)試并運(yùn)行SQUID
想要測(cè)試SQUID是否正常,必須要先把www.naizhao.com這個(gè)域名解析到2.2.2.2這個(gè)IP上。跟上一章一樣,如果你是網(wǎng)通用戶就不需要做任何操作,DNSPod會(huì)給你返回2.2.2.2這個(gè)IP2013-04-04