Linux程序包管理之YUM

时间:2023-02-14 18:59:12

一、为什么有RPM包管理还需要YUM(YUM为RPM的前端管理工具)

        为了重复利用既有的软件功能,因此很多软件都会以函式库的方式释出部分功能,以方便其他软件的呼叫应用。此外,为了节省使用者的数据量,目前的 distributions 在释出软件时, 都会将软件的内容分为一般使用与开发使用 (development) 两大类。所以你才会常常看到有类似 pam-x.x.rpm 与 pam-devel-x.x.rpm 之类的档名啊!而默认情况下,大部分的 software-devel-x.x.rpm 都不会安装,因为终端用户大部分不会去开发软件嘛!

        因为有上述的现象,因此 RPM 软件文件就会有所谓的属性相依的问题产生 (其实所有的软件管理几乎都有这方面的情况存在)。 那有没有办法解决啊?前面不是谈到 RPM 软件文件内部会记录相依属性的数据吗?那想一想,要是我将这些相依属性的软件先列表, 在有要安装软件需求的时候,先到这个列表去找,同时与系统内已安装的软件相比较,没安装到的相依软件就一口气同时安装起来, 那不就解决了相依属性的问题了吗?由此。就有了YUM机制的由来!

Linux程序包管理之YUM                           

二、YUM的简介

        YUM,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。

        YUM的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。

        YUM主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。

        YUM可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。


三、YUM源的配置

        yum repository: 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata)。当你要找仓库所在网址时, 最重要的就是该网址底下一定要有个名为repodata(该目录就是分析 RPM 软件后所产生的软件属性相依数据放置处)的目录存在!那就是仓库的URL网址了!

    配置文件(可以通过man yum.conf查看配置文件的格式和详细选项):

        /etc/yum.conf:为所有仓库提供公共配置

            main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。

[root@localhost yum.repos.d]# vim /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
#yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/cache/yum
keepcache=0
#安装完成后是否保留软件包,0为不保留(默认为0),1为保留
debuglevel=2
#Debug 信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log
#yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新
exactarch=1
#有1和0两个选项,默认1则yum 只会安装和系统架构匹配的软件包
obsoletes=1
#这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包
gpgcheck=1
#是否检查包的完整性,默认为1,检查包的完整性
plugins=1
#是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件
installonly_limit=5
#一次最大安装的包数
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
#bug追踪URL
distroverpkg=centos-release
#指定一个软件包,yum 会根据这个包判断你的发行版本,默认是centos-release,也可以是安装的任何针对自己发行版的rpm 包


#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

        etc/yum.repos.d/*.repo:为仓库的指向提供配置

            repository 部分定义了每个源/服务器的具体配置,可以有一到多个。

仓库指向的定义(一般我们不会去修改全局配置文件,而是在yum.repos.d中创建特定的仓库配置):

    [repositoryID]

    name=Some name for this repository

    baseurl=url://path/to/repository/

    baseur2=url://path/to/repository/

    baseur3=url://path/to/repository/

    enabled={1|0}(是否启用)

    gpgcheck={1|0}(是否检查包的完整性)

    gpgkey=URL(指明包的密钥文件)

    enablegroups={1|0}(是否支持在此仓库上使用组来批量管理包)

    failovermethod={roundrobin|priority}(当有故障时,多个镜像的挑选方式)

        默认为:roundrobin,意为随机挑选;priority,从第一个开始挑选,然后往下挑选

    cost=1000(仓库开销数值。默认为1000)


配置一个指向 http://mirrors.aliyun.com/centos/7.1.1503/extras/x86_64/ 阿里云镜像的yum源

这里根据你的Centos版本选择不同的yum源,这里以Centos 7.1作为讲解

[root@localhost yum.repos.d]# pwd/etc/yum.repos.d[root@localhost yum.repos.d]# vim Centos-wlw.repo[base]name=Base Repo on mirrors.aliyun.combaseurl=http://mirrors.aliyun.com/centos/7.1.1503/extras/x86_64/gpgcheck=0#这里我们自己定义了一个名为Centos-wlw的yum源

定义好yum源后我们通过yum repolist查看可用源,这里我们可以看到有8619个包可用

[root@localhost yum.repos.d]# yum repolist已加载插件:aliases, auto-update-debuginfo, changelog, fastestmirror, filter-data, fs-snapshot, keys, langpacks, list-data, local, merge-conf, post-transaction-actions, priorities,          : protectbase, ps, remove-with-leaves, rpm-warm-cache, show-leaves, tmprepo, tsflags, upgrade-helper, verify, versionlockLoading mirror speeds from cached hostfile0 packages excluded due to repository protections源标识                                                       源名称                                                                                                           状态base                                                         Base Repo on mirrors.aliyun.com                                                                                  8,691repolist: 8,691


配置一个光盘镜像的yum源。这里我们关闭了阿里云的yum包。

[root@localhost yum.repos.d]# vim Centos-wlw.repo [base]name=Base Repo on mirrors.aliyun.combaseurl=http://mirrors.aliyun.com/centos/7.1.1503/extras/x86_64/gpgcheck=0enabled=0[locate_cdrom]name=Locate Repo on cdrombaseurl=file:/mntgpgcheck=1gpgkey=file:/mnt/RPM-GPG-KEY-CentOS-7

定义好yum源后我们通过yum repolist查看可用源,这里由于我们第一次访问此yum源。会下载yum源中的repodata元数据

[root@localhost yum.repos.d]# yum repolist已加载插件:aliases, auto-update-debuginfo, changelog, fastestmirror, filter-data, fs-snapshot, keys, langpacks, list-data, local, merge-conf, post-transaction-actions, priorities,          : protectbase, ps, remove-with-leaves, rpm-warm-cache, show-leaves, tmprepo, tsflags, upgrade-helper, verify, versionlocklocate                                                                                                                                                      | 3.6 kB  00:00:00     (1/2): locate_cdrom/primary_db                                                                                                                                    | 5.1 MB  00:00:00     (2/2): locate_cdrom/group_gz                                                                                                                                      | 154 kB  00:00:00     Loading mirror speeds from cached hostfile0 packages excluded due to repository protections源标识                                                       源名称                                                                                                           状态locate                                                       Locate Repo on cdrom                                                                                             8,652repolist: 8,652

其他国内yum源列表如下:

1. 企业贡献:

阿里云开源镜像站:http://mirrors.aliyun.com/

搜狐开源镜像站:http://mirrors.sohu.com/

网易开源镜像站:http://mirrors.163.com/

2. 大学教学:
北京理工大学:http://mirror.bit.edu.cn 
厦门大学:http://mirrors.xmu.edu.cn/


四、YUM的常用命令

yum [options] [command] [package ...]


显示仓库列表:

    repolist [all|enabled(默认)|disabled]

[root@localhost yum.repos.d]# yum repolist all已加载插件:aliases, auto-update-debuginfo, changelog, fastestmirror, filter-          : data, fs-snapshot, keys, langpacks, list-data, local, merge-          : conf, post-transaction-actions, priorities, protectbase, ps,          : remove-with-leaves, rpm-warm-cache, show-leaves, tmprepo,          : tsflags, upgrade-helper, verify, versionlockLoading mirror speeds from cached hostfile0 packages excluded due to repository protections源标识                      源名称                           状态C7.0.1406-base/x86_64       CentOS-7.0.1406 - Base           禁用C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 - CentOSPlus     禁用C7.0.1406-extras/x86_64     CentOS-7.0.1406 - Extras         禁用C7.0.1406-fasttrack/x86_64  CentOS-7.0.1406 - CentOSPlus     禁用C7.0.1406-updates/x86_64    CentOS-7.0.1406 - Updates        禁用_local                      Automatic local repo. (manged by 启用:    39base                        Base Repo on mirrors.aliyun.com  禁用base-debuginfo/x86_64       CentOS-7 - Debuginfo             禁用base-source/7               CentOS-7 - Base Sources          禁用centosplus-source/7         CentOS-7 - Plus Sources          禁用cr/7/x86_64                 CentOS-7 - cr                    禁用extras-source/7             CentOS-7 - Extras Sources        禁用fasttrack/7/x86_64          CentOS-7 - fasttrack             禁用locate_cdrom                Locate Repo on cdrom             启用: 8,652updates-source/7            CentOS-7 - Updates Sources       禁用repolist: 8,691#这里可以看出我们启用了我们上面自己定义的locate_cdrom源。其他源出于禁止状态


显示程序包:

    list {all(默认)|available|installed|updates} [glob_exp1] [...]

[root@localhost yum.repos.d]# yum listhostname.x86_64                          3.13-3.el7                 @anaconda#这里的@anaconda代表系统安装完自动安装了的包lftp.x86_64                              4.4.8-3.el7                @locate_cdrom#这里的@locate_cdrom代表我们利用locate_cdrom源安装的包SDL-devel.i686                           1.2.15-11.el7              locate_cdrom#这里的locate_cdrom前面没有@符号。代表的是locate_cdrom源没有被安装的包



    安装程序包:

        install package1 [package2] [...]

        reinstall package1 [package2] [...]  (重新安装)

[root@localhost yum.repos.d]# yum isntall lftp0 packages excluded due to repository protections正在解决依赖关系Skipping filters plugin, no data--> 正在检查事务---> 软件包 lftp.x86_64.0.4.4.8-3.el7 将被 安装--> 解决依赖关系完成依赖关系解决=================================================================================================================================================================================== Package                               架构                                    版本                                            源                                             大小===================================================================================================================================================================================正在安装: lftp                                  x86_64                                  4.4.8-3.el7                                     locate_cdrom                                  749 k事务概要===================================================================================================================================================================================安装  1 软件包总下载量:749 k安装大小:2.4 MIs this ok [y/d/N]: Exiting on user command您的事务已保存,请执行: yum load-transaction /tmp/yum_save_tx.2015-09-01.21-16.drDX2K.yumtx 重新执行该事务

这里需要注意,如果我们直接回车或者输入n都会退出安装。需要输入y然后按回车才能安装。在Centos 7中这里有为你把你这次没有安装的事务保存到/tmp/临时目录中。下次你想重新安装的时候可以直接输入上面的命令

[root@localhost ~]# yum load-transaction /tmp/yum_save_tx.2015-09-01.21-16.drDX2K.yumtx0 packages excluded due to repository protections正在解决依赖关系--> 正在检查事务--> 解决依赖关系完成依赖关系解决=================================================================================================================================================================================== Package                               架构                                    版本                                            源                                             大小===================================================================================================================================================================================正在安装: lftp                                  x86_64                                  4.4.8-3.el7                                     locate_cdrom                                  749 k事务概要===================================================================================================================================================================================安装  1 软件包总下载量:749 k安装大小:2.4 MIs this ok [y/d/N]: yDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction  正在安装    : lftp-4.4.8-3.el7.x86_64                                                                                                                                        1/1  验证中      : lftp-4.4.8-3.el7.x86_64                                                                                                                                       1/1已安装:  lftp.x86_64 0:4.4.8-3.el7                                                                                                                                                      完毕!New leaves:  lftp.x86_64

    

    升级程序包:

        update [package1] [package2] [...]

        downgrade package1 [package2] [...] (降级)


    检查可用升级:

        check-update


    卸载程序包:

        remove | erase package1 [package2] [...]

[root@localhost ~]# yum remove libstdc++-devel正在解决依赖关系--> 正在检查事务---> 软件包 libstdc++-devel.x86_64.0.4.8.3-9.el7 将被 删除--> 正在处理依赖关系 libstdc++-devel = 4.8.3-9.el7,它被软件包 gcc-c++-4.8.3-9.el7.x86_64 需要--> 正在检查事务---> 软件包 gcc-c++.x86_64.0.4.8.3-9.el7 将被 删除--> 解决依赖关系完成_local                                                                                                                                                      | 2.9 kB  00:00:00     _local/primary_db                                                                                                                                           |  41 kB  00:00:00     依赖关系解决=================================================================================================================================================================================== Package                                       架构                                 版本                                         源                                           大小===================================================================================================================================================================================正在删除: libstdc++-devel                               x86_64                               4.8.3-9.el7                                  @locate_cdrom                               8.0 M为依赖而移除: gcc-c++                                       x86_64                               4.8.3-9.el7                                  @locate_cdrom                                16 M事务概要===================================================================================================================================================================================移除  1 软件包 (+1 依赖软件包)安装大小:24 M是否继续?[y/N]:yDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction  正在删除    : gcc-c++-4.8.3-9.el7.x86_64                                                                                                                                    1/2   正在删除    : libstdc++-devel-4.8.3-9.el7.x86_64                                                                                                                          2/2   验证中      : gcc-c++-4.8.3-9.el7.x86_64                                                                                                                                     1/2  验证中      : libstdc++-devel-4.8.3-9.el7.x86_64                                                                                                                             2/2删除:  libstdc++-devel.x86_64 0:4.8.3-9.el7                                                                                                                                            作为依赖被删除:  gcc-c++.x86_64 0:4.8.3-9.el7                                                                                                                                                    完毕!New leaves:  gcc.x86_64#卸载的时候需要特别注意。卸载的包中如果给其他包依赖。也会同时卸载依赖此包的其他包


   查看程序包information:

        info [...]

[root@localhost ~]# yum info bash已安装的软件包名称    :bash架构    :x86_64版本    :4.2.46发布    :12.el7大小    :3.5 M源    :installed来自源:anaconda简介    : The GNU Bourne Again shell网址    :http://www.gnu.org/software/bash协议    : GPLv3+描述    : The GNU Bourne Again shell (Bash) is a shell or command language         : interpreter that is compatible with the Bourne shell (sh). Bash         : incorporates useful features from the Korn shell (ksh) and the C shell         : (csh). Most sh scripts can be run by bash without modification.


    查看指定的特性(可以是某文件)是由哪个程序包所提供:

    provides | whatprovides feature1 [feature2] [...]

[root@localhost ~]# yum provides lftplftp-4.4.8-3.el7.i686 : A sophisticated file transfer program源    :locate_cdromlftp-4.4.8-3.el7.x86_64 : A sophisticated file transfer program源    :_locallftp-4.4.8-3.el7.x86_64 : A sophisticated file transfer program源    :locate_cdrom


    清理本地缓存:

    clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

[root@localhost ~]# yum clean all已加载插件:aliases, auto-update-debuginfo, changelog, fastestmirror, filter-data, fs-snapshot, keys, langpacks, list-data, local, merge-conf, post-transaction-actions, priorities,          : protectbase, ps, remove-with-leaves, rpm-warm-cache, show-leaves, tmprepo, tsflags, upgrade-helper, verify, versionlock正在清理软件源: _local base_aliyun locate_cdromCleaning up everythingCleaning up list of fastest mirrors[root@wlw packages]# ls /var/cache/yum/x86_64/6/cdrom/gen  packages#可以看到缓存目录中的所有相关数据和元数据信息已经删除

        

    构建缓存:

        makecache

[root@wlw packages]# yum makecacheLoaded plugins: fastestmirror, refresh-packagekit, securityDetermining fastest mirrorscdrom                                          | 4.0 kB     00:00 ... cdrom/group_gz                                 | 219 kB     00:00 ... cdrom/filelists_db                             | 6.2 MB     00:00 ... cdrom/primary_db                               | 4.6 MB     00:00 ... cdrom/other_db                                 | 2.8 MB     00:00 ... Metadata Cache Created[root@wlw packages]# ls /var/cache/yum/x86_64/6/cdrom/40eeab440905d20a31dd7db33fa8724fba260bcb1047fb6488027b85c22876d2-filelists.sqlite486d3ee62873814293a1be370640ae9c71863a35c7299eb76739e03369ad0c3f-c6-x86_64-comps.xml.gzbd821d6fb163fc5508b3caa407480faa51a2223e6f475da95675b84c716d6474-other.sqlitec11b211333eadda7b2e2d0f7fa8ffbf70a1d32d5182babbb43b90427578e2891-primary.sqlitecachecookiegenpackagesrepomd.xml


    搜索:

        search string1 [string2] [...]以指定的关键字搜索程序包名及summary信息;

[root@wlw packages]# yum search ifconfigLoaded plugins: fastestmirror, refresh-packagekit, securityLoading mirror speeds from cached hostfile========================= Matched: ifconfig ==========================net-tools.x86_64 : Basic networking tools#可以看到ifconfig命令是由net-tools包提供的



    查看指定包所依赖的capabilities:

        deplist package1 [package2] [...]


    查看yum事务历史:

        history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

[root@localhost ~]# yum historyID     | 命令行                   | 日期和时间       | 操作           | 变更数 -------------------------------------------------------------------------------    23 | remove libstdc++-devel   | 2015-09-01 21:31 | Erase          |    2       22 | install gcc-c++.x86_64   | 2015-09-01 21:30 | Install        |    2       21 | reinstall gcc            | 2015-09-01 21:28 | Reinstall      |    1       20 | remove lftp              | 2015-09-01 21:27 | Erase          |    1       19 | load-transaction /tmp/yu | 2015-09-01 21:21 | Install        |    1       18 | remove lftp              | 2015-09-01 21:16 | Erase          |    1       17 | reinstall lftp           | 2015-09-01 21:15 | Reinstall      |    1       16 | install lftp             | 2015-09-01 21:10 | Install        |    1       15 | remove lftp              | 2015-09-01 21:10 | Erase          |    1       14 | remove htop              | 2015-09-01 21:08 | Erase          |    1       13 | reinstall gcc            | 2015-09-01 13:15 | Reinstall      |    1       12 | install gcc              | 2015-09-01 13:10 | Install        |    1       11 | remove gcc               | 2015-09-01 13:10 | Erase          |    1       10 | install gcc              | 2015-09-01 12:49 | Install        |    7        9 | install libzip           | 2015-09-01 12:44 | Install        |    1        8 | install htop             | 2015-09-01 12:09 | Install        |    1        7 | install lftp             | 2015-08-31 22:32 | Install        |    1        6 | install lvm*             | 2015-08-27 21:36 | I, U           |   38        5 | install yum-3.4.3-125.el | 2015-08-27 21:32 | I, U           |   52 E<     4 | install vim              | 2015-08-25 18:47 | Install        |   31 > history list


    包组管理的相关命令:

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard] [...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]


 五、YUM的常用命令选项 

     yum的命令行选项:

    --nogpgcheck:禁止进行gpg check;

    -y: 自动回答为“yes”;

    -q:静默模式(在写脚本的时候可能会用到)

    --disablerepo=repoidglob:临时禁用此处指定的repo;

    --enablerepo=repoidglob:临时启用此处指定的repo;

    --noplugins:禁用所有插件;


        为什么yum的repo配置文件需要用到变量呢,有时候因为别人的需求。我们把我们自己repo配置文件放到网络上供网友下载参考。但是有部分网友不太明白里面代表的意思。不会修改。那问题就出现了,比如我们的repo配置文件是Centos 7的X86_64的。而网友的是Centos 6的i386的。那么yum源就会出错导致配置文件无法使用。由此。repo配置文件为我们提供了变量解决此问题!

    yum的repo配置文件中可用的变量:

    $releasever: 当前OS的发行版的主版本号;

    $arch: 平台;

    $basearch:基础平台;

    $YUM0-$YUM9

这个时候我们就可以把yum源配置为一下格式(变量会根据系统配置而改变为对应的值):

    http://mirrors.aliyun.com/centos/$releasever/$basearch/os


六、手动创建yum仓库

        这里我们我们需要先安装createrepo包来为我们提供创建yum仓库服务

①、安装createrepo包

[root@localhost ~]# yum install createrepo正在解决依赖关系Skipping filters plugin, no data--> 正在检查事务---> 软件包 createrepo.noarch.0.0.9.9-23.el7 将被 安装--> 解决依赖关系完成依赖关系解决======================================================================== Package         架构        版本               源                 大小========================================================================正在安装: createrepo      noarch      0.9.9-23.el7       locate_cdrom       92 k事务概要========================================================================安装  1 软件包总下载量:92 k安装大小:298 kIs this ok [y/d/N]: yDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction  正在安装    : createrepo-0.9.9-23.el7.noarch                      1/1   验证中      : createrepo-0.9.9-23.el7.noarch                      1/1 已安装:  createrepo.noarch 0:0.9.9-23.el7                                      完毕!New leaves:  createrepo.noarch

②、首先在本地创建一个存放rpm包的目录,这里我创建了/yum/loca_repo/目录作为存放rpm包的目录

[root@localhost ~]# mkdir -p /yum/loca_repo/

③、把需要提供的rpm包存放到目录中。供别人链接我们的yum源提供的rpm包,这里测试我们就cp了几个包过来

[root@localhost Packages]# cp /mnt/Packages/gcc* /yum/loca_repo/[root@localhost Packages]# cd /yum/loca_repo/[root@localhost loca_repo]# pwd/yum/loca_repo[root@localhost loca_repo]# lsgcc-4.8.3-9.el7.x86_64.rpmgcc-c++-4.8.3-9.el7.x86_64.rpmgcc-gfortran-4.8.3-9.el7.x86_64.rpmgcc-gnat-4.8.3-9.el7.x86_64.rpmgcc-go-4.8.3-9.el7.x86_64.rpmgcc-objc-4.8.3-9.el7.x86_64.rpmgcc-objc++-4.8.3-9.el7.x86_64.rpmgcc-plugin-devel-4.8.3-9.el7.x86_64.rpm

④、使用createrepo指令创建本地repo

[root@localhost loca_repo]# createrepo /yum/loca_repo/Spawning worker 0 with 8 pkgsWorkers FinishedSaving Primary metadataSaving file lists metadataSaving other metadataGenerating sqlite DBsSqlite DBs complete[root@localhost loca_repo]# pwd/yum/loca_repo[root@localhost loca_repo]# lsgcc-4.8.3-9.el7.x86_64.rpmgcc-c++-4.8.3-9.el7.x86_64.rpmgcc-gfortran-4.8.3-9.el7.x86_64.rpmgcc-gnat-4.8.3-9.el7.x86_64.rpmgcc-go-4.8.3-9.el7.x86_64.rpmgcc-objc-4.8.3-9.el7.x86_64.rpmgcc-objc++-4.8.3-9.el7.x86_64.rpmgcc-plugin-devel-4.8.3-9.el7.x86_64.rpmrepodata

这里我们可以看到生产了repodata目录。该目录就是分析 RPM 软件后所产生的软件属性相依数据放置处

⑤、此时我们只需要配置repo配置文件,然后安装即可

vim /etc/yum.repos.d/Centos-wlw.repo [loca_repo]name=loca repobaseurl=file:/yum/loca_repo/gpgcheck=0enable=1[root@localhost loca_repo]# yum clean^[[6~已加载插件:aliases, auto-update-debuginfo, changelog, fastestmirror, filter-          : data, fs-snapshot, keys, langpacks, list-data, merge-conf,          : post-transaction-actions, priorities, protectbase, ps,          : remove-with-leaves, rpm-warm-cache, show-leaves, tsflags,          : upgrade-helper, verify, versionlock错误:清理命令需要参数:headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all[root@localhost loca_repo]# ^C[root@localhost loca_repo]# yum clean allloca_repo                                        | 2.9 kB     00:00     loca_repo/primary_db                               | 7.0 kB   00:00     Determining fastest mirrors0 packages excluded due to repository protections源标识                            源名称                            状态loca_repo                         loca repo                         8repolist: 8看吧,这里已经显示我们配置的loca_repo源了,并且有8包,即为我们copy过去的包了


本文出自 “马尔高” 博客,请务必保留此出处http://kgdbfmwfn.blog.51cto.com/5062471/1690005