RPM及YUM工具介紹及使用(下)

YUM工具

YUM工作原理

YUM工具的出現就是為了解決rpm工具不能夠自動解決軟件包之間的依賴關系這一難題的。它的工作原理大致如下:
YUM透過分析RPM的標頭資料,根據各軟件的相關性找出軟件所依賴的軟件列表,然后去下載速度最快的yum倉庫中下載所有相關RPM軟件包,然后完成相應軟件的安裝。同時yum工具和rpm工具一樣,也可以提供對軟件包的查詢,安裝、升級和卸載操作。

YUM工具的使用

前面已經說過,yum工具是需要用到yum倉庫的,那里面保存的有各種rpm包文件,rpm包軟件之間的依賴關系等相關信息。所以,我們首先從建立yum倉庫開始。

建立yum倉庫

  • 查看系統已有的yum倉庫情況

[root@test1 packages]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * c7-media: 
repo id                                                                     repo name                                                                            status
c7-media                                                                    CentOS-7 - Media                                                                     9,007
repolist: 9,007


以上顯示的僅是系統中已經啟用的yum倉庫,只有一個repo id為c7-media的倉庫, 使用yum repolist all則可以查看系統中配置的所有yum倉庫,包含未啟用的, 如下所示:

[root@test1 packages]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * c7-media: 
repo id                                                                     repo name                                                                    status
C7.1.1503-updates/x86_64                                                    CentOS-7.1.1503 - Updates                                                    disabled
base-debuginfo/x86_64                                                       CentOS-7 - Debuginfo                                                         disabled
base-source/7                                                               CentOS-7 - Base Sources                                                      disabled
c7-media                                                                    CentOS-7 - Media                                                             enabled: 9,007
repolist: 9,007
(輸出有省略)

  • 修改系統中yum客戶端的配置文件建立自定義的yum倉庫
    大多數情況下,CentOS7自帶的yum客戶端配置文件中定義的各個倉庫,在中國網絡環境中連接都非常慢,所以這里我直接將其配置文件/etc/yum.repo.d/CentOS-Base.repo文件中的baseurl分別修改成了對應不同倉庫的URL。這里使用的是國內阿里云的開源鏡像站點作為URL。要使用repodata這一目錄所在的位置作為baseurl。

[base]   #代表yum倉庫的名字,一定要有中括號括起來,不能有相同的兩個倉庫名字
name=CentOS-$releasever - Base #說明這個軟件倉庫的主機名稱,意義不大
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #mirrorlist是yum自動去探測的,可以不用管
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/ #這里就是repodata目錄所在的位置,可以是http,ftp,本地文件都 可以
enable=1  #配置是否啟用這一yum倉庫,1表示啟用,0gf表示不啟用,默認為1
gpgcheck=1  #指定是否檢查rpm軟件包中的數字簽名,1表示檢查,0表示不檢查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #指定數字簽名公鑰文件所在的位置

#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

在完成 以上修改系后,可以進行一次本地yum緩存數據的清理工作,以便可以正常使用yum進行軟件更新等操作,清理本地yum緩存的指令:yum clean all,將會清理掉之前yum所下載的全部rpm軟件包及文件頭信息。

  • 使用系統光盤建立本地yum倉庫
    創建yum倉庫,我們也可以在/etc/yum.repo.d/下新建一個名為:reponame.repo的文件,reponame為自定義的倉庫配置文件名。
    使用系統光盤(iso鏡像文件)建立本地yum倉庫的方法:

  • 將光盤鏡像掛載至系統某目錄下

    [root@test1 yum.repos.d]# mkdir /media/cdrom/
    [root@test1 yum.repos.d]# mount /dev/cdrom /media/cdrom
    mount: /dev/sr0 is write-protected, mounting read-only
    [root@test1 yum.repos.d]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    ...
    /dev/sr0                 7.3G  7.3G     0 100% /media/cdrom
    [root@test1 yum.repos.d]# ls -F /media/cdrom
    CentOS_BuildTag  EFI/  EULA  GPL  images/  isolinux/  LiveOS/  Packages/  repodata/  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL

    配置文件(CentOS-Media.repo)在CentOS 7自帶的即有,只需要啟用它即可,配置文件中還介紹了直接通過指令禁用其它倉庫而只啟用這一倉庫的方法:yum --disablerepo=* --enablerepo=c7-media COMMAND

    [root@test1 yum.repos.d]#  cat /etc/yum.repos.d/CentOS-Media.repo 
    # CentOS-Media.repo
    #
    #  This repo can be used with mounted DVD media, verify the mount point for
    #  CentOS-7.  You can use this repo and yum to install items directly off the
    #  DVD ISO that we release.
    #
    # To use this repo, put in your DVD and use it with the other repos too:
    #  yum --enablerepo=c7-media [command]
    #  
    # or for ONLY the media repo, do this:
    #
    #  yum --disablerepo=\* --enablerepo=c7-media [command]
    [c7-media]
    name=CentOS-$releasever - Media
    baseurl=file:///media/CentOS/
            file:///media/cdrom/     #此即為光盤yum倉庫的URL
            file:///media/cdrecorder/
    gpgcheck=1
    enabled=1   #啟用這一yum倉庫。
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS7
  • 驗證光盤yum倉庫的可用性
    默認情況下,系統會先去找base這一配置中的倉庫,而且當其連接不上時,不會繼續查找c7-media這個倉庫,所以需要人為干預將base 中的repo禁用,只啟用c7-media這一倉庫。使用指令:yum --disablerepo=* --enablerepo=c7-media install tftp 后面還可以跟上-y這一選項,讓其自動確認是否安裝。安裝過程中即可看到tftp軟件包是從c7-media這個倉庫中獲取的。
    yum --disablerepo=* --enablerepo=c7-media這一指令也適用于要從指定的yum倉庫安裝某特定軟件的情況。

YUM工具的使用

  1. 查詢
    指令: yum [list|info|search|provides|whatprovides] [關鍵字]
    list list后面需要跟上軟件名稱作為關鍵字,查詢其安裝情況,不跟關鍵字列出當前各倉庫的所有軟件包,類似于rpm -qa。
    info info后面同樣需要跟上軟件名稱作為關鍵字,查詢軟件包的詳細信息,不跟關鍵字列出當前倉庫的所有軟件包的詳細信息。類似 于rpm -qai。
    search search后面跟上任意關鍵字,查找yum倉庫中所有包含此關鍵字的軟件包的信息,介紹軟件包的大致功能。
    provides|whatprovides 根據后面跟的文件名,查找yum倉庫中哪些軟件包可以提供此功能。類似 于rpm -qf。

  2. 安裝、升級
    指令:yum [install|update] 軟件名
    installinstall后面跟上需要安裝的軟件名稱即可安裝相應的軟件。
    update update后面跟上需要升級的軟件,如果不跟上需要升級的軟件名稱,會將整個系統都進行升級。

  3. 卸載
    指令: yum remove 軟件名
    軟件卸載的過程中,yum會自動解決好依賴軟件的卸載工作。

總結

yum工具能夠自動解決軟件間的依賴關系,比rpm工具更好用,但rpm工具的使用是軟件包管理的基礎,在極端情況下,可能還是需要使用rpm工具去逐個安裝有依賴關系的軟件。

原創文章,作者:N24_lantian,如若轉載,請注明出處:http://www.www58058.com/64918

(0)
N24_lantianN24_lantian
上一篇 2016-12-26
下一篇 2016-12-27

相關推薦

  • N22-第五周博客作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@bogon ~]# grep -E  "^(root|fedora|user1)" /etc/passwd  | cut -d: -f1,7r…

    Linux干貨 2016-09-26
  • 0809linux基礎小記(sed和vim用法)

    sed  [options] ‘scripts’ inputfile -n: 不輸出模式空間內容的自動打印 -e: 多點編輯 -f:從指定文件中讀取編輯腳本 -i:原處編輯 scripts: ’地址命令’ 地址定界: (1)  不給地址:對全文進行處理 (2)  單地址: #:  指定的行 例: sed '2…

    Linux干貨 2016-08-11
  • 編寫腳本

        1、  編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPV4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。                      …

    2017-04-13
  • Linux系統重定向和管道

    1、標準輸入和標準輸出              程序:指令+數據               &n…

    Linux干貨 2016-08-04
  • 分布式系統介紹及MogileFS安裝、基本配置

    分布式系統介紹及MogileFS安裝、基本配置 分布式 MogileFS 前言: 什么是分布式? 分布式存在的意義? 分布式的難點及CAP、BASE、2PC、X/Open XA介紹 分布式存儲和分布式文件系統: MogileFS實現原理: MogileFS編譯安裝和配置 總結 前言: 不知不覺中我們就進入大數據時代, 什么是大數據? 什么是分布式?…

    Linux干貨 2016-05-04
  • shell腳本編程基礎

    shell腳本編程基礎以及一些基本的邏輯運算知識和shell的配置用戶環境。

    2017-11-26
欧美性久久久久