yum –rpm前端工具详解

 1、yum 介绍

       YUM: Yellowdog Update Modifier, rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具

        yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)

        文件服务器:

        ftp://

        http://

        file:///    (第三个 / 代表根 )

        

2、yum配置文件

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

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

        

        仓库指向的定义:

            (repodate文件所在父目录即视为仓库)

            主要项目定义即可,无需全部定义

            若重建.repo 仓库指向配置,建议/etc/yum.repos.d/只留下一个新建的.repo

            否则其他存在的.repo的文件,容易干扰配置文件,造成无法找到指向的仓库

           

        *.repo内容解析:

                [repositoryID]          #仓库ID

                name=Some name for this repository    #仓库名

                baseurl=url://path/to/repository/           #仓库地址

                enabled={1|0} #禁用 | 启用 仓库

                         1: 启用    0: 禁用

                gpgcheck={1|0} #启用|禁用gpg key检测

                gpgkey=URL #key 地址

                enablegroups={1|0}

                failovermethod={roundrobin|priority}

                cost= 默认为1000  

           

            (#failovermethode 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,

             yum选择的次序,roundrobin是随机选择,如果连接失 败则使用下一个,依次循环,

             priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。)

                              #

                eg:

                [base] ——->id

                name=CentOS-$releasever – Base      

                release=$releasever&arch=$basearch&repo=os&infra=$infra

                baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64-1503/

                   file:///media/cdrom                

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

                            gpgcheck=1

                gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

        

      仓库管理工具–   yum-config-manager

        eg:

            生成172.16.0.1_cobbler_ks_mirror_CentOS-Xx86_64_.repo

            yum-config-manager –add-repo=

            http://172.16.0.1/cobbler/ks_mirror/CentOS-Xx86_64/

        执行后,将自动生在/etc/yum.repos.d/中生成172.16.0.1_cobbler_ks_mirror_CentOS-Xx86_64_.repo  文件

             yum-config-manager –disable “仓库名" 禁用仓库

             yum-config-manager –enable “仓库名” 启用仓库

        

3.yum 命令使用

         显示仓库列表:

         repolist [all|enabled|disabled]

         显示程序包:

         list tool_name   显示XX的程序包

            # yum list [all | glob_exp1] [glob_exp2] […]

            # yum list {available|installed|updates} [glob_exp1]

            […]

         安装程序包:

            install package1 [package2] […]

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

         升级程序包:

            update [package1] [package2] […]

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

         检查可用升级:

            check-update

         卸载程序包:

            remove | erase package1 [package2] […]

         查看程序包information:

                info […]

               eg:   yum info tree

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

            provides | whatprovides feature1 [feature2] […]

         清理本地缓存:

            clean [ packages | metadata | expire-cache |

            rpmdb | plugins | all ]

            当仓库已经更新时候,需要清理缓存,更新各文件的新路径

         构建缓存:

            makecache

         搜索: search string1 [string2] […]

            以指定的关键字搜索程序包名及summary信息

         查看指定包所依赖的capabilities:

            deplist package1 [package2] […]

          

         查看yum事务历史:

            history [info|list|packages-list|packages-info|

            summary|addon-info|redo|undo|

            rollback|new|sync|stats]

            yum history

            yum history info 6

            yum history undo 6

         日志 文件:

            /var/log/yum.log

         安装及升级本地程序包:

            * localinstall rpmfile1 [rpmfile2] […]

            (用install替代)

            * localupdate rpmfile1 [rpmfile2] […]

            (用update替代)

        

         yum的命令行选项:

            –nogpgcheck:禁止进行gpg check

            -y: 自动回答为“ yes”

            -q:静默模式

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

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

            –noplugins:禁用所有插件

       

4.包组管理的相关命令:

        groupinstall group1 [group2] […]

            包组的名字有空格时候,需要用”“引起

        groupupdate group1 [group2] […]

        grouplist [hidden] [groupwildcard] […]

        groupremove group1 [group2] […]

        groupinfo group1 […]

       

       eg:

        yum grouplist   查询可用包组

        1.jpg

        安装包组:

        yum groupinstall "Development Tools"

        

5.使用光盘当作本地yum仓库:

         (1) 挂载光盘至某目录,例如/media/cdrom

            # mount /dev/cdrom /media/cdrom

            (/dev/cdrom—>sr0  ,救援模式下只能直接访问sr0,软链接不可用)

        (2) 创建配置文件(在原repo 文件下面追加内容就可以)

            [cdrom]

            name=centos7 cdrom

            baseurl=file:///mnt/cdrom

            gpgcheck=0

            enabled=1

        注意:需要配置自动挂载cdrom 才能一直使用,否则重启会失效

        6中,可以挂载/misc/cd ,需要时候则自动挂载,无需在/etc/fstab中配

        置自动挂载

        (添加完成后,yum repolist ,可以查看仓库信息)

       

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

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

            $arch: 平台, i386,i486,i586,x86_64等

            $basearch:基础平台; i386

            $YUM0-$YUM9:自定义变量

         实例:

            http://server/centos/$releasever/$basearch/

            http://server/centos/7/x86_64

            http://server/centos/6/i384

        

7.创建yum仓库文件repodata (自建仓库):

        生成仓库文件repodata:(需要在仓库目录下执行)

        createrepo [options] <directory>

        -v 显示详情

        注: yum视仓库目录是否有repodata 为仓库标志

    

    示例:  手动创建仓库

        1. 建立仓库文件夹

          /tmp下建立test_repo文件夹,复制tree的rpm包至该目录

        

        2:复制仓库中的rpm包到仓库中

        略

        

        3: 进入仓库目录,使用命令 createrepo ,生成仓库文件repodata

        yum --rpm前端工具详解2.jpg

        4:配置 .repo 文件,禁用其他仓库,并创建新仓库地址

        其中,baseurl为仓库文件夹路径

        配置/etc/yum.repos.d/base.repo 文件,添加 test_repo 仓库信息:

        (注意:需要停用其他仓库,设置其他仓库的enabled=0)

        yum --rpm前端工具详解3.jpg

        (添加完成后,yum repolist ,可以查看仓库信息)

        yum --rpm前端工具详解4.jpg

        5. 测试仓库,安装 tree

        yum --rpm前端工具详解5.jpg

        

原创文章,作者:ldt195175108,如若转载,请注明出处:http://www.178linux.com/39760

(0)
ldt195175108ldt195175108
上一篇 2016-08-24 21:22
下一篇 2016-08-24 21:22

相关推荐

  • NoSQL之MongoDB

    分布式系统理论 1、 CAP: 分布式系统只能满足其中两个  Consistency :一致性 Availibility:可用性 Partitions Tolerance :分区容错性 C,A : SQL 传统的数据库。 两段机制。 C,P :悲观枷锁机制,分布式加锁机制。加锁机制与SQL不太一样。 这里的C为最终一致性。 放弃C后的特例,既可以保证可用性,…

    2018-01-09
  • N22期-第6周作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysint /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目…

    Linux干货 2016-10-09
  • Linux系统网络属性管理之bond

    Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。 Bonding的工作模式 •Mode 0 (balance-rr) 轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口…

    Linux干货 2016-09-18
  • N23-卡卡琦-第二周

    1、文件管理类命令 常规命令:copy、mv、rm (1).copy 文件复制 用法: 注意:复制文件只是复制文件的数据而不是元数据,但是可以保留元数据的信息。 单源复制:目录是否存在都可以 多源复制:目录必须是存在的 -i:提醒用户操作确认(交互式) -f:强行覆盖 -r:递归复制目录 -p:保留源数据 -a:用于实现归档,做备份 -d:不跟踪符号链接所指…

    Linux干货 2016-12-11
  • 谁说C语言很简单?

    前两天,Neo写了一篇《语言的歧义》其使用C语言讨论了一些语言的歧义。大家应该也顺便了解了一下C语言中的很多不可思异的东西,可能也是你从未注意到的东西。 是的,C语言并不简单,让我们来看看下面这些示例: 为什么下面的代码会返回0?(这题应该很简单吧) int x;   return x == (1&…

    Linux干货 2016-03-20
  • Homework Week-14 iptables及tcpwraper访问控制

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; iptables -A INPUT -d 192.168.1.101 -p …

    Linux干货 2016-12-05