一、yum简介

        a、yum,是yellow dog updater,modified的简称;

        b、为了提供RPM软件包安装性而开发的一种软件包管理器;

        c、功能:方便的添加、删除、更新RPM包,自动解决包的依赖性问题;

二、

    配置文件:

            /etc/yum.conf

            /etc/yum.repo.d/*.repo

        1、/etc/yum.conf

            yum的配置文件分为两部分:main和repository

                    main:定义了全局配置选项

                    repository:定义每个源/服务器的具体配置。

                                      通常位于/etc/yum.repo.d目录下

        

 #/etc/yum.conf 配置文件详解:

    [main]

cachedir=/var/cache/yum
  //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 文件去查询过去所做的更新。
pkgpolicy=newest
  //包的策略。一共有两个选项,newest 和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository 中同时存在,yum 应该安装哪一个,如果是newest,则yum 会安装最新的那个版本。如果是last,则yum 会将服务器id 以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
distroverpkg=redhat-release
  //指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包。
tolerant=1
  //有1和0两个选项,表示yum 是否容忍命令行发生与软件包有关的错误,如果你设为1,则yum 不会出现错误信息。默认是0
exactarch=1
  //有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,
retries=6
  //网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6.
obsoletes=1
  //这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
plugins=1
  //是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。

2、/etc/yum.repos.d/*.repo
[serverid]                            //serverid是用于区别各个不同的repository;
name=Some name for this server        //repository的描述,支持¥releasever $basearchbaseurl=url://server1/path/to/repository/            //baseurl :http,ftp,file
     url://server2/path/to/repository/
     url://server3/path/to/repository/gpgcheck=1                                            //包完整性和来源检测
exclude=compiz* *compiz*                              //禁止通配到的软件包的安装和更新failovermethod=priority                               //priority根据url次序,roundrobin 随机循环gpgkey=file:///etc/pki/rpm-gpg/RPM-GPM-GPG-KEY-fedora-$basearch    //定义校验的gpg密钥

三:常用操作命令

        1、#yum repolist [ all | enabled | disabled ]           //显示仓库列表

        2、#yum list                                                        //显示程序包

        3、#yum install package1 [package2] [...]             //安装或者升级程序包

        

        4、#yum update package1 [package2] [...]           //升级程序包

             #yum downgrade package1 [package2] [...]    //降级程序包

        

        5、#yum check-update                                        //检查可用升级

        6、#yum remove | erase package1 [package2] [...]    //  卸载程序包

        7、#yum info [ ... ]                                                    //查看程序包information

        8、#yum                                                                 //查看指定特性

        9、#yum clean [ packages | all ]                              //清理本地缓存

      10、#yum makecache                                               //创建缓存

      11、#yum search [ string1] [ string2 ] [...]                    //指定关键字搜索包及summary

      12、#yum reinstall package1 [ package2 ] [ ... ]         //重新安装

      13、#yum deplist package1 [ package2 ] [ ... ]            //查看制定包所依赖的capabilities

      14、#yum history [ info | list | status | packages-list | packages-info ]

                                                                                         //查看yum事务历史

       包组管理相关的命令

        1、#groupinstall group1 [ group2 ] [ ... ]

        2、#grouupdate group1 [ group2 ] [ ... ]

        3、#grouplist [ hidden ] [ groupwildcard ] [ ... ]

        4、#groupremove group1 [ group2 ] [ ... ]

        5、#groupinfo group1 [ group2 ] [ ... ] 

        yum的命令行选项

        1、--nogpgcheck : 禁止运行gpg check

        2、-y :自动回答为yes 

        3、-q :静默模式

        4、--disablerpo=repoidglob : 临时禁止用此处指定的repo

            --enablerepo=repoidglob :临时启用repo

        5、--noplugins : 禁用所有插件

四:编译

        1、编译三部曲

         ./configure :

              (1)通过选项传递参数,指定启用特性、安装路径等;

                      执行时会参考用户的指定以及makefile.in 文件生成makefile

              (2)检查依赖到的外部环境

                            make:

                                    根据makefile文件,构建应用程序。

                            make install

                开发工具:

                        autoconf:生成configure脚本

                        automake:生成makefile.in

        建议:安装前查看INSTALL,README

2、 编译c源代码:                    
    前提:提供开发工作和开发环境。                                
    开发工具:make、gcc等                                
    开发环境:开发库、头文件                                          
        glibc:标准库                                                                 通过“包组”提供开发组件。                                     
          Centos6 :"development tools","server platform develoment"                       Centos7  : "development tools"

        3、编译过程
第一步:configure脚本                             
选项:指定安装位置、制定启用的特性                            
    --help 获取其支持使用的选项                                        选项分类:                                               安装路径设定:                                                       --prefix=:指定默认安装位置                                                                                                               --sysconfdir=/PATH/TO/SOMEWHERE 配置文件路径                                               system types:                                               optional features:可选特性                                                        --disable-FEATURE                                                        --enable-FEATURE[=ARG]                                               Optional Packages :可选包                                                        --with-PACKAGE[=ARG]                     第二步:make                    第三步:make intall            安装后的配置:                        (1)导出二进制程序目录至PATH环境变量中                                编辑文件/etc/profile.d/NAME.SH                                            export PATH=/PATH/TO/BIN:$PATH                        (2)导出库文件路径                                编辑 /etc/ld.so.conf.d/NAME.conf                                系统重新生成缓存  ldconfig -v                        (3)导出头文件                                ln -sv 基于链接的方式实现                        (4)导出man文件                                编辑/etc/man.config文件