美文网首页
【Linux】yum(Yellow dog Updater Mo

【Linux】yum(Yellow dog Updater Mo

作者: 莲藕工作室 | 来源:发表于2020-04-29 19:33 被阅读0次

    Linux使用过程中非常重要的命令——yum。


    大学期间刚开始跟着慕课网上的视频学习Linux的时候下载安装软件总是先下载到Windows上然后上传到虚拟机上,解压后安装报什么错解决什么错,缺什么依赖安装什么依赖。2015年实习开始,第一个任务就是搭建Redis,第一次接触了yum命令,从此除了必要的测试、梳理离线安装步骤以外,剩下的东西都通过yum来安装,一条yum -y install命令解决一切问题。

    前一段时间,应该说是过去一年都在跟Zookeeper打交道,接下来会系统梳理Zookeeper的部分知识,特别是在配置文件管理,微服务管理方面,在此之前系统的梳理一下yum到底是个什么样的命令,通过什么原理下载安装软件。

    YUM的介绍

    YUM全称为 Yellow dog Updater Modified,它是一个在线的软件安装命令。YUM是C/S架构,是RPM的前端工具,依赖于RPM存在的。能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

    注:
    RPM:原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL2规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
    GPL:五种常用开源协议之一,Linux就是基于此协议的开源操作系统。

    例如我们需要安装一个软件A,而软件A依赖B,而B可能还继续依赖其他软件,通过yum我们只需要安装A,其他依赖包会自动安装。

    那么YUM是如何下载安装RMP包的呢?


    但是上述这种机制,也存在着一些问题,万一服务器上的程序包或者依赖关系发生了变化,就会导致服务器和客户端本地的元数据不一致。想解决这个问题,可以在每次使用YUM的时候,都向服务器请求元数据。但是这种方式浪费带宽和时间,有的时候明明没有变化,但还是需要下载。

    如何解决这种问题呢?
    YUM服务器上有一个特殊文件,文件中记录了每一个元数据文件的校验码,实际上每次运行YUM的时候,都会向服务器请求这个文件(刚刚配置好YUM源的时候,本地没有这个文件,这时候肯定是要下载元数据的),并和本地元数据中的校验码文件进行对比,如果一致则代表元数据没有变化,本地元数据有效,否则就重新请求元数据。

    YUM的安装及配置

    我们可以通过yum -y install安装其他软件,如果Linux服务器没有yum,该如何安装?

    1. 首先,通过网址http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz下载yum-3.4.3。
    2. 解压压缩包 tar xvf yum-3.4.3.tar.gz
    3. 执行安装命令,更新yum catch
    #依次执行以下命令
    cd yum-3.4.3
    yummain.py install yum
    yum check-update  
    yum update  
    yum clean all  
    
    1. 配置国内镜像源
    #安装wget
    yum -y install wget
    

    如图所示表明wget成功安装。

    #备份之前的仓库文件
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
    
    #下载阿里云的仓库文件
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    #清除缓存
    yum clean all
    #新建缓存缓存
    yum makecache
    

    主配置文件/etc/yum.conf
    yum.conf是yum的主配置文件,手动安装yum时,需要手动创建改文件。

    [root@Centos7 ~]# cat /etc/yum.conf         
    ##1表示使能,0表示不使能;
    ##等号左右不要有空格,否则可能出现语法错误;
    [main]                                              ##仓库ID
    cachedir=/var/cache/yum/$basearch/$releasever       ##缓存文件存放目录
    keepcache=0                                         ##缓存文件是否保存下来
    debuglevel=2                                        ##debug调试级别,默认为2
    logfile=/var/log/yum.log                            ##日志文件路径
    exactarch=1                                         ##安装程序包的时候,做精确地平台匹配(例如:配置为0则允许在i386上更新i686的RPM包)
    obsoletes=1                                         ##仅在更新的时候生效,允许更新陈旧的RPM包
    gpgcheck=1                                          ##安装程序包的时候,检查GPG(GNU Private Guard)
    plugins=1                                           ##是否允许使用插件(我们一般会用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会根据这个包判断发行版本
    

    仓库文件
    yum仓库文件指/etc/yum.repos.d/目录下以,repo结尾的配置文件。
    repo文件是Fedora、Redhat和Centos中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。
    文件必须以.repo结尾,否则不会被YUM使用;
    一个repo文件可以指向一个仓库,为仓库的指向提供配置信息;
    一个repo文件也可以指向多个仓库,只不过为了便于管理切割成了多个repo文件;

    ##1表示使能,0表示不使能;
    ##等号左右不要有空格,否则可能出现语法错误;
    [repositoryID]:                                        
    ##设定仓库ID(main不能作为ID,因为它是公共的);
    name=Some name for this repository                      
    ##设定YUM仓库名;
    baseurl=url://server1/path/to/repository/               
    ##设定YUM仓库访问路径(指向repodata这个目录的上级目录);
                url://server2/path/to/repository/           
                ##第二行及其之后的URL不能顶格写
                url://server3/path/to/repository/
    mirrorlist=                                                 
    ##不能与baseurl同时使用,设定镜像服务器地址URL(指向的是个文本文件,里面存放多个指向仓库的URL,YUM会将这个文件下载到本地然后连接仓库);
    enabled={1|0}                                               
    ##设定是否启用仓库,默认启用;
    gpgcheck={1|0}                                              
    ##设定是否在安装此仓库中的程序包时,进行GPG校验,来RPM包的完整性和来源合法性;
    repo_gpgcheck={1|0}                                         
    ##设置是否检查仓库元数据签名信息;
    gpgkey=URL                                                  
    ##指向GPG密钥文件的访问路径(可能是仓库或权威机构提供);
    enablegroups={1|0}                                          
    ##设置是否在仓库上使用组批量管理程序包;
    failovermethod={roundrobin|priority}                        
    ##故障转移方法(轮询|优先级),默认为roundrobin随机挑选,priority是按顺序选择;
    exclude=compiz* *compiz* fusion-icon*                       
    ##用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加;
    keepalive={1|0}                                            
    ##是否当远程服务器是HTTP/1.1时,保持连接功能;
    username                                                    
    ##有些服务器不支持匿名访问,需要指明要访问服务器的用户名;
    password                                                    
    ##有些服务器不支持匿名访问,需要指明要访问服务器的密码;
    cost=                                                       
    ##访问仓库的开销(默认为1000),用数字表示;
    group_package_types=default, mandatory, optional            
    ##安装包组中指定类型的包;
    

    YUM的使用

    常用命令

    ##列出所有可更新的软件清单命令
    yum check-update
    ##更新所有软件命令
    yum update
    ##仅安装指定的软件命令
    yum install <package_name>
    ##仅更新指定的软件命令
    yum update <package_name>
    ##列出所有可安裝的软件清单命令
    yum list
    ##删除软件包命令
    yum remove <package_name>
    ##查找软件包 命令
    yum search <keyword>
    ##清除缓存命令:
    yum clean packages              ##清除缓存目录下的软件包
    yum clean headers               ##清除缓存目录下的 headers
    yum clean oldheaders            ##清除缓存目录下旧的 headers
    yum clean, yum clean all (= yum clean packages; yum clean oldheaders) ##清除缓存目录下的软件包及旧的headers
    

    常用选项

    -q, --quiet:静默模式
    -v, --verbose:详细模式
    -y, --assumeyes:自动回答为yes;
    --assumeno:自动回答为no
    -R [minutes], --randomwait=[minutes]:最多等待时间
    -x [package], --exclude=[package]:通配要排除的包
    --noplugins:禁用所有插件;
    --color=COLOR:带颜色
    --downloadonly:仅下载包,不安装或升级。默认下载在yum的缓存目录中,默认为/var/cache/yum/$basearch/$releasever
    --downloaddir=DLDIR:指定下载目录
    

    yum的使用相信大家都不陌生,更详细的命令、选项合集可以从网上获取。

    相关文章

      网友评论

          本文标题:【Linux】yum(Yellow dog Updater Mo

          本文链接:https://www.haomeiwen.com/subject/kownwhtx.html