日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

/etc/alternatives

發(fā)布時間:2023/12/13 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 /etc/alternatives 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如何安裝一個可執(zhí)行程序

一般來說我們一個可執(zhí)行程序,可能在多個路徑下,比如在opt路徑下,或者在自己的home下。

當(dāng)要達到在系統(tǒng)的任意路徑下敲擊該命令,都可執(zhí)行的話,一般要將該可執(zhí)行命令的路徑加入到環(huán)境變量PATH中。

加入PATH可以是直接到/etc/profile.d/中定義一個sh文件,在其中將該可執(zhí)行程序的路徑加入其中,比如

JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export JAVA_HOME

當(dāng)然還可以將可執(zhí)行文件,以軟連接的形式,放入到一般系統(tǒng)會找尋的目錄中。比如一般linux系統(tǒng)的PATH,默認都有這幾個路徑

/bin 系統(tǒng)啟動加載階段需要使用的命令,比如cat,ls
/sbin 系統(tǒng)啟動加載階段需要使用,并且需要root權(quán)限才能執(zhí)行的命令
/usr/bin 整個系統(tǒng)范圍內(nèi)都能使用的命令
/usr/sbin 整個系統(tǒng)范圍內(nèi)都能使用的命令,但需要管理員權(quán)限

比如我們裝一個java,如果想在任意路徑敲擊java后,都啟動java(不考慮JAVA_HOME這個環(huán)境變量),我們可以在/usr/bin下創(chuàng)建一個軟連接文件java , 將其鏈接到我們java的具體路徑,比如

/usr/bin/java -> /usr/java/jdk1.8.0_221-amd64/jre/bin/java

這樣做的好處是,其它程序需要使用java時,它直接去/usr/bin中找就好,無論java實際路徑怎么存放,使用java的程序,不需要修改。

當(dāng)一個可執(zhí)行程序有多個版本怎么辦 , alternatives

上述只介紹了一個可執(zhí)行程序的全局安裝方式。但如果一個程序,有好幾個版本的實現(xiàn)。系統(tǒng)怎么判斷該使用哪一個版本?

比如我們即安裝了java8,又安裝了java10。 這就是alternatives機制要解決的。

alternatives機制,能夠自動選擇高版本程序作為默認程序,或者使用管理員指定的版本作為默認的程序。

一個alternatives機制,涉及如下術(shù)語

Generic name 不考慮版本,這個程序?qū)?yīng)的名字,比如不考慮java的版本,我們一般統(tǒng)一使用java作為啟動命令,其generic name 為:/usr/bin/java
Alternatives directory Alternatives 機制,默認使用軟連接的方式,去鏈接實際的程序版本。該路徑下展示了所有的軟連接
Link group 而一般一個可執(zhí)行程序,除了自己之外,還需要依賴一些其他的庫文件,或與之對應(yīng)的配置文件。這些需要一并連接。所以跟這個程序相關(guān)的一組連接叫做link group
Master link 連接組中程序主體的鏈接
Slave link 鏈接中程序依賴相關(guān)的文件鏈接

alternatives管理的命令為update-alternatives

版本選擇的兩種模式

當(dāng)安裝的alternatives有多個版本時。操作系統(tǒng)默認選擇哪個版本,有兩種模式

自動模式,基于權(quán)重自動判斷,高權(quán)重為自動啟用版本。并且新安裝的版本由于權(quán)重高,自動成為默認版本
手動模式,系統(tǒng)管理員通過命令sudo update-alternatives --config command手動指定一個版本為默認版本,即便后來又裝了更新的版本,默認版本都不會變。

管理手動指定版本后,該alternative即進入手動模式。如果要回滾到自動模式,使用命令

手動安裝一個alternatives

安裝一個alternatives

表示在/usr/local/bin/下創(chuàng)建的genericname。當(dāng)然,用戶側(cè)程序,一般創(chuàng)建在/usr/bin下,而不是截圖中的/usr/local/bin中。generic name一般沒有版本
整個Link group的名稱,一般跟generic name一致
鏈接的執(zhí)行程序?qū)嶋H版本的路徑
當(dāng)前安裝版本對應(yīng)的權(quán)重。alternatives 如果是自動模式的話,會自動選權(quán)重高的版本做為默認程序

上述程序的兩個版本的實際路徑是

/usr/local/bin/foo-2
/usr/local/bin/foo-3

帶slave links的安裝

跟上述安裝類似,只是附加指定了主程序依賴的相關(guān)配置作為slave link

總結(jié)

默認情況下,上述步驟不需要我們手動來做。一般在安裝一個linux的安裝包時,會自動完成上述步驟。并且安裝好的alternatives都是auto模式,即自動決定程序版本

alternatives的一些命令

如何查看一個程序的alterntives 整體情況

sudo update-alternatives --display commandname

手動指定一個版本

列出多個版本,以交互的方式讓用戶選擇指定版本

sudo update-alternatives --config commandname

直接將默認程序設(shè)置到某個具體版本的路徑上

sudo update-alternatives --set commandname path

如何回退到自動模式

sudo update-alternatives  --auto commandname

從alternatives中移除指定版本

sudo update-alternatives  --remove commandname path

舉例

sudo update-alternatives --remove foo /usr/local/bin/foo-2

移除指定程序的所有alternatives

sudo update-alternatives  --remove-all commandname

參考鏈接

https://linux.die.net/man/8/alternatives
https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-update-alternative.html

總結(jié)

以上是生活随笔為你收集整理的/etc/alternatives的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。