Linux 中如何切換相同程序的不同版本
幾天前,我們曾經(jīng)討論如何 如何在不同的 PHP 版本之間進行切換
。在那篇文章中,我們使用 update-alternatives
命令實現(xiàn)從一個 PHP 版本切換到另一個 PHP 版本。也就是說, update-alternatives
命令可以將 系統(tǒng)范圍 默認(rèn)使用的 PHP 版本設(shè)置為我們希望的版本。通俗的來說,你可以通過 update-alternatives
命令從系統(tǒng)范圍設(shè)置程序的版本。如果你希望可以在不同目錄動態(tài)設(shè)置不同的程序版本,該如何完成呢?在這種情況下, alt
工具可以大顯身手。 alt
是一個命令行工具,可以讓你在類 Unix 系統(tǒng)中切換相同程序的不同版本。該工具簡單易用,是 Rust 語言編寫的自由、開源軟件。
安裝
安裝 alt
工具十分簡單。
運行如下命令,即可在 Linux 主機上安裝 alt
:
$ curl -sL https://github.com/dotboris/alt/raw/master/install.sh | bash -s
下一步,將 shims
目錄添加到你的 PATH 環(huán)境變量中,具體操作取決于你使用的 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
現(xiàn)在 alt
已經(jīng)安裝完畢!
使用 alt 工具在 Linux 系統(tǒng)中切換相同程序的不同版本
如我之前所述,alt 只影響當(dāng)前目錄。換句話說,當(dāng)你進行版本切換時,只在當(dāng)前目錄生效,而不是整個系統(tǒng)范圍。
下面舉例說明。我在我的 Ubuntu 系統(tǒng)中安裝了兩個版本的 PHP,分別為 PHP 5.6 和 PHP 7.2;另外,在 myproject
目錄中包含一些 PHP 應(yīng)用。
首先,通過命令查看系統(tǒng)范圍默認(rèn)的 PHP 版本:
$ php -v
示例輸出:
如截圖中所示,我系統(tǒng)中默認(rèn)的 PHP 版本為 PHP 7.2。
然后,我將進入放置 PHP 應(yīng)用的 myproject
目錄。
$ cd myproject
使用如下命令掃描可用的 PHP 版本:
$ alt scan php
示例輸出:
可見,我有兩個 PHP 版本,即 PHP 5.6 和 PHP 7.2。按下 <空格>
鍵選中當(dāng)前可用的版本。選中全部可用版本后,你可以看到圖中所示的 叉號 。使用上下方向鍵在版本間移動,點擊回車即可保存變更。
下面運行該命令并選取我們希望在 myproject
目錄中使用的 PHP 版本:
$ alt use php
我希望使用 PHP5.6 版本,故我(使用方向鍵)選取該版本并點擊回車鍵。
現(xiàn)在,你可以在 /home/sk/myproject
目錄下使用 PHP 5.6 版本啦。
讓我們檢查一下,在 myproject
目錄下是否默認(rèn)使用 PHP 5.6 版本:
$ php -v
示例輸出:
只要你不設(shè)置成其它版本,(在該目錄下)將一直使用 PHP 5.6 版本。清楚了嗎?很好!請注意,我們僅在這個目錄下使用 PHP 5.6 版本。在系統(tǒng)范圍內(nèi)(LCTT 譯注:當(dāng)然是沒單獨設(shè)置過其它版本的目錄下),PHP 7.2 仍是默認(rèn)的版本。讓我們檢驗一下,請看下圖。
從上面的截圖中可以看出,我有兩個版本的 PHP:在 myproject
目錄下,使用的版本為 PHP 5.6;在 myproject
外的其它目錄,使用的版本為 PHP 7.2。
同理,你可以為每個目錄設(shè)置你希望的程序版本。我這里使用 PHP 僅用于說明操作,但方法適用于任何你打算使用的軟件,例如 NodeJS 等。
下面是 NodeJS 的示例視頻。
如果你希望在不同軟件包版本下測試你的應(yīng)用,那么 alt
是你不錯的選擇。
PS:下面看下linux 不同java版本之間的切換
最近因為經(jīng)常要使用jdk7和jdk8 所以需要手動切換jdk
在同時安裝好jdk7和jdk8后 終端輸入
$ sudo update-alternatives --config java $ sudo update-alternatives --config javac
總結(jié)
以上所述是小編給大家介紹的Linux 中如何切換相同程序的不同版本,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
VMware Workstation安裝(Linux內(nèi)核)銀河麒麟圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware Workstation安裝(Linux內(nèi)核)銀河麒麟,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10Linux命令學(xué)習(xí)總結(jié)之rm命令
rm命令用來刪除Linux系統(tǒng)中的文件或目錄。通常情況下rm不會刪除目錄,你必須通過指定參數(shù)-r或-R來刪除目錄。接下來通過本文給大家分享Linux命令學(xué)習(xí)總結(jié)之rm命令,對linux rm命令相關(guān)知識感興趣的朋友一起學(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ù)在一臺物理服務(wù)器上創(chuàng)建多個相互隔離的虛擬私有主機。它們以最大化的效率共享硬件、軟件許可證以及管理資源。2008-12-12window與linux項目部署之linux文件路徑不存在問題
小編在一次項目測試中,發(fā)現(xiàn)一些bug,window與linux項目部署-linux文件路徑不存在問題,本文給出了解決方案,需要的朋友可以參考下2019-11-11騰訊云服務(wù)器Centos掛載數(shù)據(jù)盤的方法
這篇文章主要介紹了騰訊云服務(wù)器Centos掛載數(shù)據(jù)盤的方法,參考了網(wǎng)上一些資料,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10用DNSPod和Squid打造自己的CDN (八) 測試并運行SQUID
想要測試SQUID是否正常,必須要先把www.naizhao.com這個域名解析到2.2.2.2這個IP上。跟上一章一樣,如果你是網(wǎng)通用戶就不需要做任何操作,DNSPod會給你返回2.2.2.2這個IP2013-04-04