软件包管理之前端管理工具yum

   2017-02-05 0
核心提示:一、前言RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人的时间和精力。那么有没有办法解决这一问题呢?在RPM中我

一、前言

RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人的时间和精力。那么有没有办法解决这一问题呢?

在RPM中我们介绍了RPM软件会记录软件之间的安装信息,其中也包括了软件之间的依赖属性。那么如果我们在安装前就分析这个列表,那么在安装时就能根据软件之间的关系将所需的软件一次性安装起来,这样就能解决这一问题,这就是 YUM 的机制。

二、yum的介绍

yum(Yellow dog Updater Modified)是CentOS中属于RPM前段软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。

三、yum repository:yum仓库

yum仓库的组成部分

3.1、数据

  • 包含所有的软件包文件

3.2、元数据

  • 指的是数据文件:包括每个包的包名、版本信息、各包所包含的文件列表、包与包之间的依赖关系、包的分组信息

小扩展:元数据是怎么来的呢?

使用createrepo工具,能够简洁的快速的将我们所指定的存放大量RPM包的目录,里面所有的RPM包信息都读出来,分析他的依赖关系并生成元数据。所以createrepo可以理解为它是制作yum元数据的工具。 在光盘里其实也有这个元数据,路径在光盘中的 [root@www mnt]# cd repodata/ 里,然后是以 sqlite文件后缀 备注:centos5 是以 xml 后缀,centos6、7是以sqlite数据库的方式存储的

四、yum的配置文件介绍

yum的配置文件有2个: 主配置文件 + 仓库配置文件

4.1、主配置文件路径 /etc/yum.conf

[main]    
cachedir=/var/cache/yum/$basearch/$releasever     
#下载RPM包的缓存目录

keepcache=0                                       
#RPM缓存的程序包安装完成后是否保存,0表示不保存,1表示保存

buglevel=2                                        
#调试级别 取值范围 0 - 10,默认值为2    

logfile=/var/log/yum.log                          
#yum相关日志存放路径

exactarch=1                                       
#是否要平台完全匹配才能安装

obsoletes=1                                       
#需不需要检查已过期的仓库

gpgcheck=1                                        
#是否检查包的完整性和合法性

plugins=1                                         
#是否允许支持yum的插件功能,0 表示不允许 ,1表示允许,建议允许,一般会用yum-fastestmirror这个插件           

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                       
#指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包

4 .2、仓库配置文件路径 /etc/yum.repos.d/*.repo

仓库文件可以有多个,而且一个或几个相关的仓库的配置信息也可保存为一个文件,并且所以的仓库文件名都以 .repo结尾。

[REPOID]             #容器名字,必须是唯一的
name=                #some name for this repository仓库的名字,仅作一个标识
baseurl=             #指定真正仓库所在的路径,可以指多个仓库
                        #例如:baseurl=file:///media/cdrom
                        #      ftp://172.168.1.1/path    #备注第二行不能顶格写,否则会出错
mirrorlist=          #列出容器可以使用站点,如果不想使用,可以再前面加 # 注释
enabled= {0 | 1}     #指是否启用这个仓库,0表示不启用,1表示启用
gpgcheck= {0 | 1}    #是否要检测软件包的合法性,0表示不检测,1表示不检查
gpgkey=              #软件包的公钥文件所在路径,例如:gpgkey=file:///media/cdrom/GPG-RPM-KEY-centos-6
cost=  
#仓库优先级,比如一个软件包在多个仓库都有,那应该选择哪个安装呢?就是根据这个优先级,默认是100,
数字越小表示越优先使用

备注:默认各仓库的用法:

        base库:通常为系统发行版所提供的程序包(就是光盘)

        updates库:存放更新包

        extra库:存放额外包

        epel库:epel库文件

           库本身有优先级的,但是仅是在客户端有,服务器端是没有优先级的

小贴士:yum可支持多个协议,包括 ftp、http、nfs和本地文件共享服务

所以仓库配置文件中的 baseurl 一项可以有多个写法,下面是各写法的格式

1)ftp

格式: ftp://server/path/to/repository

2)http

格式: http://server/path/to/repository

3)nfs

格式: nfs://server/nfs_path

4)本地文件共享服务

格式: file:///path/to/repository

五、yum安装步骤

软件包管理之前端管理工具yum

六、yum命令的使用

6.1、yum查询功能

    yum [option] [需要查询的信息][参数]

        -y:默认yum需要是交互模式,-y表示自动提供yes响应

        -q:静默模式

        search:搜索某个软件名或关键字

        list:列出所有yum所管理的软件包和名称

        info:同上,也类似rpm -qai

        provides:查找该命令是由软件安装生成的,类似rpm -df的功能

        repolist:列出所有可用的repo

例如:

[root@localhost ~]# yum provides bash

软件包管理之前端管理工具yum

[root@localhost ~]# yum repolist

软件包管理之前端管理工具yum

例如:

[root@localhost yum.repos.d]#  yum install zlib-static

6.2、安装、升级、降级、卸载功能

    yum [option] [需要查询的信息][参数]

        install:后面接需要安装的软件

        reinstall:后面接需要重新安装的软件

        update:后面接需要升级到的软件

        check-update:检查可用的升级包

        downgrade:后面接需要降级到的版本

        remove:卸载软件

        erase:功能同上,卸载

        --disablerepo=repoid 临时禁用此处指定的repo

        --enablerepo=repoid 临时启动此处启用的repo

        --noplugins:禁用所有插件

例如:

[root@localhost yum.repos.d]#  yum install zlib-static

软件包管理之前端管理工具yum

6.3、和软件组相关的功能

    yum [组功能] [软件组]

        grouplist:列出所有可使用的组列表

        groupinfo:后面接group name,可用了解该group内含所有组的名称

        groupinstall:安装整组的软件

        groupremove:删除某个组的软件

例如:

[root@localhost yum.repos.d]# yum grouplist
#所有的包组未一一列举,若想安装某组可使用groupinstall直接安装
Installed Groups:            #已经安装的软件组
   Additional Development
   Base
   Console internet tools
   Development tools
Installed Language Groups:   #已经安装的语言组
   Arabic Support [ar]
   Armenian Support [hy]
   Georgian Support [ka]
Available Groups:            #有效软件组包文件
   Backup Client    
   Backup Server
Available Language Groups:   #有效的语言组包文件
   Afrikaans Support [af]
   Albanian Support [sq]

6.4、清理缓存

    yum clean { all | package | headers }

        all:将所有的数据删除,包括元数据和软件文件

        package:将所有已下载的软件文件删除

        headers:删除所有下载的元数据文件

例如:

[root@localhost yum.repos.d]# yum clean all  #这样将会清除所有的已下载的元数据和软件文件
Loaded plugins: fastestmirror, security
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors

6.5、yum历史命令

yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo]

    history:列出历史事务

    redo:重新执行事务

    undo:撤销事务

例如:

yum history info 15     //查看yum history  id为15 的 操作

yum history undo 15     //撤销yum history  id为15 的 操作

日志文件: /var/log/yum.log

6.6、yum内置变量

$releaserver :代表系统的版本,对Yum而言指的是redhat-releaser版本,指向发行版的主版本号;只替换为主版本号,如RedHat 6.5 ,则替换为6

$basearch :系统基本架构,如果是i686,i586等基本架构就为i386

$arch :系统架构

比如我现在的系统是CentOS6.5,系统架构是x86_64,则

baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ 会自动替换为

baseurl=http://mirrors.163.com/centos/6/os/x86_64

六、如何自建yum仓库

6.1、引言:

虽然系统自带的仓库已经很常用,只要连接到互联网我们就能很容易有获取到互联网的yum仓库。但是如果是在企业内网,企业内部不允许访问互联网,又或者如果企业服务器众多,如果都要从互联网去获取yum仓库,那将很占用带宽。基于这种情况,我们就需要自己在企业内部创建yum仓库。

6.2、自建仓库需要使用的命令介绍

createrepo(create repo):创建仓库,在自建仓库时,使用命令createrepo会自动帮我们生成repodata文件作为软件的仓库,而其目录下有四个必要文件:filelists.xml.gz,other.xml.gz,primary.xml.gz和repomd.xml,其中最重要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodata目录;三是*.repo配置文件冲突(这个需要特意注意)。

小贴士:createrepo命令默认是没有安装,所以我们需要提前安装,createrepo的安装包为“createrepo-0.9.9-17.el6.noarch.rpm”,可以使用RPM或yum先将此程序包安装。

安装方法:

#yum -y install createrepo 或 rpm -ivh createrepo-0.9.9-17.el6.noarch.rpm (路径一定要写对)

6.3、自建yum仓库有2种方法

  • 1)、基于关盘镜像创建yum仓库

  • 2)、根据服务自建提供yum仓库的服务器(ftp、http、nfs)

6.4、基于关盘镜像创建yum仓库

6.4.1、先将光盘挂载至/mnt目录下

      mount /dev/cdrom /mnt

6.4.2、配置yum仓库文件

[root@www yum.repos.d]# vim /etc/yum.repos.d/local-media.repo  #如果local-media.repo不存在,请直接创建
[Meida-repo]
name=This is Local media repo
baseurl=           #指向光盘镜像路径
enabled=1                     #是否启动该仓库
gpgcheck=0                    #是否检查包完整性
[root@www yum.repos.d]# yum clean all   #清除所有的包缓存和元数据
[root@www yum.repos.d]# yum list        #列出所有的仓库和程序包

6.5、根据服务自建提供yum仓库的服务器(这里以http服务为例)

6.5.1、首先安装http服务

     yum -y install httpd 或 rpm -ivh httpd

6.5.2、关闭Linux防火墙和Selinux

#防火墙和Selinux可能会影响用户访问HTTP,所以这里需要将其禁用

[root@www yum.repos.d]# service iptables stop    #关闭防火墙服务
[root@localhost ~]# chkconfig iptables off       #关闭防火墙自动启动
[root@www yum.repos.d]# getenforce               #查看Selinux状态 Enforcing表示启用 Permissive表示不启用
Enforcing
[root@www yum.repos.d]# setenforce 0             #关闭Selinux  0表示关闭 1表示开启
[root@www yum.repos.d]# getenforce               
Permissive                                
[root@localhost ~]# vim /etc/selinux/config     #关闭Selinux开机启动,编辑confg文件,将其中SELINUX字段改为如下设置    
        SELINUX=disabled

6.5.3、启动httpd服务和开机自动服务

[root@www yum.repos.d]# service httpd start   #开启httpd服务
[root@www yum.repos.d]# chkconfig on          #设置httpd服务开机自动启动
[root@localhost ~]# netstat -tunlp | grep http  #查看http服务是否已启用
tcp        0      0 :::80                       :::*                        LISTEN      1532/httpd

6.5.4、编辑httpd的文档目录

#httpd默认的目录文档路径为/var/www/html

[root@localhost html]# mkdir /var/www/html/rpm-repo   #创建仓库路径

[root@localhost rpm-repo]# cp -a /mnt/Packages/xcb* /var/www/html/rpm-repo/   #拷贝RPM程序包为测试使用

6.5.5、使用createrepo配置yum仓库

[root@localhost rpm-repo]# createrepo /var/www/html/rpm-repo/

软件包管理之前端管理工具yum

6.5.6、验证和查看http仓库的文件

软件包管理之前端管理工具yum

6.5.7、配置和验证yum仓库

[root@localhost yum.repos.d]# vim /etc/yum.repos.d/local.repo  #编辑yum仓库文件,让仓库路径指向http的yum仓库
[http-repo]
name=http yum repo
baseurl=http://192.168.80.150/rpm-repo
enabled=1
gpgcheck=0
[root@localhost ~]# yum list

软件包管理之前端管理工具yum

 
标签: Yum
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • fedora安装软件时的一点问题:There are unfini
      问题:在安装‘添加/删除软件’那个管理项目里的软件包时,出现了如下情况 “初始化失败初始化软件包后端失败。此类现象可能在同时使用其他软件包工具时发生。更多详情 There are unfinished transactions remaining. Please run yum-complete-transactio
    02-10
  • Centos7安装yum命令 centos8如何安装yum
    步骤如下http://mirrors.163.com/centos/7/os/x86_64/Packages/到上面这个网站去下载如下RPM包(为版本号,根据最新的自己替换即可)python-iniparse-.noarch.rpmyum-metadata-parser-.x86_64.rpmyum-.centos.noarch.rpmyum-plugin-fastestmirror-*.noarch.rp
    02-10
  • 【只需3步】源码手动安装Apache以及配置(亲测可行)
    


            
 
       redhat6/centos6 解决方法 :yum安装包即可:yum install
    【只需3步】源码手动安装Apache以及配置(亲测
    作者小波/QQ463431476欢迎转载!redhat6采用centos yum源。第一步下载apache依赖的软件包并安装安装 apr下载地址:http://apr.apache.org/download.cgi 解压包:tar -jxvf apr-1.5.0.tar.bz2 注意:这里的包的格式是tar.bz2格式,如果是.tar格式的用 tar -zx
    02-10
  • 服务器 CentOS上yum安装Nginx服务
     一、更改yum源为网易的源加快速度vi /etc/yum.repos.d/CentOS-Base.repo更改内容如下# CentOS-Base.repo # # This file uses a new mirrorlist system developed by Lance Davis for CentOS. # The mirror system uses the connecting IP address of the cl
    02-10
  • Nginx安装(yum源) linux源码安装nginx
    CentOS7$ vi /etc/yum.repos.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0enabled=1CentOS6$ vi /etc/yum.repos.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/6/$ba
    02-10
  • linux下安装nginx(yum源安装) Linux安装yum源
    linux下安装nginx(yum源安装) Linux安装yum源
    cd /etc/yum.repos.dmkdir repo_bakmv *.repo repo_bak/下载阿里云repo文件wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo清空yum
    02-10
  • yum和apt-get的区别
    





		Debian 配置apt-get源
    yum和apt-get的区别 Debian 配置ap
     服务端配置1、安装apt-mirrorapt-get install apt-mirror 2、修改apt-mirror配置文件vim /etc/apt/mirror.list 参考以下配置文件:清空原有的配置文件,直接使用以下配置文件即可############# config ################### 以下注释的内容都是默认配置,
    02-10
  • Fedora再次安装手记--很爽的YUM工具
    Fedora再次安装手记--很爽的YUM工具
    好久不装Linux了,结果是连显卡驱动都不会装了,编译多次,不成功,于是只好想现成的了。     好久不装Linux了,结果是连显卡驱动都不会装了,编译多次,不成功,于是只好想现成的了。rpm -Uvh http://rpm.livna.org/livna-release-6.rpmrpm --import htt
    02-10
  • 【Linux】YUM Repositories for CentOS, RHEL &
    这里是官方wiki:https://wiki.centos.org/AdditionalResources/Repositories一、简介YUM(Yellowdog Updater Modified)是一种开源的,广泛使用的基于命令行和图形的包管理工具,适用于基于RPM(RedHat Package Manager)的Linux系统,包括但不限于Red Hat E
    02-10
  • fedora14的yum源总结
    网易镜像: http://mirrors.sohu.com/搜狐镜像: http://mirrors.sohu.com/东北大学:http://mirror.neu.edu.cn/中科大:http://mirrors.ustc.edu.cn/上海交通大学:http://ftp.sjtu.edu.cn/天津大学:http://mirror.tju.edu.cn/兰州大学:http://mirror.lzu.edu.cn/
    02-10
点击排行