【Linux】使用update-alternatives命令進(jìn)行版本的切換

引言

在Debian系統(tǒng)中,我們可能會同時(shí)安裝有很多功能類似的程序和可選配置女仰,可能會出現(xiàn)同一軟件的多個(gè)版本并存的場景很钓。比如像是一些編程語言工具,一些系統(tǒng)中自帶的是python2.6董栽,而現(xiàn)在python2.7和python3.4使用較多码倦,還有java有1.6,1.7和1.8版本锭碳。
update-alternatives是Debian系統(tǒng)中專門維護(hù)系統(tǒng)命令鏈接符的工具袁稽,通過它可以很方便的設(shè)置系統(tǒng)默認(rèn)使用哪個(gè)命令、哪個(gè)軟件版本擒抛,比如系統(tǒng)中同時(shí)安裝了open jdk和sun jdk兩個(gè)版本推汽,而我們又希望系統(tǒng)默認(rèn)使用sun jdk补疑,通過update-alternatives就可以方便實(shí)現(xiàn)管理。

介紹

首先我們可以通過update-alternatives --display java來查看java命令的所有可選命令歹撒,如下圖:

我們可以看出莲组,/usr/bin/java命令指向了/etc/alternatives/java,而/etc/alternatives/java實(shí)際指向的是openjdk1.7的java命令暖夭,之所以建立這樣兩個(gè)鏈接锹杈,是為了方便腳本程序的編寫和系統(tǒng)的管理。

命令格式與參數(shù)

命令格式:update-alternatives [<選項(xiàng)> ...] <命令>
主要參數(shù):

Commands:
  --install <link> <name> <path> <priority>
    [--slave <link> <name> <path>] ...
                           在系統(tǒng)中加入一組替換項(xiàng).
  --remove <name> <path>   從 <名稱> 替換組中去除 <路徑> 項(xiàng).
  --remove-all <name>      從替換系統(tǒng)中刪除 <名稱> 替換組.
  --auto <name>            將 <名稱> 的主鏈接切換到自動(dòng)模式.
  --display <name>         顯示關(guān)于 <名稱> 替換組的信息.
  --query <name>           machine parseable version of --display <name>.
  --list <name>            列出 <名稱> 替換組中所有的可用替換項(xiàng).
  --get-selections         list master alternative names and their status.
  --set-selections         read alternative status from standard input.
  --config <name>          列出 <名稱> 替換組中的可選項(xiàng)迈着,并就使用其中
                                 哪一個(gè)竭望,征詢用戶的意見.
  --set <name> <path>      將 <路徑> 設(shè)置為 <名稱> 的替換項(xiàng).
  --all                    對所有可選項(xiàng)一一調(diào)用 --config 命令.
<link> 是指向 /etc/alternatives/<名稱> 的符號鏈接>.
  (e.g. /usr/bin/pager)
<name> 是該鏈接替換組的主控名.
  (e.g. pager)
<path> 是替換項(xiàng)目標(biāo)文件的位置.
  (e.g. /usr/bin/less)
<priority> 是一個(gè)整數(shù),在自動(dòng)模式下裕菠,這個(gè)數(shù)字越高的選項(xiàng)咬清,其優(yōu)先級也就越高.
Options:
  --altdir <directory>     指定不同的可選項(xiàng)目錄.
  --admindir <directory>   指定不同的管理目錄.
  --log <file>             設(shè)置log文件.
  --force                  allow replacing files with alternative links.
  --skip-auto              skip prompt for alternatives correctly configured
                           in automatic mode (relevant for --config only)
  --verbose                詳盡的操作進(jìn)行信息,更多的輸出.
  --quiet                  安靜模式奴潘,輸出盡可能少的信息.
  --help                   顯示本幫助信息.
  --version                顯示版本信息.

基本命令

update-alternatives命令的幾個(gè)主要選項(xiàng)為:display旧烧、install、remove画髓、config掘剪。

display選項(xiàng)

display選項(xiàng)用來顯示一個(gè)命令鏈接的所有可選命令,即查看一個(gè)命令鏈接組的所有信息雀扶,包括鏈接的模式(自動(dòng)還是手動(dòng))、鏈接priority值肆汹、所有可 用的鏈接命令等等愚墓。

install選項(xiàng)

install選項(xiàng)的功能就是增加一組新的系統(tǒng)命令鏈接符。
使用語法為:update-alternatives --install <link> <name> <path> <priority> [--slave link name path]...昂勉。其中l(wèi)ink為系統(tǒng)中功能相同軟件的公共鏈接目錄浪册,比如/usr/bin/java(需絕對目錄); name為命令鏈接符名稱,如java;path為你所要使用新命令岗照、新軟件的所在目錄村象;priority為優(yōu)先級,當(dāng)命令鏈接已存在時(shí)攒至,需高于當(dāng)前值厚者,因?yàn)楫?dāng)alternative為自動(dòng)模式時(shí),系統(tǒng)默認(rèn)啟用priority高的鏈接;--slave為從alternative迫吐。

config選項(xiàng)

config選項(xiàng)用來顯示和修改實(shí)際指向的候選命令库菲,為在現(xiàn)有的命令鏈接選擇一個(gè)作為系統(tǒng)默認(rèn)。


remove選項(xiàng)

remove選項(xiàng)的功能是刪除一個(gè)命令的link值志膀,其附帶的slave也將一起刪除熙宇。
使用語法為:update-alternatives --remove name path鳖擒。其中name與path與install中的一致,如果所刪除的鏈接組中還有其他鏈接的話烫止,系統(tǒng)將會自動(dòng)從其他中選擇一個(gè)priority高的鏈接作為默認(rèn)為鏈接蒋荚。
比如:update-alternatives –remove java /usr/lib/jvm/jre1.6.0_20/bin/java

使用實(shí)例

我使用的LinuxMint默認(rèn)的JDK是openjdk,現(xiàn)在我要將自己安裝的JDK設(shè)置為默認(rèn)的JDK版本馆蠕,執(zhí)行下面的代碼:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/bin/java 1070
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/bin/javac 1070
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java/bin/jar 1070
sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java/bin/javah 1070
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java/bin/javap 1070

然后執(zhí)行下面代碼選擇我們安裝的JDK版本:

sudo update-alternatives --config java

這樣就完成了java版本的切換期升。

轉(zhuǎn)載請注明作者Jason Ding及其出處
Github博客主頁(http://jasonding1354.github.io/)
GitCafe博客主頁(http://jasonding1354.gitcafe.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.reibang.com/users/2bd9b48f6ea8/latest_articles)
Google搜索jasonding1354進(jìn)入我的博客主頁

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荆几,隨后出現(xiàn)的幾起案子吓妆,更是在濱河造成了極大的恐慌,老刑警劉巖吨铸,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件行拢,死亡現(xiàn)場離奇詭異,居然都是意外死亡诞吱,警方通過查閱死者的電腦和手機(jī)舟奠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來房维,“玉大人沼瘫,你說我怎么就攤上這事×” “怎么了耿戚?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長阿趁。 經(jīng)常有香客問我膜蛔,道長,這世上最難降的妖魔是什么脖阵? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任皂股,我火速辦了婚禮,結(jié)果婚禮上命黔,老公的妹妹穿的比我還像新娘呜呐。我一直安慰自己,他們只是感情好悍募,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布蘑辑。 她就那樣靜靜地躺著,像睡著了一般坠宴。 火紅的嫁衣襯著肌膚如雪以躯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音忧设,去河邊找鬼刁标。 笑死,一個(gè)胖子當(dāng)著我的面吹牛址晕,可吹牛的內(nèi)容都是我干的膀懈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谨垃,長吁一口氣:“原來是場噩夢啊……” “哼启搂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刘陶,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤胳赌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后匙隔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疑苫,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年纷责,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捍掺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡再膳,死狀恐怖挺勿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喂柒,我是刑警寧澤不瓶,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站灾杰,受9級特大地震影響蚊丐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吭露,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一吠撮、第九天 我趴在偏房一處隱蔽的房頂上張望尊惰。 院中可真熱鬧讲竿,春花似錦、人聲如沸弄屡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膀捷。三九已至迈嘹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秀仲。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工融痛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人神僵。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓雁刷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親保礼。 傳聞我的和親對象是個(gè)殘疾皇子沛励,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容