先來瞭解ln和update-alternatvies命令。
ln連結
首先我們來說說linux的連結,它分為兩種:符號連結(symbolic link)和永久連結(hard link)。
我們知道檔案都有檔案名稱與資料,這在 Linux 上被分成兩個部分:使用者資料 (user data) 與中繼資料 (metadata)。使用者資料,即檔案資料區塊 (data block),資料區塊是記錄檔案真實內容的地方;而中繼資料則是檔案的附加屬性,如檔案大小、建立時間、所有者等資訊。在 Linux 中,中繼資料中的 inode 號(inode 是檔案中繼資料的一部分但其並不包含檔案名稱,inode 號即索引節點號)才是檔案的唯一標識而非檔案名稱。檔案名稱僅是為了方便人們的記憶和使用,系統或程式通過 inode 號尋找正確的檔案資料區塊。下圖展示了程式通過檔案名稱擷取檔案內容的過程。
為解決檔案的共用使用,Linux 系統引入了兩種連結:永久連結 (hard link) 與軟連結(又稱符號連結,即 soft link 或 symbolic link)。連結為 Linux 系統解決了檔案的共用使用,還帶來了隱藏檔案路徑、增加許可權安全及節省儲存等好處。若一個 inode 號對應多個檔案名稱,則稱這些檔案為永久連結。換言之,永久連結就是同一個檔案使用了多個別名(下圖hard link 就是 file 的一個別名,他們有共同的 inode)。而軟連結與永久連結不同,若檔案使用者資料區塊中存放的內容是另一檔案的路徑名的指向,則該檔案就是軟串連。軟連結就是一個普通檔案,只是資料區塊內容有點特殊。軟連結有著自己的 inode 號以及使用者資料區塊。
Alternatives機制
Alternatives也稱“替代品”機制,如下圖
在/etc/alternatives下存在一些符號連結(替代品),一個替代品連結可以連結一組檔案,而這一組檔案具有優先權,根據優先權可以選擇替代品連結真實連結的檔案;
別的符號連結可以串連到替代品連結;
它的應用情境是這樣的:比如現在流行的編輯器有Vim、nano、Emacs等,而debian裡還內建了vim.tiny。如果系統了安裝了這些編輯器,如何能使用一個友好的(符號)連結如editor映射到你最喜歡的編輯器呢?
使用Alternatives機制是這樣的,在/etc/alternatives下建立一個editor符號連結指向Vim、nano、Emacs,當前的選擇是vim;然後再在/usr/bin再建立一個符號連結editor連結到替代品連結editor,然後我們就可以使用editor來開啟編輯器了,當想切換成Emacs的時候,使用命令update-alternatives --config editor可以選擇別的編輯器。當然如果你不使用Alternatives機制也可以,只是想更換的時候手動做符號連結,這是我的理解。
安裝Java
網上搜到的如何安裝Java一般都是使用Alternatvies機制,其實手動直接建立符號連結我覺得也很方便,但可能考慮到多個Java版本吧。但不管怎麼樣,只要知道了上述理論就不能理解如何安裝了。
首先到官網下載你需要的Java版本,我下載的是Java7 Server JRE,並解壓至“/usr/lib/jvm//jdk1.7.0_60”中,然後使用下面的命令安裝Alternatives
| 代碼如下 |
複製代碼 |
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_60/bin/java 100 |
如果Alternatives的java不只指向一個java,需要使用下面的命令進行配置
| 代碼如下 |
複製代碼 |
update-alternatives --config java
|
更多的update-alternateives命令選項可以使用使用--help查看。