5.2軟件包管理

安裝軟件前準備:

查看虛擬機設置,確認光盤已經連接。

clip_image002

確認光盤連接後,我們需要將光盤掛載一個目錄下,使得我們可以查看光盤中的內容。

(光盤的掛載選項爲“ro,sync”,類型爲iso9660,也可直接寫入/etc/fstab文件進行掛載,方便重新啓動後自動掛載。)

clip_image004

掛載成功後,目錄/mnt/cdrom/Packages/下可以查看到軟件包,我們使用rpm安裝時,使用這個目錄裏面的安裝包。同樣,配置yum倉庫時,也使用此目錄。

RPM包管理及YUM應用

在 Linux 操作系統下,幾乎所有的軟件均通過RPM 進行安裝、卸載及管理等操作。RPM 的全稱爲Redhat Package Manager ,是由Redhat 公司提出的,用於管理Linux 下軟件包的軟件。Linux 安裝時,除了幾個核心模塊以外,其餘幾乎所有的模塊均通過RPM 完成安裝。RPM 有五種操作模式,分別爲:安裝、卸載、升級、查詢和驗證。

語法

rpm(選項)(參數)

選項

-a:查詢所有套件;

-e<套件檔>或--erase<套件檔>:刪除指定的套件;

-i:安裝;

-q:查詢包是否安裝;

-v:顯示指令執行過程;

-h:顯示安裝進度;

參數

軟件包:指定要操縱的rpm軟件包。


如何安裝rpm軟件包

rpm軟件包的安裝可以使用程序rpm來完成。執行下面的命令:

clip_image006

rpm -ivh your-package.rpm

其中your-package.rpm是你要安裝的rpm包的文件名,一般置於當前目錄下。

(此時的文件名,可以是絕對路徑,如果不是絕對路徑,需要使用cd命令切換目錄到/mnt/cdrom/Packages(/mnt/cdrom是我們掛載光盤的位置)下。)

安裝過程中可能出現下面的警告或者提示:

... conflict with ...

可能是要安裝的包裏有一些文件可能會覆蓋現有的文件,缺省時這樣的情況下是無法正確安裝的可以用rpm --force -i強制安裝即可

... is needed by ...

... is not installed ...

此包需要的一些軟件你沒有安裝可以用rpm --nodeps -i來忽略此信息,也就是說rpm -i --force --nodeps可以忽略所有依賴關係和文件問題,什麼包都能安裝上,但這種強制安裝的軟件包不能保證完全發揮功能。(注意:我們下面講的yum就是用來解決依賴關係,使用yum安裝軟件,自動查找依賴關係及安裝依賴包,使用rpm安裝時忽略依賴信息,可能會導致軟件安裝完成後無法使用的結果。)


如何卸載rpm軟件包

使用命令rpm -e包名,包名可以包含版本號等信息,但是不可以有後綴.rpm,比如卸載軟件包proftpd-1.2.8-1,可以使用下列格式:

rpm -e proftpd-1.2.8-1

rpm -e proftpd-1.2.8

rpm -e proftpd-

rpm -e proftpd

不可以是下列格式:

rpm -e proftpd-1.2.8-1.i386.rpm

rpm -e proftpd-1.2.8-1.i386

rpm -e proftpd-1.2

rpm -e proftpd-1

有時會出現一些錯誤或者警告:

... is needed by ...

這說明這個軟件被其他軟件需要,不能隨便卸載,可以用rpm -e --nodeps強制卸載

可以先查詢軟件包的名稱後再進行卸載:

clip_image008

clip_image010


如何查看與rpm包相關的文件和其他信息

下面所有的例子都假設使用軟件包mysql-3.23.54a-11

1、我的系統中安裝了那些rpm軟件包。

rpm -qa 將列出所有安裝過的包

如果要查找所有安裝過的包含某個字符串sql的軟件包

rpm -qa | grep sql

2、如何獲得某個軟件包的文件全名。

rpm -q mysql

可以獲得系統中安裝的mysql軟件包全名,從中可以獲得當前軟件包的版本等信息。這個例子中可以得到信息mysql-3.23.54a-11

3、一個rpm包中的文件安裝到那裏去了?

rpm -ql 包名

注意這裏的是不包括.rpm後綴的軟件包的名稱,也就是說只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。如果只是想知道可執行程序放到那裏去了,也可以用which,比如:

which mysql

搭建yum源
Yum軟件倉庫

Yum倉庫則是爲進一步簡化RPM管理軟件難度而設計的,Yum能夠根據用戶的要求分析出所需軟件包及其相關依賴關係,自動從服務器下載軟件包並安裝到系統,聽起來就已經很爽了吧?

clip_image012

yum軟件倉庫的使用拓撲圖

用戶能夠根據需求來指定Yum倉庫與是否校驗軟件包,而這些只需幾條關鍵詞即可完成,現在來學習下配置的方法.

所有Yum倉庫的配置文件均需以.repo結尾並存放在/etc/yum.repos.d/目錄中的。

[rhel-media]: yum源的名稱,可自定義。

name= rh可自定義

baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)

enabled=1 : 設置此源是否可用,1爲可用,0爲禁用。

gpgcheck=1 : 設置此源是否校驗文件,1爲校驗,0爲不校驗。(一般設置爲0即可)

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若爲校驗請指定公鑰文件地址。

Yum倉庫中的RPM軟件包可以是由紅帽官方發佈的,也可以是第三方組織發佈的,當然用戶也可以編寫的,鏡像光盤內已經包含了大量的可用RPM軟件包。

命令

作用

yum repolist all

列出所有倉庫。

yum install 軟件包名稱

安裝軟件包

yum remove 軟件包

移除軟件包


配置yum倉庫:

查看原有倉庫文件列表:

clip_image014

將倉庫文件“CentOS-Base.repo”重命名爲“CentOS-Base.repo.bak”

clip_image016

修改文件/etc/yum.repos.d/CentOS-Media.repo

clip_image018

修改內容:

1. 將baseurl改爲光盤掛載位置

2. 將enabled=0改爲enabled=1

3. 將gpgcheck=1改爲gpgcheck=0

clip_image020

yum安裝軟件:

-y參數表示yes,若不加此參數,後面會提醒是否安裝,需要輸入“y”安裝過程才能繼續進行,添加參數後,yum便會自動安裝不再詢問。

clip_image022

檢測軟件包是否安裝成功

clip_image024

yum卸載軟件:

clip_image026

資料來源:

http://man.linuxde.net/rpm

https://www.linuxprobe.com

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