940 likes | 1.03k Views
第 17 章. 軟體的安裝、升級與移除. 本章重點. 17-1 利用套件管理程式安裝與移除套件 17-2 使用套件升級程式線上更新套件 17-3 以 RPM 指令管理套件 17-4 使用 Yum 線上安裝、移除與更新套件 17-5 Linux 軟體下載網站 17-6 如何安裝自行下載的軟體. 前言.
E N D
第 17 章 軟體的安裝、升級與移除
本章重點 • 17-1 利用套件管理程式安裝與移除套件 • 17-2 使用套件升級程式線上更新套件 • 17-3 以 RPM 指令管理套件 • 17-4 使用 Yum 線上安裝、移除與更新套件 • 17-5 Linux 軟體下載網站 • 17-6 如何安裝自行下載的軟體
前言 • 以前在 Unix/Linux 作業系統要安裝軟體, 往往都需要用文字模式的 make 指令來編譯程式, 安裝過程稍嫌繁雜, 而且不易使用。本 Linux 發行版則內附了套件管理程式與套件升級程式, 提供使用者高度親和力的圖形介面, 讓安裝/移除/升級軟體都不再是難事了!
前言 • 在圖形工具的底層, 本發行版軟體管理核心是一個開放原始碼的套件管理系統 RPM (Red Hat Package Manager), 此外也提供了一個文字介面的套件管理工具 Yum。本節會逐一說明如何使用這些圖形與文字模式工具, 輕鬆地管理軟體, 而最後也會說明如何使用傳統的make指令編譯與安裝程式。 • 套件管理程式、套件升級程式、Yum 這三個工具因為使用相同的機制, 所以無法同時執行。
17-1 利用套件管理程式安裝與移除套件 • 此 Linux 發行版內附了一個圖形化的套件管理程式, 可以透過網路輕鬆地安裝或移除系統內的套件, 讓您管理套件時更加容易。 • 因為套件管理程式會從網路下載套件相關資訊與套件檔案, 所以使用前必須先讓電腦連上網路。
17-1-1 開啟套件管理程式檢視安裝的套件 • 請按概覽鈕, 切換到應用程式頁次的系統工具類別, 按加入或移除軟體圖示, 即可開啟套件管理程式:
17-1-2 安裝與移除套件 • 使用套件管理程式安裝與移除套件的方法非常容易, 並且可以一次完成, 只要用滑鼠勾選要安裝或取消勾選要移除的套件, 然後按套用鈕即可。以下我們以安裝 LDAP 伺服器並移除 MySQL 資料庫為例, 說明安裝與移除套件的步驟:
安裝與移除套件 • 接著我們要移除 MySQL 伺服器, 請如下操作:
安裝與移除套件 • 套件管理程式擁有智慧化機制, 安裝軟體套件時會判斷相依性問題, 然後自動從網路下載必要的套件檔。同樣的, 套件管理員移除套件時也會按照相依性, 自動移除所有相關套件。所以使用這個工具, 即可避免使用 rpm指令 (請參考 17-3 節) 時, 經常會遇到套件相依性而傷透腦筋的狀況。 • 關於套件相依性的說明, 請參考 17-15 頁。
Fedora 套件儲藏庫 • 除了光碟片內的軟體以外, Fedora 官方網站也有一個套件儲藏庫, 包含了許多光碟內放不下的軟體, 如 ClamAV 防毒軟體、snort 入侵偵測程式、xmms 音樂播放軟體...等。 • 這些增強性套件也都可以藉由套件管理員, 統一透過網路來安裝與移除。所以 Fedora 具備了相當強大的擴充性, 功能不會只侷限於光碟內的軟體。
17-1-3 搜尋軟體套件 • 如果您想要尋找 Fedora 目前有什麼套件可用, 或是已經安裝哪些與某方面相關的套件, 請如下使用關鍵字進行搜尋:
17-1-4 列出已安裝、可用或是所有套件 • 若要列出系統中已安裝與可安裝套件, 或是想要列出所有套件, 可在加入或移除軟體視窗中執行『過濾條件/已安裝』 命令如下操作:
17-2 使用套件升級程式線上更新套件 • 在正式版推出後, 有時仍會發現某些套件無法正常執行, 甚至有安全上的疑慮, 因此官方網站會不斷地釋出修正後的套件。 • 本發行版內建了好用的套件升級程式, 會自動偵測並可線上更新系統中的套件。與 17-1 節介紹的套件管理程式相同, 套件升級程式也具備了智慧化機制, 會依照相依性自動下載並更新相關套件。 • 因為套件升級程式會從網路下載更新相關資訊與套件檔案, 所以使用前必須先讓電腦連上網路。
使用套件升級程式線上更新套件 • 當您登入 X Window 後, 系統會自動偵測是否有需要更新的套件, 如果有更新的套件時, 會在畫面下方出現一個通知訊息, 您可以如下操作檢視更新: • 除了從通知訊息進行檢視之外, 您可以按概覽鈕, 切換到應用程式頁次的系統工具類別, 按軟體更新圖示檢視更新:
17-3 以 RPM 指令管理套件 • RPM 的全名是 Red Hat Package Manager, 它是由 Red Hat 公司所開發的一個開放性程式套件管理系統。由於 Red Hat 公司鼓勵其他開發廠商以此格式發行他們的軟體, 因此目前 RPM 除了可以在本 Linux 發行版上運作外, 也可以在許多其他的 Linux 發行版及 Unix 平台上執行。
17-3-1 rpm 指令概念說明 • 為了讓讀者易於區別, 底下我們將整個 RPM 套件管理系統簡稱為 RPM, 將管理 RPM 套件管理系統的程式稱為 rpm 程式或rpm 指令, 而將能夠被 rpm 程式處理的安裝套件稱為 RPM 套件。其關係可用下圖表示:
rpm 指令概念說明 • 使用 RPM 套件管理系統具有下列優點, 而這也是 RPM 套件管理系統的設計目標: • 易於安裝、升級與移除套件: • 安裝傳統 tar.gz 等格式的壓縮套件時, 必須先將其解開壓縮到一個目錄中 , 然後再執行安裝的程序。而各套件的安裝方式又有所差異, 有的要再編譯原始碼, 有的要指定安裝的參數, 實在頗為麻煩。RPM 套件則將安裝需要的設定項目準備好, 只要執行 rpm 指令, 就可以安裝、升級套件, 或移除已安裝的套件。
rpm 指令概念說明 • 有強大的查詢功能: • 透過 RPM 的組態資料庫, 我們可以查詢系統已安裝的套件;也可以查詢某個檔案是屬於哪個套件, 而此套件又來自何處。 • 能夠進行套件驗證: • RPM 提供套件驗證的功能, 您可藉以驗證是否誤刪了某個套件中的檔案。而且 RPM 在安裝時會保留原來的設定檔, 所以即使誤刪檔案, 重新安裝也不必擔心遺失原來的設定。
rpm 指令概念說明 • 支援套件以原始碼形式發行: • RPM 支援套件以原始碼的形式發行, 在 RPM 套件中能包含原始程式、更新程式 patch 及完整的建構指令。因此我們在取得一個程式的更新版時, 可以先看看程式的更新部分, 再採取適當的行動。 • 有興趣的讀者可至 www.rpm.org 取得更多有關 RPM 的資訊。
17-3-2 rpm 指令的操作方法 • RPM 套件通常以 xxx.rpm 的格式命名, 例如 rhviewer-3.10a-15.i386.rpm。其中包含了套件名稱 (rhviewer)、版本 (3.10a)、次版本 (14) 及平台 (i386), 不過並不是所有套件的作者都會根據這個格式來命名。 • rhviewer 與稍後的 rhpainter 僅是筆者舉例說明用, 事實上並沒有這個套件。 • 除了建構安裝套件外, rpm 指令具有 5 種基本的操作模式, 包含套件的:安裝、移除、升級、查詢及驗證。我們可以使用 rpm --help指令獲得完整的細節及參數:
rpm 指令的操作方法 • 讀者要注意的是:在安裝、移除及更新套件時, 必須取得 root 的權限, 而查詢及驗證套件時則不用。 • 您可以執行 man rpm指令, 觀看線上說明。
套件安裝 • 使用 rpm指令的安裝模式可以將套件內所有的元件放至系統中的正確路徑, 安裝套件的指令是:
套件安裝 • 以此指令安裝時, 會顯示套件的名稱 (不一定會與檔名相同), 並顯示 # 號以指示安裝程序正在進行中。 • rpm指令還能透過 FTP 或 HTTP 來進行遠距的套件安裝或查詢。使用方式與在本機上並無太大不同, 只要在檔案前加上適當的 URL 位址即可, 例如:
套件安裝 • 使用遠距安裝時, 建議使用 -h 參數, 可以幫助您確認安裝程序還在進行中。此外, 您還可以使用- - percent 參數來得知安裝進度的百分比。 • 在安裝套件時, 有時會出現要安裝的套件已經安裝過、某個檔案已被其他的套件安裝, 或是不同套件之間有相依性的問題, 以下分別詳細說明。
重複安裝套件 • 要重複安裝一個原本就已經安裝的套件時, rpm指令會顯示出類似下面的錯誤訊息: • 如果您確定要安裝此套件, 可以在命令列中加上--replacepkgs 參數, 使 rpm指令忽略錯誤訊息, 取代原有套件:
套件中某個檔案已被其他套件安裝 • 如果要安裝的套件中, 有某個檔案已被其他套件安裝於系統中, 則 rpm指令會顯示錯誤的訊息: • 要 rpm指令忽略此訊息直接取代舊檔案, 可使用 --replacefiles 參數:
不同套件之間的相依性 • 有些 RPM 套件會與其他的 RPM 套件有相依性, 這些套件通常要別的套件已先安裝於系統中才能正常執行。當您試圖要安裝這類 RPM 套件, 則 rpm指令會列出其所需的相關套件:
不同套件之間的相依性 • 比較好的解決方式是將其所需要的套件先安裝好, 以上例來說, 先安裝 rhviewer 套件之後, 再安裝 rhpainter 套件即可。此外, 也可以加上 --nodeps 參數來略過相依性檢查, 不過這樣強行安裝的結果可能會使套件不能正常執行。
套件移除 • 移除模式會將指定的套件元件全部刪除, 但會保留已更改過的設定檔。移除 RPM 套件的指令如下: • 讀者要注意的是, 這裡必須使用套件的名稱 "rhviewer" 或 "rhviewer-3.10a-15", 而不是使用當初安裝套件時所用的檔名 "rhviewer-3.10a-15.i386.rpm"。
套件移除 • 如果在移除套件時出現類似下列訊息, 代表移除這個套件會破壞其他套件的套件相依性: • 此時您必須先移除 rhpainter 套件後, 才能接著移除 rhviewer。或者您也可以使用 --nodeps 參數, 即可忽略此訊息而強行移除套件, 不過這樣可能會導致其他套件無法正常執行。
套件升級 • 升級模式會安裝使用者所指定的更新版本, 並移除已安裝於系統中的相同套件。升級套件的指令如下: • 升級模式的運作方式是將系統中的舊版本移除, 再安裝新版本。您也可以使用升級模式取代安裝模式來安裝新版本。因為在沒有舊版本的情況下, 使用-U 這個參數仍可正常運作。
套件升級 • 以 rpm指令升級套件時, 如果有舊版的套件存在於系統中, 則會看到如下的訊息: • 這是 rpm指令特有的設定檔智慧型升級訊息。因為有些套件的設定檔格式在不同版本間並不相容, 因此 rpm指令會將舊的設定檔加 .rpmsave 副檔名儲存, 並安裝新的設定檔, 您可以在套件安裝後立即比較新舊設定檔, 以決定是否要換回原來的設定。
套件升級 • 升級模式下的錯誤除了包含移除與安裝模式下的錯誤外, 還有一個比較特別的是, 當使用者試圖安裝一個比現有套件更舊的套件時, 會顯示如下訊息: • 若決心要將套件 "升級" 到較舊的版本, 可使用 --oldpackage 參數:
套件更新 • 前面所講rpm指令的 5 種工作模式中, 並不包含更新模式, 主要是因為更新模式可算是升級模式的另一種使用方式。 • 更新套件的指令如下:
套件更新 • rpm指令在更新模式下會檢查在指令列中所指定的套件是否比系統中原有的套件來得新。如果情況屬實, rpm指令會自動更新指定的套件。 • 反之, 若系統中並沒有指定套件的較舊版本, rpm指令並不會安裝此套件。而在升級模式下, 不管系統中是否有較舊的版本, rpm指令都會安裝指定的套件。
套件更新 • 如果您從網路下載了許多的套件, 且想更新所有已經安裝在系統中的套件 (未曾安裝的套件則不安裝), 可以執行以下指令: • 如此 RPM 就會為我們更新所有系統中已存在的套件。
套件查詢 • 想要取得 RPM 套件的相關資訊可以使用查詢模式, 使用 -q 參數可查詢一個已安裝的套件內容。如執行 rpm -q rhviewer指令將顯示 rhviewer 套件的套件名稱、版本及次版本: