回到首頁過去文章最新消息FAQ相關討論 | 關於我們

使用者介面

指令或文字模式為主的介面,另許多人對 Debian 望之卻步,以下是基於 apt 的圖形模式或加強型的指令,可以提供較為友善的介面

  • DebianPackages:aptitude - aptitude 是 curses-based 的使用者介面,可以稱為目前功能最強大的介面。
  • DebianPackages:synaptic - Gtk 圖形使用者介面,目前功能較為完整的圖形介面
  • DebianPackages:gnome-apt - 圖形套件管理系統
  • DebianPackages:wajig - 包容所有 apt-* 指令的指令列工具,集搜尋、更新、安裝、移除於一身

絕大部分的軟體是基於 Debian 所開發,但是逐漸移植到 apt-rpm 系統上。
aptitude

Synaptic

軟體關聯

我們這裡所說明的軟體關係有相依性(Dependency)與衝突性(conflicting dependency)。而 Debian 套件系統中細分為數種套件關係,分別是Depends, Pre-Depends, Recommends, Suggests, Conflicts, Provides, Replaces。
所謂軟體相依性(Depends)是軟體與函式庫的關聯,如 mozilla-firefox 便依賴大量的函式庫,如 xlibs/fontconfig 等,套件管理系統必須自動處理解決這些相依性,自動安裝相關的套件,這可以替使用者解決麻煩的問題,避免逐一的檢查安裝套件軟體。相依性(Depends)又可細分為建議(Suggests)與推薦(Recommends),這兩種告訴使用者除了必要的檔案外,可以額外安裝的軟體,這些額外的軟體可以增加程式的方便性與功能性。
衝突性是矛盾的軟體關聯,例如以 mail-transport-agents 為例,一個系統只會有一個電子郵件傳送代理人,不是使用 sendmail 就是 postfix 或是 exim,你不會同時安裝數個郵件系統在一台主機上,那樣會造成資源衝突,如同時兩個程式企圖佔用埠 25。安裝這類套件時,系統應該要自動移除另外一套。這種矛盾性關係是衝突(Conflicts)與取代(Replaces),取代的主要用途是新版用於取代舊版,絕大部分的函式庫可以新舊並存,但是部份軟體不可行,有時候是套件名稱更改,因此新名稱取代舊名稱軟體,衝突則是兩種不同的軟體或軟體的版本水火不容,一山不容二虎。
這兩種依賴關係 apt 都會自動為使用者處理。還有一種相依性是 apt 目前無法處理的,姑且稱為被相依性,這是當你安裝並移除一個套件,安裝時因為相依性而自動安裝的套件並不會自動移除,而形成孤兒軟體,成為沒有人需要的檔案,留在系統中僅是佔用空間。
DebianPackages:deborphan 是設計來解決這種問題,它可用於自動檢測被相依性,列出系統中剩餘的孤兒軟體,使用者便可逐一刪除。此外,aptitude 對於此狀況也有其解決方案,aptitude 會紀錄該套件是由使用者『手動』或因為相依性而『自動』安裝,使用者可在 aptitude 介面中選擇該套件的手動/自動狀態,當 aptitude 執行時會自動分析相關的數據,並自動移除孤兒軟體。
供給(Provides) 是一項重要的軟體維護政策產物,目的在於提供虛擬套件的關聯性。如某軟體依據於網頁瀏覽器,它會聲明必須安裝 www-browser,而 www-browser 僅是一個虛擬套件的名稱,許多軟體都會在套件細節中說明提供 www-browser,例如 mozilla, lynx, w3m 等,使用者只要安裝任何一種,即可解決此相依性問題也提供了多樣性的選擇。上述 mail-transport-agents 也是其中一種虛擬套件名稱。

進階工具

以上以外的基礎工具皆稱為進階工具,這些工具是加強功能與獨特目的的指令。這裡不介紹製作映射(mirror)或偏網路管理者工作。

自動升級工具

使用 Debian 無論是使用 stable 或 unstable 版本,軟體版本的升級是提高功能性與安全的重要工作,可以用於自動檢查版本與升級的軟體是 cron-apt 與 apt-watch。
DebianPackages:cron-apt 主要功能是設定定期排程(crontab),會在深夜時自動更新並下載可以升級的軟體,如此一來當使用者升級時,便不用浪費時間等待下載。
而 DebianPackages:apt-watch 有點類似 RedHat 的 RHN 與微軟系統的自動升級系統,適合使用 Linux 為桌面系統的使用者使用,你可以在工作列的小軟體上見到目前的系統是否有可升級的軟體,他也會自動下載套件檔案,但不提供套件管理介面,而以 apt-get、aptitude、synaptic 或 gnome-apt 為套件管理介面。

套件資訊蒐集工具

此類工具的目的在於提供使用者於安裝時自動蒐集網路與套件內容的資訊,必須配合 apt 系統使用。
DebianPackages:apt-listbugs 是在使用者安裝某個套件時,自動從臭蟲回報系統抓取該軟體的最新資訊,特別是『嚴重』的缺陷,這些問題將會造成系統無法使用,如果使用者在安裝前就注意到嚴重缺陷,那麼可以馬上終止程序,避免誤觸 "地雷" 而必須將時間浪費在錯誤排除上。對於使用 testing/unstable 的使用者特別有用。
DebianPackages:apt-listchanges 的功能,則是從 deb 檔案中,抓取 changelog ,Debian 有個嚴謹的規範,也就是所有的套件都會註明修改紀錄,修改紀錄又包含為 Debian 開發者本身封裝套件的紀錄,以及軟體開發上游的歷史紀錄,apt-listchanges 會列出此次升級中修改的細節,因此使用者便可以知道這次修改是為了解決某些臭蟲或是有新的版本可用。

巫毒編程/原始碼編譯工具

有一種現象我們將其稱為 Voodoo Programming (巫毒編程),也就是指許多程式設計師明知不可行卻為之的事情(這種狀況之下,或許應該稱呼他們為"巫師"),而且某些狀況下這些事情真的可以運作,像是重新編譯所有的軟體。有許多朋友熱愛所謂 source-based distribution,像是 FreeBSD 或 Gentoo 等套件系統,對於 pre-build 的套件系統不屑一顧,縱然 Debian 提供預先編譯的套件提供使用效率上優勢。然而 Debian 也可當作 source-based distribution,辦法是使用 DebianPackages:apt-build,apt-build 是用來協助系統使用者逐一下載原始碼,並重新依據設定最佳化編譯,就像其他的源碼基礎系統一般。你可以用 apt-build 來安裝、移除與升級軟體,你願意的話,也可以重新編譯整個系統


# apt-build world

檔案搜尋

某些時候,我們知道需要某些指令,卻不清楚該指令存在那個軟體中,我們需要一個檔案列表資料庫,以搜尋必要的檔案,DebianPackages:apt-file 的功能便是如此,有點類似 apt-get ,apt-file 會依據 sources.list 中所設定的 apt 資源,下載檔案列表,然後使用者便可搜尋特定檔名


# apt-file update
# apt-file serach foo

除了 apt-file 外,某些時候執行命令稿或指令時,偏偏缺了必要的檔案資料庫或指令,DebianPackages:auto-apt 可以替使用者自動找出某軟體需要的指令,並自動安裝。

現有缺點

最大的缺點就是自由軟體的研發特性造成相關工具的設計多樣性,不同的開發者有不同的設計偏好,有 C/C++/Perl/Python/Ruby 等不同語言的實作指令,因此如果要使用各種工具,你必須安裝各項程式語言的基礎函式庫,以至於系統逐漸龐大,失去小巧簡單的特質。但多樣性的選擇也是自由軟體系統的長處之一。


<<< Page 1 : <<    
第 2 頁