首页 > 代码库 > 简析yum使用

简析yum使用

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
    yum的优点:
        1.安装方便,自动解决添加或删除rpm包时遇到的依赖问题。
        2.可以同是配置多个源。
    yum的缺点:
        需要yum源的支持。(没有源什么都做不了)多个yum源并存时,注意不能重名(.repo文件不可以重名,配置文件里面的库名也不可以重名)。避免产生冲突。
    yum的简单用法:
        安装和删除;
            安装:$yum install -y(加入-y选项的好处:所有的询问都会回答yes.减少安装的交互)
            在首次安装完系统特别是遵循最小化安装的可以扩展安装几个命令:
            # yum install  lrzsz tree telnet nmap sysstt -y (前提是可以上网,或者由本地yum源)
                  $ yum  install nginx --enablerepo=(指定yum源)
            删除:$ yum  remove  (这个需要注意:特别是关联系统库文件的看清楚在执行。不然。会删系统库)
        更新
            # yum  update (可以理解为win的打补丁)
            # yum  update kernel kernel-source (更新kernel和kernel source)
            # yum upgrade (相比update  还可以升级陈旧的软件包)
        查询
            查询rpm包的信息:以tree 举例
            [root@swallow yum.repos.d]# yum info tree*
            Loaded plugins: fastestmirror, security
            Loading mirror speeds from cached hostfile
            Installed Packages
            Name        : tree
            Arch        : x86_64
            Version     : 1.5.3
            Release     : 2.el6
            Size        : 65 k
            Repo        : installed
            From repo   : local
            Summary     : File system tree viewer
            URL         : http://mama.indstate.edu/users/ice/tree/
            License     : GPLv2+
            Description : The tree utility recursively displays the contents of directories in a
                        : tree-like format.  Tree is basically a UNIX port of the DOS tree
                        : utility.
            可以搜索匹配特定字符的rpm包的信息。以 wget 为例;
            [root@swallow yum.repos.d]# yum search wget
            Loaded plugins: fastestmirror, security
            Loading mirror speeds from cached hostfile
            ============================ N/S Matched: wget ===========================================
            wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
        yum源的缓存
            首先我们简单看一下:yum的相关配置文件:
            $ls -l /etc/yum*
            -rw-r--r--. 1 root root  969 Feb 22  2013 /etc/yum.conf

            /etc/yum:
            total 16
            drwxr-xr-x. 2 root root 4096 Jan 18 15:03 pluginconf.d
            drwxr-xr-x. 2 root root 4096 Feb 22  2013 protected.d
            drwxr-xr-x. 2 root root 4096 Feb 22  2013 vars
            -rw-r--r--. 1 root root  444 Feb 22  2013 version-groups.conf

            /etc/yum.repos.d:
            total 16
            -rw-r--r--. 1 root root 1926 Nov 27  2013 CentOS-Base.repo
            -rw-r--r--. 1 root root  638 Nov 27  2013 CentOS-Debuginfo.repo
            -rw-r--r--. 1 root root  630 Nov 27  2013 CentOS-Media.repo
            -rw-r--r--. 1 root root 3664 Nov 27  2013 CentOS-Vault.repo
        截取部分 /etc/yum.conf 文件解读:
        [root@swallow ~]# cat /etc/yum.conf
        [main]
        cachedir=/var/cache/yum/$basearch/$releasever  # 缓存目录的由来
        keepcache=0        
        debuglevel=2    #debug级别
        logfile=/var/log/yum.log    #yum的日志文件
        exactarch=1      #代表只升级和你安装软件包cpu体系一致的包 。($ uname -m  查看CPU构架)
        obsoletes=1
        gpgcheck=1        #是否校验
        plugins=1
        installonly_limit=5
        bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
        distroverpkg=centos-release

        # PUT YOUR REPOS HERE OR IN separate files named file.repo
        # in /etc/yum.repos.d     ###明确指出:你的yum源安装在  这个目录下并且 以.repo 结尾。
            查看缓存目录下有什么
            $ tree /var/cache/yum/ -L 3  (-L 3 是只显示前三级。后面的隐藏)
                /var/cache/yum/
                ├── timedhosts.txt
                └── x86_64
                    └── 6
                        ├── base
                        ├── extras
                        ├── timedhosts.txt
                        └── updates
            这些文件的由来;在启动新yum源是系统读取的时候,缓存生成的。
        为什么要清除这些缓存:当假设新源的时候。旧的yum源缓存会对新源产生性能的影响。
        清除缓存的命令: # yum  clean all
        生成缓存的命令: # yum  makecache
            # yum install tree
            Loaded plugins: fastestmirror, security
            Loading mirror speeds from cached hostfile
             * base: mirrors.btte.net
             * extras: mirrors.nwsuaf.edu.cn
             * updates: mirrors.nwsuaf.edu.cn
            base                                                         | 3.7 kB     00:00                                    
            extras                                                       | 3.4 kB     00:00                                    
            extras/primary_db                                   |  37 kB     00:00                                    
            updates                                                    | 3.4 kB     00:00                                    
            updates/primary_db                                | 4.3 MB     00:11                                   
            Setting up Install Process
            Package tree-1.5.3-3.el6.x86_64 already installed and latest version
    下面我们来看简单看下配置文件的写法并且搭建本地的yum源。
        这里以一个搭建好的源为例:
            [local]                             #库名称
            name=CentOS-$releasever - Base      #库名称的描述,方便区分不同的库
            baseurl=file:///mnt                 #关键位置**  源的地址
            enabled=1                           #***关键部分 1 代表启动源。0 关闭
            gpgcheck=1                          # 校验地址  一般本地源可以关闭
            gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  # 系统提供的校验值
                                 # 此处如果开启校验。一定要确保这个文件存在于你的系统上
        制作方法:
            1.  挂载镜像光盘
                # mount /dev/cdrom /mnt
                # df -h  (检查是否挂载成功  )
                Filesystem      Size  Used Avail Use% Mounted on
                /dev/sr0        4.2G  4.2G     0 100% /mnt
                (这里需要说明的是: cdrom  和 sr0 的软链接。  /mnt 文件可以任意创建。
                # ll /dev/cdrom
                    lrwxrwxrwx. 1 root root 3 Jan 23  2017 /dev/cdrom -> sr0)
            2. 制作yum源
                # mv CentOS-Base.repo CentOS-Base.repo.BAK  (避免冲突,也为了更好看效果把原yum源备份)
                # vim local.repo
                把上面 的例子 录入即可。

        如果在操作的时候出现错误:
        Loaded plugins: fastestmirror, security
        Existing lock /var/run/yum.pid: another copy is running as pid 39746.
        我的解决方式:  # kill  -9  pid
制作阿里云和网易的源的方法:
    网易源做法:
        首先备份/etc/yum.repos.d/CentOS-Base.repo
              # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
        新建163的yum源
              # wget -O /etc/yum.repos.d/CentOS6-Base-163.repo  http://mirrors.163.com/.help/CentOS6-Base-163.repo
        生成新的缓存。
              # yum  clean all
              # yum makecache
    阿里云源做法:
        1、备份
            # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
        2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
        CentOS 5
        # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

        CentOS 6
        # wget -O /etc/yum.repos.d/CentOS-Base-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo

        CentOS 7
        # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        3、之后运行yum  clean up ;yum makecache生成缓存
    在使用的时候,你可以选择开启那个源:
        进入.repo 文件中找到enabled=1  把参数改为0 就关闭了该源。



本文出自 “赵雁生的linux之旅” 博客,请务必保留此出处http://12042068.blog.51cto.com/12032068/1894028

简析yum使用