update-alternatives

參考:http://blog.csdn.net/heyutao007/article/details/5441482

Linux 發展到今天,可用的軟件已經非常多了。這樣自然會有一些軟件的功能大致上相同。例如,同樣是編輯器,就有 nvi、vim、emacs、nano,而且我說的這些還只是一部分。大多數情況下,這樣的功能相似的軟件都是同時安裝在系統裏的,可以用它們的名稱來執行。例如,要執行 vim,只要在終端下輸入 vim 並按回車就可以了。不過,有些情況下我們需要用一個相對固定的命令調用這些程序中的一個。例如,當我們寫一個腳本程序時,只要寫下 editor,而不希望要爲“編輯器是哪個”而操心。Debian 提供了一種機制來解決這個問題,而 update-alternatives 就是用來實現這種機制的。


各個選項:

update-alternatives --display editor 可以看到我的機器上的所有可以用來被 editor 鏈接的命令。

update-alternatives --config editor 配置,可以選使用哪個配置

首先,update-alternatives 在一般情況下是由postinst 和 prerm 這樣的安裝腳本自動調用的,所以一個 alternative 的狀態有兩種:自動和手動。每個 alternative 的初始狀態都是自動。如果系統發現管理員手動修改了一個 alternative,它的狀態就從自動變成了手動,這樣安裝腳本就不會更新它了。如果你希望將一個 alternative 變回自動,只要執行代碼:
update-alternatives --auto editor

-auto,--display 和 --config 跟的都是 link。我們要說的第三個概念是優先級。這個比較簡單,當然優先級越高的程序越好啦。最後一個概念是主和從的 alternative。想想看,你將 /usr/bin/editor 鏈接到了 vim,可是當你執行 man editor 時看到的卻是 emacs 的 manpage,你會做何感想呢?這就引出了主和從 alternative 的概念了:當更新主的 alternative 時,從的 alternative 也會被更新。

update-alternatives --install gen link alt pri [--slave sgen slink salt] ...

gen,link,alt,pri 分別是我們上面說過的。如果需要從的 alternative,你可以用--slave 加在後面。如果你在向一個已經存在的 alternative 組中添加新的 alternatives,該命令會把這些 alternatives 加入到這個已經存在的 alternative 組的列表中,並用新的可選命令作爲新的命令;否則,將會建立一個新的自動的 alternative組。
嗚呼!我加入了一個錯誤的 alternative。我不想要這個 alternative 了。在這種情況
下,可以執行下面的命令:代碼:

update-alternatives --remove name path

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章