1. 程式人生 > >二十一、安裝軟件包的三種方法、RPM包介紹、rpm工具用法、yum工具用法、yum搭建本地倉庫

二十一、安裝軟件包的三種方法、RPM包介紹、rpm工具用法、yum工具用法、yum搭建本地倉庫

rpm工具 yum工具

二十一、安裝軟件包的三種方法、RPM包介紹、rpm工具用法、yum工具用法、yum搭建本地倉庫

一、安裝軟件包的三種方法

rpm工具、yum工具、源碼包

RPM工具:是以一種數據庫記錄的方式將需要的套件安裝到Linux主機的一套管理程序。就是說,你的Linux系統中有一個關於RPM的數據庫,它記錄了安裝的包以及包與包之間的依賴關系。RPM包是預先在Linux機器上編譯並打包的文件,安裝快捷。缺點:安裝環境必須與編譯時的環境一致或相當,包與包之間存在著相互依賴的情況,卸載包時需先把依賴的包卸載。若依賴的包是系統必需的,就不能卸載這個包,否則系統崩潰。

yum工具:優勢:可聯網下載所需要的RPM包,然後自動安裝。若安裝的RPM包有依賴關系,yum工具會自動依次安裝相關的RPM包。

源碼包優點:可以看到源代碼,可以自定義修改源代碼,還可以定制相關的功能,因為源碼包在編譯時可以附加額外的選項。安裝時,需要把源代碼編譯成可執行的二進制文件。若能讀懂這些源代碼,就能修改源代碼的自定義功能,再按你的需求編譯。

二、RPM包介紹

若你的虛擬機光驅中海油系統安裝盤鏡像,就可以通過執行以下命令把光驅掛載到/mnt目錄下。先檢查VMware右下角小光驅圖標是否點亮,若沒有,點擊一下,再點連接就可點亮。當掛載光驅後,會在/mnt/Packages目錄下看到很多後綴為.rpm的文件,這些文件就是RPM包。

# mount /dev/cdrom /mnt

mount: /dev/sr0 寫保護,將以只讀方式掛載 //光驅是以只讀方式掛載的

# ls /mnt/

CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7

EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL

# ls /mnt/Packages/|head

389-ds-base-1.3.6.1-16.el7.x86_64.rpm

389-ds-base-libs-1.3.6.1-16.el7.x86_64.rpm

abattis-cantarell-fonts-0.0.25-1.el7.noarch.rpm

abrt-2.1.11-48.el7.centos.x86_64.rpm

abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm

abrt-addon-kerneloops-2.1.11-48.el7.centos.x86_64.rpm

abrt-addon-pstoreoops-2.1.11-48.el7.centos.x86_64.rpm

abrt-addon-python-2.1.11-48.el7.centos.x86_64.rpm

abrt-addon-vmcore-2.1.11-48.el7.centos.x86_64.rpm

abrt-addon-xorg-2.1.11-48.el7.centos.x86_64.rpm

解析:abrt-2.1.11-48.el7.centos.x86_64.rpm

abrt:RPM包名。

2.1.11:版本號。2為主版本號,1為次版本號,11是更小的版本號、又叫修正版本。

48.el7:發布版本號。el7代表centos7,6則代表centos6。

centos.x86_64:運行平臺。CPU:64位或32位,centos7已經不區分32和64位了,默認全都是64位。centos6或5、4都區分32或64位。常見運行平臺:i386、i586、i686和x86_64。32位平臺:i386、i586、i686;64位平臺:x86_64。有些RPM包沒有寫運行平臺而是noarch,說明這個RPM包沒有硬件平臺限制。

.rpm:後綴名。

三、RPM工具用法

# rpm -ivh rpm包名文件 //安裝

i:install

v:可視化,執行過程。

h:顯示安裝進度。

舉例:# rpm -ivh abrt-2.1.11-48.el7.centos.x86_64.rpm

錯誤:依賴檢測失敗:

abrt-libs = 2.1.11-48.el7.centos 被 abrt-2.1.11-48.el7.centos.x86_64 需要

abrt-python = 2.1.11-48.el7.centos 被 abrt-2.1.11-48.el7.centos.x86_64 需要

libabrt.so.0()(64bit) 被 abrt-2.1.11-48.el7.centos.x86_64 需要

libreport >= 2.1.11-38 被 abrt-2.1.11-48.el7.centos.x86_64 需要

libreport-plugin-rhtsupport 被 abrt-2.1.11-48.el7.centos.x86_64 需要

libreport-plugin-ureport >= 2.1.11-38 被 abrt-2.1.11-48.el7.centos.x86_64 需要

libreport.so.0()(64bit) 被 abrt-2.1.11-48.el7.centos.x86_64 需要

libsatyr.so.3()(64bit) 被 abrt-2.1.11-48.el7.centos.x86_64 需要

python-augeas 被 abrt-2.1.11-48.el7.centos.x86_64 需要

python-dmidecode 被 abrt-2.1.11-48.el7.centos.x86_64 需要

satyr >= 0.13-10 被 abrt-2.1.11-48.el7.centos.x86_64 需要

sos 被 abrt-2.1.11-48.el7.centos.x86_64 需要

由於沒有安裝依賴的包,故不能安裝此包。

舉例:# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm

準備中... ################################# [100%]

正在升級/安裝...

1:zsh-5.0.2-28.el7 ################################# [100%]

沒有依賴關系的則會正常安裝。

-i選項,安裝rpm包,跟rpm包文件名。示例:

# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm

加-U選項代表升級這個包,跟rpm包文件名。示例:

# rpm -Uvh zsh-5.0.2-28.el7.x86_64.rpm

-e:卸載rpm包名。示例:

# rpm -e zsh(跟包名就可以了)也可加上v和h。

查詢安裝的包,跟rpm包名。示例:

# rpm -qa (列出來的都是已經安裝的包)

裏面的包可以直接卸載。

# rpm -q+包名 查詢此包是否安裝,安裝了就會顯示詳情,未安裝就會顯示未安裝。

# rpm -qi+包名 查詢指定包信息,i:信息

# rpm -ql+包名 列出包安裝的文件

# rpm -qf+文件的絕對路徑 查看一個文件是由哪個包安裝的

# rpm -qf `which cd` 忘記了命令的絕對路徑,就可使用反引號再which查詢。

bash-4.2.46-28.el7.x86_64

四、yum工具用法

yum list 列出可用的rpm包

zenity.x86_64 3.22.0-1.el7 base

包名;版本號 平臺版本號 倉庫名字

/etc/yum.repos.d/ yum的配置文件

# ls /etc/yum.repos.d/

CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo

CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo

CentOS-Base.repo(核心文件)

# cat /etc/yum.repos.d/CentOS-Base.repo

文件中有倉庫的鏈接地址:

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra

安裝RPM包:# yum install -y [rpm包名],不加-y,則會以與用戶交互的方式安裝。

搜索包:

yum search +包名(如vim,network等,該搜索只能搜到大概,包含搜索的名字的都會搜出來)

yum list |grep 'vim'(可以過濾掉不需要的東西,搜索更精準,將yum list輸出的東西給後面輸入)

yum grouplist 把可用的組全列出來

yum groupinstall ‘vir host’ 中間有空格的包就用groupinstall,沒有就用install。不加-y可以查看裏面有多少包。

Install 65 Packages (+185 Dependent packages)

Upgrade ( 6 Dependent packages)

Total download size: 73 M

解析:65個包,185個被依賴的包,6個需要升級的。

# yum remove +包名 可以查看到被卸載包的依賴的包。卸載加-y即可。

# yum update +包名 若不加包名,會把系統內所有的rpm包升級,甚至系統和內核,該操作往往在剛安裝完系統的時候進行操作,若安裝系統很久了,很多服務開啟了,升級就須謹慎。升級加-y即可。

# yum provides "/*/vim" 搜索rpm包,沒有安裝就不能用rpm -qf搜索。

五、yum搭建本地倉庫

yum不能用的時候可以搭建一個本地倉庫,使yum在本地倉庫內查找rpm包。

做該操作的條件:

1.有一個光盤鏡像文件,再將它掛載。

# mount /dev/cdrom /mnt

2.刪除/etc/yum.repos.d目錄下的所有repo文件(刪除前,最好先做備份)

# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak

# rm -rf /etc/yum.repos.d/*

3.創建新文件dvd.repo,如下:

# vim dvd.repo //加入以下內容

[dvd]

name=install dvd 倉庫名

baseurl=file:///mnt rpm包的位置,光驅的位置。

enabled=1 yum原是否可用,1代表可用,0代表不可用。

gpgcheck=0 是否需要檢測

4.# yum clean all 把之前的repo的文件的緩存進行清除。

5.刷新repos生成緩存,如下所示:

# yum makecache

# yum list 可以查看到已經安裝的rpm包。示例一個:

xz-libs.x86_64 5.2.2-1.el7 @anaconda

以@開頭的代表已經安裝的rpm包,以dvd為後綴的代表可以安裝的包。

然後就可以使用yum命令安裝所需要的軟件包了!示例:

# yum install -y tftp

若rpm包循環依賴,yum本地倉庫即可搞定。


二十一、安裝軟件包的三種方法、RPM包介紹、rpm工具用法、yum工具用法、yum搭建本地倉庫