首頁 > 軟體

Linux下的多版本管理工具—alternatives

2020-06-16 17:22:17

alternatives是Unix下重要的版本管理工具,它最早是在debain的系統中出現,因為它強大實用性使得它在各個Unix環境中大量的移植使用,而我們在平時的時候可能最經常使用的是java的openjdk工具包的版本轉換,而在alternatives實現多版本是使用替換系統中命令的link指向來實現版本的轉換,它預設的多版本link檔案都是放在/etc/alternatives路徑下,在實際生產中可以用他來管理系統中不同軟體的版本問題。

在這裡就用openjdk工具包做例子,openjdk工具包下的java虛擬機器在平時大量的模擬java的環境時都會被使用到,在這裡我們可以看下用yum安裝的rpm包java的系統檔案

[root@localhost ~]# ll $(which java)
lrwxrwxrwx. 1 root root 22 12月 31 12:02 /usr/bin/java -> /etc/alternatives/java

可以看出來系統中java的路徑其實是一個link檔案,它所指向的就是系統中的/etc/alternatives下的java,現在去/etc/alternatives路徑下看下都有什麼東西

[root@localhost ~]# cd /etc/alternatives
[root@localhost alternatives]# ll java
lrwxrwxrwx. 1 root root 46 12月 31 12:02 java -> /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

在這裡就可以看出系統中的java指令是被指向openjdk1.6版本下,而我們需要切換java的版本也很簡單:

[root@localhost alternatives]# alternatives --config java
 
共有 2 個程式提供“java”。
 
  選擇    命令
-----------------------------------------------
*  1          /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
 + 2          /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
 
按 Enter 來儲存當前選擇[+],或鍵入選擇號碼:2,在這裡說明一下alternatives的引數選項

--install link name path priority:
用於新增替代系統指令下的檔案,就是安裝替換系統中的檔案成link檔案
--remove name path:
移除用alternatives管理的關係
--set name path
手動新增連結的從屬關係,這個在原debian中是沒有的引數
--config name
對alternatives控制的軟體進行版本修改,用於手動指定軟體版本
--auto name
對alternatives控制的軟體進行自動選項版本,這裡一般是選項系統中最新的版本
--display name
用於顯示alternatives控制的軟體如何替換,替換了那些組態檔、版本等等

總之來說alternatives版本控制器是比較重要的版本管理工具,使用它可以快速管理系統中的軟體版本,以減少去修改大量的環境變數的時間。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-02/140249.htm


IT145.com E-mail:sddin#qq.com