1 / 64

軟體的安裝升級與移除

軟體的安裝升級與移除. Linux 軟體安裝簡介 原始碼安裝 以 RPM 指令管理套件 使用 Yum 線上安裝、移除與更新套件 Linux 軟體下載網站. Linux 軟體安裝簡介. 原始碼壓縮檔 RPM 封裝檔. 原始碼壓縮檔. 優點 ( 彈性及自由化 ): 可自行修改原始碼 可以自訂安裝的設定 缺點 : 需要知道如何編譯及安裝 需要編譯的相關軟體 安裝後查詢不易 難度較高. RPM 封裝檔. 優點 不需安裝編譯的相關軟體 簡單、方便升級 提供套件查詢、驗證功能 缺點 比較原始碼的安裝方式,較缺乏彈性. 原始碼安裝.

mura
Download Presentation

軟體的安裝升級與移除

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 軟體的安裝升級與移除 Linux軟體安裝簡介 原始碼安裝 以 RPM 指令管理套件 使用 Yum 線上安裝、移除與更新套件 Linux 軟體下載網站

  2. Linux軟體安裝簡介 原始碼壓縮檔 RPM封裝檔

  3. 原始碼壓縮檔 優點(彈性及自由化): 可自行修改原始碼 可以自訂安裝的設定 缺點: 需要知道如何編譯及安裝 需要編譯的相關軟體 安裝後查詢不易 難度較高

  4. RPM封裝檔 優點 不需安裝編譯的相關軟體 簡單、方便升級 提供套件查詢、驗證功能 缺點 比較原始碼的安裝方式,較缺乏彈性

  5. 原始碼安裝 下載的檔案解開之後,有下列 2 種檔案格式: 原始碼格式:軟體以原始碼方式散播,通常以 C 或 C++ 等程式語言寫成。您需要安裝 gcc 及 make 等套件才可編譯程式。至於編譯及安裝的方式,請參考該程式目錄下的 README 或 INSTALL 說明檔。

  6. 原始碼安裝 執行檔格式:軟體以執行檔 (二進位) 的方式散播,因此下載時,請注意您的作業系統版本及 CPU 種類。以 Apache 軟體為例,除了提供原始碼下載之外,也提供了執行檔下載。執行檔以 CPU 區分成 i686 (IBM 相容 PC)、PowerPC (如麥金塔)... ;而 Linux 作業系統的類別中,分別對 Red Hat Linux 及 Slackware Linux 做了最佳化。至於安裝的方式,請參考該程式目錄下的說明檔。

  7. 原始碼安裝 以下載 ntp 的原始碼為例,說明如何編譯及安裝。 下載網址 http://linux.vbird.org/linux_basic/0520source/ntp-4.2.4p7.tar.gz

  8. 原始碼安裝 瀏覽 README 說明檔之後,我們得知編譯及安裝步驟分為下列 3 部分 (大致上原始碼的安裝程式都是如此,但請仍以說明檔為主):

  9. 原始碼安裝 1. ./configure:執行程式目錄下的指令稿,偵測目前系統的環境,及產生編譯程式時所需的相關設定檔。若加上 --prefix 參數可以指定要將程式安裝在何處。 2. make:編譯程式。 3. make install:安裝編譯好的程式,需以 root 身份執行。

  10. 原始碼安裝 執行以下指令編譯及安裝:

  11. 以 RPM 指令管理套件 RPM 的全名是 Red Hat Package Manager,它是由 Red Hat 公司所開發的一個開放性程式套件管理系統。 由於 Red Hat 公司鼓勵其他開發廠商以此格式發行他們的軟體,因此目前 RPM 除了可以在本 Linux 發行版上運作外,也可以在許多其他的 Linux 發行版及 Unix 平台上執行。

  12. rpm 指令概念說明 為了讓易於區別,底下我們將整個 RPM 套件管理系統簡稱為 RPM,將管理 RPM 套件管理系統的程式稱為 rpm 程式或 rpm 指令,而將能夠被 rpm 程式處理的安裝套件稱為 RPM 套件。其關係可用下圖表示:

  13. rpm 指令概念說明

  14. rpm 指令概念說明 使用 RPM 套件管理系統具有下列優點,而這也是 RPM 套件管理系統的設計目標: 易於安裝、升級與移除套件 有強大的查詢功能 能夠進行套件驗證 支援套件以原始碼形式發行

  15. rpm 指令的操作方法 RPM 套件通常以 xxx.rpm 的格式命名,例如 rhviewer-3.10a-13.i386.rpm。其中包含了套件名稱 (rhviewer)、版本 (3.10a)、次版本 (13) 及平台 (i386),不過並不是所有套件的作者都會根據這個格式來命名。 除了建構安裝套件外,rpm 指令具有 5 種基本的操作模式,包含套件的:安裝、移除、升級、查詢及驗證。我們可以使用 rpm --help指令獲得完整的細節及參數:

  16. rpm 指令的操作方法 在安裝、移除及更新套件時,必須取得 root 的權限,而查詢及驗證套件時則不用。

  17. 套件安裝 使用 rpm指令的安裝模式可以將套件內所有的元件放至系統中的正確路徑,安裝套件的指令是: 以此指令安裝時,會顯示套件的名稱 (不一定會與檔名相同),並顯示 # 號以指示安裝程序正在進行中。

  18. 套件安裝 rpm 指令還能透過 FTP 或 HTTP 來進行遠距的套件安裝或查詢。使用方式與在本機上並無太大不同,只要在檔案前加上適當的 URL 位址即可,例如: 在安裝套件時,有時會出現要安裝的套件已經安裝過、某個檔案已被其他的套件安裝,或是不同套件之間有相依性的問題,以下分別詳細說明。

  19. 重複安裝套件 要重複安裝一個原本就已經安裝的套件時,rpm 指令會顯示出類似下面的錯誤訊息: 如果您確定要安裝此套件,可以在命令列中加上 --replacepkgs 參數,使rpm 指令忽略錯誤訊息,取代原有套件:

  20. 套件中某個檔案已被其他套件安裝 如果要安裝的套件中,有某個檔案已被其他套件安裝於系統中,則 rpm指令會顯示錯誤的訊息: 要 rpm指令忽略此訊息直接取代舊檔案,可使用 --replacefiles 參數:

  21. 不同套件之間的相依性 有些 RPM 套件會與其他的 RPM 套件有相依性,這些套件通常要別的套件已先安裝於系統中才能正常執行。當您試圖要安裝這類 RPM 套件,則 rpm指令會列出其所需的相關套件:

  22. 不同套件之間的相依性 比較好的解決方式是將其所需要的套件先安裝好,以上例來說,先安裝rhviewer 套件之後,再安裝 rhpainter 套件即可。此外,也可以加上 --nodeps 參數來略過相依性檢查,不過這樣強行安裝的結果可能會使套件不能正常執行。

  23. 套件移除 移除模式會將指定的套件元件全部刪除,但會保留已更改過的設定檔。移除 RPM 套件的指令如下: 要注意的是,這裡必須使用套件的名稱 "rhviewer" 或 "rhviewer-3.10a-13",而不是使用當初安裝套件時所用的檔名 "rhviewer-3.10a-13.i386.rpm"。

  24. 套件移除 如果在移除套件時出現類似下列訊息,代表移除套件會破壞其他套件的套件相依性: 此時您必須先移除 rhpainter 套件後,才能接著移除 rhviewer。或者您也可以使用 --nodeps 參數,即可忽略此訊息而強行移除套件,不過這樣可能會導致其他套件無法正常執行。

  25. 套件升級 升級模式會安裝使用者所指定的更新版本,並移除已安裝於系統中的相同套件。升級套件的指令如下: 升級模式的運作方式是將系統中的舊版本移除,再安裝新版本。您也可以使用升級模式取代安裝模式來安裝新版本。因為在沒有舊版本的情況下,使用 -U 這個參數仍可正常運作。

  26. 套件升級 以rpm 指令升級套件時,如果有舊版的套件存在於系統中,則會看到如下的訊息: 這是 rpm指令特有的設定檔智慧型升級訊息。因為有些套件的設定檔格式在不同版本間並不相容,因此 rpm指令會將舊的設定檔加 .rpmsave 副檔名儲存,並安裝新的設定檔,您可以在套件安裝後立即比較新舊設定檔,以決定是否要換回原來的設定。

  27. 套件升級 升級模式下的錯誤除了包含移除與安裝模式下的錯誤外,還有一個比較特別的是,當使用者試圖安裝一個比現有套件更舊的套件時,會顯示如下訊息: 若決心要將套件 "升級" 到較舊的版本,可使用 --oldpackage 參數:

  28. 套件更新 前面所講 rpm指令的 5 種工作模式中,並不包含更新模式,主要是因為更新模式可算是升級模式的另一種使用方式。更新套件的指令如下: rpm 指令在更新模式下會檢查在指令列中所指定的套件是否比系統中原有的套件來得新。如果情況屬實,rpm指令會自動更新指定套件。反之,若系統中並沒有指定套件的較舊版本,rpm指令並不會安裝此套件。

  29. 套件更新 而在升級模式下,不管系統中是否有較舊的版本,rpm指令都會安裝指定的套件。 如果您從網路下載了許多的套件,且想更新所有已經安裝在系統中的套件 (未曾安裝的套件則不安裝),可以執行以下指令: 如此 RPM 就會為我們更新所有系統中已存在的套件。

  30. 套件查詢 想要取得 RPM 套件的相關資訊可以使用查詢模式,使用 -q 參數可查詢一個已安裝的套件內容。如執行 rpm -q rhviewer指令將顯示 rhviewer 套件的套件名稱、版本及次版本:

  31. 套件查詢 在查詢模式中可用套件指定參數配合查詢: 也可以再加上資訊選擇參數來決定所要顯示的資訊:

  32. 套件查詢

  33. 套件查詢 我們可以結合 -qi 參數得到一般性套件資訊: 對於顯示檔案列表的 -l 參數,還可加上 -v 參數以獲得較完整的資訊,其輸出格式類似 ls -l 指令的結果。

  34. 套件驗證 要驗證目前系統中的檔案是否與原始套件相符,可使用驗證模式。-V 參數可用來驗證套件的正確性。驗證模式會比較原始套件資訊及目前系統中的檔案資訊,包括每個檔案的大小、MD5 (一種加密方式) checksum、權限、型別、擁有者及所屬的檔案群組。 在驗證模式中也可以使用上一節所提到的套件指定參數來指定特別的套件。例如:

  35. 套件驗證 在上例中前 3 個指令會比較 RPM 組態資料庫與目前系統中的檔案;而第4 個指令則是比較原始 .rpm 檔的內容與目前系統中的檔案,適用於 RPM 組態資料庫毀損或遭人修改的狀況下。

  36. 套件驗證 在驗證後沒有任何輸出,表示套件正常。如有不一致的地方,RPM 會顯示錯誤碼。下表列出可能的錯誤碼及其代表的意義:

  37. rpm 指令常用的查詢實例 這裡舉幾個例子,加深您對 rpm指令的了解: 查詢套件所安裝的檔案:安裝某個套件之後,常常困擾人的是,不曉得這個套件究竟被裝到哪裡去。此時只要執行 rpm -ql套件名稱 指令即可,例如:

  38. rpm 指令常用的查詢實例 查詢是否刪除套件檔案:當您誤刪了某些檔案,又不知道到底刪掉些什麼時,只要執行 rpm -Va指令即可對系統做完整的套件驗證,得知是否刪除了某些套件檔案。 查詢檔案屬於哪個套件:遇到一些不認得的檔案,想要知道這個檔案是否屬於某個套件,可執行 rpm -qf /完整路徑/檔案名稱 指令查詢。 驗證套件的正確性:上兩個例子可以結合使用,例如您懷疑某個程式 (如 vi) 有問題,而想對該程式進行驗證,可以執行 rpm -Vf /bin/vi指令。

  39. 查詢套件的相關說明文件:想要取得某個程式套件 (如 ispell) 的更多資訊,可執行 rpm -qdf /usr/bin/ispell以得知這個程式所屬的說明文件有那些,其輸出如下: rpm 指令常用的查詢實例

  40. 如何解決套件相依性及 查詢未安裝檔案所屬套件 若您安裝此 Linux 發行版時,不是選擇安裝所有的套件;或是自行從網路下載了各種套件 ,在安裝這些套件時,常常會遇到一些相依性的問題。例如欲安裝書附光碟中的 PHP 套件,可能會遇到以下狀況:

  41. 如何解決套件相依性及 查詢未安裝檔案所屬套件 為了正確安裝 PHP 套件,必須先安裝缺少的檔案,但是要怎麼知道安裝哪些套件才會有這 2 個檔案呢?您可至 http://rpmfind.net/ 分別搜尋 “libcurl.so.3”、“php-pear” 這些關鍵字,由搜尋結果可以得知它們分別屬於 curl、phppear 套件。 如此您只要由光碟或網站中取得此 2 個套件,先行安裝即可。不過,在安裝這些套件的過程中,可能還會遇到其他套件相依性的問題。此時,同樣請依此方法解決。

  42. 如何解決套件相依性及 查詢未安裝檔案所屬套件 有時候兩個套件之間可能會發生互相需要的情形,例如前面安裝 PHP 套件時,rpm 指令要求先行安裝 php-pear 套件,可是當安裝 php-pear 套件,卻又顯示需要 PHP 套件:

  43. 如何解決套件相依性及 查詢未安裝檔案所屬套件 這樣不就發生無解的無限迴圈嗎?此時請將這兩個 RPM 套件檔放在同一個目錄內,如下使用萬用字元同時安裝即可:

  44. 使用 Yum 線上安裝、移除與更新套件 Yum (Yellow dog Updater,Modified) 為此 Linux 發行版內建的強大套件管理工具,具有線上安裝、移除、與更新套件的功能,其最為人稱道的特點在於它能自動判斷並解決 RPM 套件的相依性問題。 Yum 可說是全自動化的套件管理工具,可以幫我們省下不少安裝與更新套件的時間。

  45. 變更 Yum 的套件儲藏庫 Yum 預設使用的官方網站為套件的儲藏庫 (Repository),當您想要使用 yum 指令安裝某個套件時,只要指定套件名稱,Yum 就會自動到儲藏庫下載該套件檔,並且會同時尋找其他需要的檔案一起下載,然後再進行安裝。 由於 CentOS 的官方網站位於美國,其他國家使用者連線時的網路速度可能不佳,加上全世界可能同時有上千台主機需要下載檔案,所以網路塞車的情形大概是無法避免的。

  46. 變更 Yum 的套件儲藏庫 建議將儲藏庫改為距離您最近的映射站,增加檔案下載的效率,同時也能減少官方網站的負荷。 在此將 CentOS 的套件儲藏庫位置,指定到台灣的映射站。首先開啟 /etc/yum.repos.d/CentOS-Base.repo 檔並如下修改:

  47. 變更 Yum 的套件儲藏庫 [base] 1.將mirrorlist 那段前面加上 # 註解起來(預設的國外伺服器) #mirrorlist=xxxxxxxxxxxxxxxxxxx #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 2.將baseurl,gpgkey 修改成下面這樣 baseurl=http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/baseurl=http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/updates/$basearch/ gpgkey=http://ftp.ncnu.edu.tw/Linux/CentOS/RPM-GPG-KEY-CentOS-6 [update] 1.將mirrorlist 那段前面加上 # 註解起來(預設的國外伺服器) #mirrorlist=xxxxxxxxxxxxxxxxxxx #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 2.將baseurl,gpgkey 修改成下面這樣 baseurl=http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/baseurl=http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/updates/$basearch/ gpgkey=http://ftp.ncnu.edu.tw/Linux/CentOS/RPM-GPG-KEY-CentOS-6 .執行 # yum update  即可開始使用ftp.ncnu.edu.tw的yum來昇級

  48. 使用 Yum 線上安裝套件 使用 yum指令安裝套件的語法如下: 以安裝 PHP 套件為例,為您示範yum 指令的線上安裝功能:

  49. 使用 Yum 線上安裝套件 ←安裝 php 套件

  50. 使用 Yum 線上安裝套件

More Related