侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

YUM软件包管理工具与yum命令的详细介绍

技术  /  管理员 发布于 7年前   155

一、yum介绍

Yum (Yellow dog Updater, Modified) 是一个在 Fedora 中的字符前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

rpm命令只能安装下载到本的.rpm格式的安装包,但是rpm并不能处理软件包之间的依赖关系,尤其是软件由多个.rpm包组成时,这时可以使用yum。

yum的主要是更方便的添加、删除、更新RPM包,自动解决软件包之间的依赖关系,方便系统更新及软件管理。yum通过软件仓库(repository)进行软件的下载、安装等,软件仓库可以是一个HTTP或FTP站点,也可以是一个本软件池,资源仓库也可以是多个,在/etc/yum.conf文件中进行相关配置即可。在yum的资源库中,会包括rpm的头信息(header),头信息中包括了软件的功能描述、依赖关系等。通过分析这些信息,yum计算出依赖关系并进行相关的升级、安装、删除等操作。

二、yum命令

命令格式:

yum [options] COMMAND

命令(COMMAND)列表:

check   检测 rpmdb 是否有问题check-update 检查可更新的包clean   清除缓存的数据deplist  显示包的依赖关系distribution-synchronization 将已安装的包同步到最新的可用版本downgrade  降级一个包erase   删除包groupinfo  显示包组的详细信息groupinstall 安装指定的包组grouplist  显示可用包组信息groupremove 从系统删除已安装的包组help   删除帮助信息history  显示或使用交互历史info   显示包或包组的详细信息install  安装包list   显示可安装或可更新的包makecache  生成元数据缓存provides  搜索特定包文件名reinstall  重新安装包repolist  显示已配置的资源库resolvedep  指事实上依赖search   搜索包shell   进入yum的shell提示符update   更新系统中的包upgrade  升级系统中的包version  显示机器可用源的版本

常用选项(options)列表:

-h, --help   显示帮助信息-t, --tolerant  容错-C, --cacheonly  完全从系统缓存中运行,不更新缓存-c [config file], --config=[config file]      本地配置文件-R [minutes], --randomwait=[minutes]      命令最大等待时间-d [debug level], --debuglevel=[debug level]      设置调试级别-e [error level], --errorlevel=[error level]      设置错误等级-q, --quiet   退出运行-v, --verbose   详细模式-y, --assumeyes  对所有交互提问都回答“yes”

注:以上可用命令和选项由于yum版本的不同可能会有所有不同

三、yum使用示例

3.1 安装

安装软件时,较常用的安装方式有单独安装、包组安装两种方式:

# 安装软件包 fooyum install foo# 安装 Web server 软件包组yum groupinsall "Web server"

注:groupinsall是一种快捷安装方式,他会将包组中所需的软件包一次性全部安装。如,上例中的"Web server"包组可能会包含:httpd、 crypto-utils等软件包

3.2 更新、升级

对于已安装的程序,可以进行升级操作,有以下几种升级方式:

# 检查可用更新yum check-update # 全部更机关报yum update# 更新 foo 软件包yum update foo# 或yum upgrade foo# 升级 Web server 软件包组yum groupupdate "Web server"

更新安装包时,可以使用update或upgrade,二者区别如下:

  1. yum update是更新下载源里面的metadata,包括这个源有什么包、每个包什么版本之类的
  2. yum upgrade会根据update后的元信息对软件包进行升级

3.3 删除

删除时,可以删除单个软件包或软件包组:

# 删除软件 fooyum remove foo# 删除 Web server 软件包组yum groupremove "Web server"

3.4 查找

通过search命令可以查找软件包,而info命令可以用来显示软件包信息:

# 查找名称包含 foo 的软件包yum search foo# 显示名为 foo 的软件包信息yum info foo# 显示软件包 foo 的依赖关系yum deplist foo# 显示软件包组 Web server 的信息yum groupinfo "Web server"# 显示已安装的软件包 yum list installed

四、yum的配置

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

  1. main-这个文件定义了全局配置选项,该文件只有一个。通常位于/etc/yum.conf
  2. repository-定义了源-服务器的具体配置,可能是一或多个。通常位于/etc/yum.repo.d目录

可以通过以下命令查看yum的配置:

cat /etc/yum.conf

主要配置项如下:

[main]cachedir=/var/cache/yum/$basearch/$releasever   # yum 的缓存目录,用于存储下载的RPM包和数据库keepcache=0   # 安装完成后是否保留软件包,0为不保留(默认为0),1为保留debuglevel=2   # Debug 信息输出等级,范围为0-10,缺省为2logfile=/var/log/yum.log   # yum 日志文件位置,用户通过该文件查询做过的更新exactarch=1   # 是否只安装和系统架构匹配的软件包。可选项为:1、0,默认 1。设置为1时不会将i686的软件包安装在适合i386的系统中。obsoletes=1   # update 设置,是否允许更新陈旧的RPM包,相当于upgradegpgcheck=1   # 是否进行 GPG(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全。当在这个选项设置在[main]部分,则对每个repository 都有效plugins=1   # 是否启用插件,默认1为允许,0表示不允许exclude=*.i?86 kernel kernel-xen kernel-debug   # 排除某些软件在升级名单之外,可以用通配符,各个项目用空格隔开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   # Bug 追踪路径distroverpkg=centos-release   # 当前发行版版本号# PUT YOUR REPOS HERE OR IN separate files named file.repo# in /etc/yum.repos.d

五、配置yum源

yum源配置文件通常位于/etc/yum.repo.d目录下,笔录所使用的CentOS 6.3发生版中包含以下几个配置文件:

$ # ll总用量 16-rw-r--r--. 1 root root 1926 6月 26 2012 CentOS-Base.repo-rw-r--r--. 1 root root 637 6月 26 2012 CentOS-Debuginfo.repo-rw-r--r--. 1 root root 626 6月 26 2012 CentOS-Media.repo-rw-r--r--. 1 root root 2593 6月 26 2012 CentOS-Vault.repo

其中:

  1. CentOS-Base.repo - 用于配置yum网络源
  2. CentOS-Media.repo - 用于配置yum本地源

5.1 启用yum本地源

编辑CentOS-Media.repo文件:

vi CentOS-Media.repo
# CentOS-Media.repo## This repo is used to mount the default locations for a CDROM / DVD on# CentOS-6. You can use this repo and yum to install items directly off the# DVD ISO that we release.## To use this repo, put in your DVD and use it with the other repos too:# yum --enablerepo=c6-media [command]# # or for ONLY the media repo, do this:## yum --disablerepo=\* --enablerepo=c6-media [command] [c6-media]name=CentOS-$releasever - Media# 本地源路径baseurl=file:///media/CentOS/  file:///media/cdrom/  file:///media/cdrecorder/gpgcheck=1# enabled=0# 启用本地源enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

配置后,修改CentOS-Base.repo中的enabled配置项为enabled=0,或将CentOS-Base.repo文件删除或重命名,就会从本地源安装软件

5.2 添加yum网络源

网络源通地CentOS-Base.repo文件配置,配置一个源包括以下几个部分:

  1. [serverid] - 源标识,必须唯一
  2. name - 源名称,支付$releasever等变量名
  3. mirrorlist或baseurl - 其中,

        mirrorlist是一个保存了镜像列表列表的网站

        baseurl是一个包库

如,以下是CentOS 6.3中的一个配置镜像:

[contrib]name=CentOS-$releasever - Contribmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


  • 上一条:
    Eclipse添加新server时无法选择Tomcat7的解决方法
    下一条:
    浅谈互斥锁为什么还要和条件变量配合使用
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客