軟體的安裝升級與移除

64
1 軟軟軟軟軟軟軟軟 Linux 軟 軟軟軟軟 軟軟軟軟軟 軟 RPM 軟軟軟軟軟軟 軟軟 Yum 軟軟軟軟 軟軟軟軟軟軟軟 Linux 軟 軟軟軟軟

Upload: mura

Post on 05-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 軟體的安裝升級與移除

1

軟體的安裝升級與移除

Linux 軟體安裝簡介原始碼安裝以 RPM 指令管理套件使用 Yum 線上安裝、移除與更新套

件Linux 軟體下載網站

Page 2: 軟體的安裝升級與移除

2

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

Page 3: 軟體的安裝升級與移除

3

原始碼壓縮檔優點 ( 彈性及自由化 ):

◦可自行修改原始碼◦可以自訂安裝的設定

缺點 :◦需要知道如何編譯及安裝◦需要編譯的相關軟體◦安裝後查詢不易◦難度較高

Page 4: 軟體的安裝升級與移除

4

RPM 封裝檔優點

◦不需安裝編譯的相關軟體◦簡單、方便升級◦提供套件查詢、驗證功能

缺點◦比較原始碼的安裝方式,較缺乏彈性

Page 5: 軟體的安裝升級與移除

5

原始碼安裝下載的檔案解開之後,有下列 2 種檔

案格式:◦原始碼格式:軟體以原始碼方式散播,通常

以 C 或 C++ 等程式語言寫成。您需要安裝 gcc 及 make 等套件才可編譯程式。至於編譯及安裝的方式,請參考該程式目錄下的 README 或 INSTALL 說明檔。

Page 6: 軟體的安裝升級與移除

6

原始碼安裝◦執行檔格式:軟體以執行檔 ( 二進位 ) 的方式

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

Page 7: 軟體的安裝升級與移除

7

原始碼安裝以下載 ntp 的原始碼為例,說明如何

編譯及安裝。下載網址

http://linux.vbird.org/linux_basic/0520source/ntp-4.2.4p7.tar.gz

Page 8: 軟體的安裝升級與移除

8

原始碼安裝

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

Page 9: 軟體的安裝升級與移除

9

原始碼安裝1. ./configure :執行程式目錄下的指

令稿,偵測目前系統的環境,及產生編譯程式時所需的相關設定檔。若加上 --prefix 參數可以指定要將程式安裝在何處。

2. make :編譯程式。3. make install :安裝編譯好的程式,

需以 root 身份執行。

Page 10: 軟體的安裝升級與移除

10

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

Page 11: 軟體的安裝升級與移除

11

以 RPM 指令管理套件RPM 的全名是 Red Hat Package

Manager ,它是由 Red Hat 公司所開發的一個開放性程式套件管理系統。

由於 Red Hat 公司鼓勵其他開發廠商以此格式發行他們的軟體,因此目前 RPM 除了可以在本 Linux 發行版上運作外,也可以在許多其他的 Linux 發行版及 Unix 平台上執行。

Page 12: 軟體的安裝升級與移除

12

rpm 指令概念說明為了讓易於區別,底下我們將整個

RPM 套件管理系統簡稱為 RPM ,將管理 RPM 套件管理系統的程式稱為 rpm 程式或 rpm 指令,而將能夠被 rpm 程式處理的安裝套件稱為 RPM 套件。其關係可用下圖表示:

Page 13: 軟體的安裝升級與移除

13

rpm 指令概念說明

Page 14: 軟體的安裝升級與移除

14

rpm 指令概念說明 使用 RPM 套件管理系統具有下列優

點,而這也是 RPM 套件管理系統的設計目標:

1. 易於安裝、升級與移除套件2. 有強大的查詢功能3. 能夠進行套件驗證4. 支援套件以原始碼形式發行

Page 15: 軟體的安裝升級與移除

15

rpm 指令的操作方法RPM 套件通常以 xxx.rpm 的格式命名,

例如 rhviewer-3.10a-13.i386.rpm 。其中包含了套件名稱 (rhviewer) 、版本 (3.10a) 、次版本 (13) 及平台 (i386) ,不過並不是所有套件的作者都會根據這個格式來命名。

除了建構安裝套件外, rpm 指令具有 5 種基本的操作模式,包含套件的:安裝、移除、升級、查詢及驗證。我們可以使用 rpm --help 指令獲得完整的細節及參數:

Page 16: 軟體的安裝升級與移除

16

rpm 指令的操作方法

在安裝、移除及更新套件時,必須取得 root 的權限,而查詢及驗證套件時則不用。

Page 17: 軟體的安裝升級與移除

17

套件安裝使用 rpm 指令的安裝模式可以將套件內所有的元件放至系統中的正確路徑,安裝套件的指令是:

以此指令安裝時,會顯示套件的名稱 ( 不一定會與檔名相同 ) ,並顯示 # 號以指示安裝程序正在進行中。

Page 18: 軟體的安裝升級與移除

18

套件安裝rpm 指令還能透過 FTP 或 HTTP 來進行遠距的套件安裝或查詢。使用方式與在本機上並無太大不同,只要在檔案前加上適當的 URL 位址即可,例如:

在安裝套件時,有時會出現要安裝的套件已經安裝過、某個檔案已被其他的套件安裝,或是不同套件之間有相依性的問題,以下分別詳細說明。

Page 19: 軟體的安裝升級與移除

19

重複安裝套件要重複安裝一個原本就已經安裝的套件

時, rpm 指令會顯示出類似下面的錯誤訊息:

如果您確定要安裝此套件,可以在命令列中加上 --replacepkgs 參數,使 rpm 指令忽略錯誤訊息,取代原有套件:

Page 20: 軟體的安裝升級與移除

20

套件中某個檔案已被其他套件安裝

如果要安裝的套件中,有某個檔案已被其他套件安裝於系統中,則 rpm 指令會顯示錯誤的訊息:

要 rpm 指令忽略此訊息直接取代舊檔案,可使用 --replacefiles 參數:

Page 21: 軟體的安裝升級與移除

21

不同套件之間的相依性有些 RPM 套件會與其他的 RPM 套

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

Page 22: 軟體的安裝升級與移除

22

不同套件之間的相依性比較好的解決方式是將其所需要的套

件先安裝好,以上例來說,先安裝rhviewer 套件之後,再安裝 rhpainter 套件即可。此外,也可以加上 --nodeps 參數來略過相依性檢查,不過這樣強行安裝的結果可能會使套件不能正常執行。

Page 23: 軟體的安裝升級與移除

23

套件移除移除模式會將指定的套件元件全部刪

除,但會保留已更改過的設定檔。移除 RPM 套件的指令如下:

要注意的是,這裡必須使用套件的名稱 "rhviewer" 或 "rhviewer-3.10a-13" ,而不是使用當初安裝套件時所用的檔名 "rhviewer-3.10a-13.i386.rpm" 。

Page 24: 軟體的安裝升級與移除

24

套件移除如果在移除套件時出現類似下列訊息,代表移除套件會破壞其他套件的套件相依性:

此時您必須先移除 rhpainter 套件後,才能接著移除 rhviewer 。或者您也可以使用 --nodeps 參數,即可忽略此訊息而強行移除套件,不過這樣可能會導致其他套件無法正常執行。

Page 25: 軟體的安裝升級與移除

25

套件升級升級模式會安裝使用者所指定的更新

版本,並移除已安裝於系統中的相同套件。升級套件的指令如下:

升級模式的運作方式是將系統中的舊版本移除,再安裝新版本。您也可以使用升級模式取代安裝模式來安裝新版本。因為在沒有舊版本的情況下,使用 -U 這個參數仍可正常運作。

Page 26: 軟體的安裝升級與移除

26

套件升級以 rpm 指令升級套件時,如果有舊

版的套件存在於系統中,則會看到如下的訊息:

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

Page 27: 軟體的安裝升級與移除

27

套件升級升級模式下的錯誤除了包含移除與安裝模式下的錯誤外,還有一個比較特別的是,當使用者試圖安裝一個比現有套件更舊的套件時,會顯示如下訊息:

若決心要將套件 "升級 " 到較舊的版本,可使用 --oldpackage 參數:

Page 28: 軟體的安裝升級與移除

28

套件更新前面所講 rpm 指令的 5 種工作模式中,並

不包含更新模式,主要是因為更新模式可算是升級模式的另一種使用方式。更新套件的指令如下:

rpm 指令在更新模式下會檢查在指令列中所指定的套件是否比系統中原有的套件來得新。如果情況屬實, rpm 指令會自動更新指定套件。反之,若系統中並沒有指定套件的較舊版本, rpm 指令並不會安裝此套件。

Page 29: 軟體的安裝升級與移除

29

套件更新而在升級模式下,不管系統中是否有較舊的版本, rpm 指令都會安裝指定的套件。

如果您從網路下載了許多的套件,且想更新所有已經安裝在系統中的套件 (未曾安裝的套件則不安裝 ) ,可以執行以下指令:

如此 RPM 就會為我們更新所有系統中已存在的套件。

Page 30: 軟體的安裝升級與移除

30

套件查詢想要取得 RPM 套件的相關資訊可以

使用查詢模式,使用 -q 參數可查詢一個已安裝的套件內容。如執行 rpm -q rhviewer 指令將顯示 rhviewer 套件的套件名稱、版本及次版本:

Page 31: 軟體的安裝升級與移除

31

套件查詢

在查詢模式中可用套件指定參數配合查詢:

也可以再加上資訊選擇參數來決定所要顯示的資訊:

Page 32: 軟體的安裝升級與移除

32

套件查詢

Page 33: 軟體的安裝升級與移除

33

套件查詢我們可以結合 -qi 參數得到一般性套件資訊:

對於顯示檔案列表的 -l 參數,還可加上 -v 參數以獲得較完整的資訊,其輸出格式類似 ls -l 指令的結果。

Page 34: 軟體的安裝升級與移除

34

套件驗證要驗證目前系統中的檔案是否與原始

套件相符,可使用驗證模式。 -V 參數可用來驗證套件的正確性。驗證模式會比較原始套件資訊及目前系統中的檔案資訊,包括每個檔案的大小、 MD5 ( 一種加密方式 ) checksum 、權限、型別、擁有者及所屬的檔案群組。

在驗證模式中也可以使用上一節所提到的套件指定參數來指定特別的套件。例如:

Page 35: 軟體的安裝升級與移除

35

套件驗證

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

Page 36: 軟體的安裝升級與移除

36

套件驗證在驗證後沒有任何輸出,表示套件正

常。如有不一致的地方, RPM 會顯示錯誤碼。下表列出可能的錯誤碼及其代表的意義:

Page 37: 軟體的安裝升級與移除

37

rpm 指令常用的查詢實例這裡舉幾個例子,加深您對 rpm 指令

的了解:查詢套件所安裝的檔案:安裝某個套

件之後,常常困擾人的是,不曉得這個套件究竟被裝到哪裡去。此時只要執行 rpm -ql 套件名稱 指令即可,例如:

Page 38: 軟體的安裝升級與移除

38

rpm 指令常用的查詢實例查詢是否刪除套件檔案:當您誤刪了某些檔案,又不知道到底刪掉些什麼時,只要執行 rpm -Va 指令即可對系統做完整的套件驗證,得知是否刪除了某些套件檔案。

查詢檔案屬於哪個套件:遇到一些不認得的檔案,想要知道這個檔案是否屬於某個套件,可執行 rpm -qf / 完整路徑 / 檔案名稱 指令查詢。

驗證套件的正確性:上兩個例子可以結合使用,例如您懷疑某個程式 ( 如 vi) 有問題,而想對該程式進行驗證,可以執行 rpm -Vf /bin/vi 指令。

Page 39: 軟體的安裝升級與移除

39

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

rpm 指令常用的查詢實例

Page 40: 軟體的安裝升級與移除

40

如何解決套件相依性及 查詢未安裝檔案所屬套件

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

Page 41: 軟體的安裝升級與移除

41

如何解決套件相依性及 查詢未安裝檔案所屬套件為了正確安裝 PHP 套件,必須先安裝缺少的

檔案,但是要怎麼知道安裝哪些套件才會有這 2 個檔案呢?您可至 http://rpmfind.net/ 分別搜尋 “ libcurl.so.3” 、“ php-pear” 這些關鍵字,由搜尋結果可以得知它們分別屬於 curl 、 phppear 套件。

如此您只要由光碟或網站中取得此 2 個套件,先行安裝即可。不過,在安裝這些套件的過程中,可能還會遇到其他套件相依性的問題。此時,同樣請依此方法解決。

Page 42: 軟體的安裝升級與移除

42

如何解決套件相依性及 查詢未安裝檔案所屬套件有時候兩個套件之間可能會發生互相

需要的情形,例如前面安裝 PHP 套件時, rpm 指令要求先行安裝 php-pear 套件,可是當安裝 php-pear 套件,卻又顯示需要 PHP 套件:

Page 43: 軟體的安裝升級與移除

43

如何解決套件相依性及 查詢未安裝檔案所屬套件這樣不就發生無解的無限迴圈嗎?此

時請將這兩個 RPM 套件檔放在同一個目錄內,如下使用萬用字元同時安裝即可:

Page 44: 軟體的安裝升級與移除

44

使用 Yum 線上安裝、移除與更新套件

Yum (Yellow dog Updater , Modified) 為此 Linux 發行版內建的強大套件管理工具,具有線上安裝、移除、與更新套件的功能,其最為人稱道的特點在於它能自動判斷並解決 RPM 套件的相依性問題。

Yum 可說是全自動化的套件管理工具,可以幫我們省下不少安裝與更新套件的時間。

Page 45: 軟體的安裝升級與移除

45

變更 Yum 的套件儲藏庫Yum 預設使用的官方網站為

套件的儲藏庫 (Repository) ,當您想要使用 yum 指令安裝某個套件時,只要指定套件名稱, Yum 就會自動到儲藏庫下載該套件檔,並且會同時尋找其他需要的檔案一起下載,然後再進行安裝。

由於 CentOS 的官方網站位於美國,其他國家使用者連線時的網路速度可能不佳,加上全世界可能同時有上千台主機需要下載檔案,所以網路塞車的情形大概是無法避免的。

Page 46: 軟體的安裝升級與移除

46

變更 Yum 的套件儲藏庫建議將儲藏庫改為距離您最近的映射

站,增加檔案下載的效率,同時也能減少官方網站的負荷。

在此將 CentOS 的套件儲藏庫位置,指定到台灣的映射站。首先開啟 /etc/yum.repos.d/CentOS-Base.repo 檔並如下修改:

Page 47: 軟體的安裝升級與移除

47

變更 Yum 的套件儲藏庫[base]1. 將 mirrorlist 那段前面加上 # 註解起來 (預設的國外伺服器 )#mirrorlist=xxxxxxxxxxxxxxxxxxx#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-62. 將 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-62. 將 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 來昇級

Page 48: 軟體的安裝升級與移除

48

使用 Yum 線上安裝套件使用 yum 指令安裝套件的語法如下:

以安裝 PHP 套件為例,為您示範 yum 指令的線上安裝功能:

Page 49: 軟體的安裝升級與移除

49

使用 Yum 線上安裝套件

←安裝 php 套件

Page 50: 軟體的安裝升級與移除

50

使用 Yum 線上安裝套件

Page 51: 軟體的安裝升級與移除

51

使用 Yum 線上安裝套件

Page 52: 軟體的安裝升級與移除

52

使用 Yum 線上安裝套件

使用 yum 指令安裝套件是不是很輕鬆又簡單呢?

Page 53: 軟體的安裝升級與移除

53

使用 Yum 移除套件使用 yum 指令移除套件的語法如下:

以移除 httpd 套件為例,為您示範 yum 指令移除套件的功能:

Page 54: 軟體的安裝升級與移除

54

使用 Yum 移除套件

Page 55: 軟體的安裝升級與移除

55

使用 Yum 移除套件使用 yum 指令移除套件和安裝套件

一樣輕鬆簡單。如果使用 rpm 指令,要手動先行移除 10 個套件,然後才能移除 httpd 套件,兩者的效率有很大的差別。

Page 56: 軟體的安裝升級與移除

56

使用 Yum 查詢與搜尋套件使用 yum 指令時只需要指定名稱便

可以安裝套件,不過要如何知道有哪些套件可以安裝呢?如果您要查詢目前系統未安裝,但是儲藏庫內有的套件,請如下操作:

Page 57: 軟體的安裝升級與移除

57

使用 Yum 查詢與搜尋套件如果您想要查詢該套件的介紹時,則

執行 yum info 套件名稱 即可觀看套件介紹。

當您不清楚套件名稱時,可以使用關鍵字搜尋套件,語法為 yum search 關鍵字。例如要想尋找與 DNS 相關的套件,便可執行 yum search DNS 指令搜尋。

Page 58: 軟體的安裝升級與移除

58

使用 Yum 線上更新套件yum 指令更新套件的語法為:

在更新套件前,可執行下面指令檢查目前系統中是否有需要更新的套件:

Page 59: 軟體的安裝升級與移除

59

使用 Yum 線上更新套件看來已經有很多套件需要更新了,以

更新 bind 套件為例,為您解說如何更新套件:

Page 60: 軟體的安裝升級與移除

60

使用 Yum 線上更新套件

Page 61: 軟體的安裝升級與移除

61

使用 Yum 線上更新套件若您想要一次更新系統內所有套件,則

可以執行下面指令:

Yum 還提供了自動更新的功能,每天深夜主動檢查並下載新版本的套件加以更新。如果您想要使用此功能,請執行下面指令開啟:

Page 62: 軟體的安裝升級與移除

62

使用 Yum 線上更新套件若想要關閉自動更新功能,則請執

行 /etc/rc.d/init.d/yum stop; chkconfig yum off 。

Page 63: 軟體的安裝升級與移除

63

Linux 軟體下載網站當您腦中出現 "在 Linux 上若是有這

種軟體該有多好啊! " 的念頭時,恰巧又會寫程式,千萬不要捲起袖子就開始寫了。除非您非常有創意,否則在您想到之前,可能早就有人想到且開始實做了。因此您不需要重複發明輪胎,在此介紹 2 個大型的軟體開發專案網站:

Page 64: 軟體的安裝升級與移除

64

Linux 軟體下載網站◦http://sourceforge.net◦http://freshmeat.net

這 2 個網站裡面有許多的開發專案在進行,您只要輸入想找的關鍵字搜尋,或是依照分類尋找,通常都可以找到您想要的軟體,而且大都不只一個。

上面提到的網站,有時某軟體專案只提供原始碼下載,若您想尋找是否有 RPM 套件,可到 http://rpmfind.net/ 搜尋,因為可能有其他的發行版或是熱心人士將它包裝成 RPM 套件了。