Linux 入门记录:二十、Linux 包管理工具 YUM
一、YUM(Yellowdog Updater, Modified)
1. YUM 简介
RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题。很多时候安装一个软件首先需要安装 1 个或多个(有时多达上百个)其他软件,手动解决依赖问题很复杂。使用 YUM可以解决这个问题。Linux 底层也是通过 YUM 来进行软件包管理的(包括图形界面)。
2. 设计目标
YUM(Yellowdog Updater, Modified)是一个基于 RPM 包管理的字符前端软件包管理器,设计目的主要是用来自动解决 RPM 的依赖问题。其特点如下:
- 自动解决依赖关系
- 可以对 RPM 进行分组,并基于组进行安装操作
- 引入仓库概念,支持多个仓库
- 配置简单(/etc/yum.conf 和 /etc/yum.repos.d/*.repo)
二、YUM仓库(Repository)
1. 仓库简介
YUM 引入了仓库(Repository)的概念,用来存放所有现有的 RPM包。当使用 YUM 安装一个 rpm 包的时候,如果存在依赖关系,YUM 会自动地在仓库中查找依赖并进行安装。仓库可以是本地的,也可以通过 http、ftp 或 nfs 形式使用集中、统一的网络仓库。YUM 通过仓库来很好地管理 RPM 包。
2. 配置文件
YUM 的配置文件有 2 种:
(1)YUM 的主配置文件 /etc/yum.conf,为所有仓库提供公共配置。配置参数格式如下:
[main]
cachedir=/var/cache/yum/$basearch/$releasever 包的缓存目录
keepcache=0 安装后是否保留缓存
debuglevel=2 调试级别,默认为2(0~10)
logfile=/var/log/yum.log 日志文件
exactarch=1 是否需要平台完全匹配
obsoletes=1 是否需要检查已过期仓库
gpgcheck=1 是否检查包的完整性和合法性
plugins=1 是否允许支持YUM插件功能
installonly_limit=5 允许保留内核包的数量
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release 指定一个软件包,YUM会根据这个包判断你的发行版本,CentOS里默认centos-release
(2)各个仓库的配置文件 /etc/yum.repos.d/ *.repo。配置参数格式如下:
[base] 仓库名,必须唯一
name=CentOS-$releasever - Base 描述信息
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra 镜像列表,根据该地址动态获取baseurl
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ 真正的仓库地址,可以多个
enabled=1 是否启用该仓库
gpgcheck=1 是否进行包的合法性检测
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 软件包的公钥所在的文件路径
enablegroups=1 是否基于组来批量管理程序包
failovermethod={roundrobin|priority} 有多个url可供选择时,YUM的选择次序,默认roundrobin(随机选择)
cost=1000 仓库优先级,默认1000
备注部分:
base库:通常为系统发行版所提供的程序包(光盘)
updates库:存放更新包
extra库:存放额外包
epel库:epel库文件
三、YUM基本命令
YUM 管理软件包的常用命令有:
yum install package-name 安装指定软件包
yum remove package-name 卸载指定软件包
yum update package-name 升级指定软件包
四、YUM查询
yum search keyword 关键字搜索相关包
yum list [all|installed|recent|updates] 列出[全部|已安装的|最近的|更新]所有包
yum info package-name 查询包信息
yum whatprovides filename 查询哪个包提供了目标文件
五、创建YUM仓库
可以通过以下方式手动创建 YUM 仓库:
1. 将所有 rpm 文件拷贝到一个文件夹中
2. 通过 rpm 命令手动安装 createrepo 软件
3. 运行 createrepo -v /rpm-directory
4. 如果有分组信息,则再运行命令的时候使用 -g 参数指定分组文件
createrepo -g /tmp/*comps.xml/rpm-directory
(CentOS/RHEL 的分组信息保存在光盘目录下 repodata/,文件名以 comps.xml 结尾)
创建好之后,本机可以通过 file 方式直接使用,或者可以通过 http、ftp 或 nfs 协议共享出去。
六、YUM缓存
YUM 为了提高速度会有很多缓存,但有时候缓存会造成一些故障,可以通过以下命令来清理缓存:
yum clear all
每次运行 YUM 安装或查询一类的命令时会生成缓存。
OK,Linux 入门记录系列暂时告一段落。
参考链接:YUM 的使用和YUM源的配置
Linux 入门记录:二十、Linux 包管理工具 YUM的更多相关文章
- Linux 入门记录:十九、Linux 包管理工具 RPM
一.源代码管理 绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为 tar.gz 的归档压缩文件.程序源代码需要编译为二进制可执行文件后才能够运行使用.源代码的基本编译流程为: ./confi ...
- Linux 入门记录:十五、Linux 网络基本配置
一.以太网(Ethernet) 以太网(Ethernet)是一种计算机局域网技术.IEEE 组织的 IEEE 802.3 标准制定了以太网的技术标准,它规定了包括物理层的连线.电子信号和介质访问层协议 ...
- 包管理工具-yum
yum介绍 yum(全称为 Yellow dog Updater, Modified)是一个在 Fedora和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器.基于 RPM 包管 ...
- Linux 入门记录:十二、Linux 权限机制【转】
转自:https://www.cnblogs.com/mingc/p/7591287.html 一.权限 权限是操作系统用来限制资源访问的机制,权限一般分为读.写.执行. 系统中每个文件都拥有特定的权 ...
- Linux 入门记录:十二、Linux 权限机制
一.权限 权限是操作系统用来限制资源访问的机制,权限一般分为读.写.执行. 系统中每个文件都拥有特定的权限.所属用户及所属组,通过这样的机制来限制哪些用户.哪些组可以对特定的文件进行什么样的操作. 每 ...
- Linux 入门记录:十八、Linux 系统启动流程 + 单用户修改 root 密码 + GRUB 加密
一.系统启动流程 一般来说,Linux 系统的启动流程是这样的: 1. 开机之后,位于计算机主板 ROM 芯片上的 BIOS 被最先读取,在进行硬件和内存的校验以及 CPU 的自检没有异常后, BIO ...
- Linux 入门记录:十六、Linux 多命令协作:管道及重定向
一.多命令协作 在 Linux 系统当中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现一个或多个很简单的功能.通过将不同功能的命令组合一起使用,可以实现某个复杂功能的. Linux ...
- Linux 入门记录:十、Linux 下获取帮助
一.获取帮助 Linux 提供了极为详细的帮助工具和文档,通过查阅相关文档,可以大大减少需要记忆的东西并提高效率. 二.--help参数 几乎所有命令都可以使用 -h 或 --help 参数获取命令的 ...
- Linux 入门记录:十四、网络基础
一.IP地址 IP 地址是因特网上的每个网络节点在全球范围内的唯一标识符,一个 IP 地址唯一标识一个主机(严格来说是标识一个网卡接口 network interface card). 现在应用最为广 ...
随机推荐
- chrome extension demos
chrome extension demos demo https://github.com/hartleybrody/buzzkill/blob/master/bootstrap.js https: ...
- 深入学习 Redis系列
深入学习 Redis(1):Redis 内存模型 深入学习 Redis(2):持久化 深入学习 Redis(3):主从复制 深入学习 Redis(4):哨兵
- Django 2.0 学习(10):Django 定制化
定制化admin表单 通过使用admin.site.register(Question)注册Question模型,Django可以构造默认的表单.通常,可以通过对象的注册机制来告诉Django我们想要 ...
- hadoop SequenceFile示例
1.写入,SequenceFile的key和value不一定是Writable,只要能被Serialization序列化和反序列化就可以. private static final String[] ...
- 【转】C# typeof()实例详解
转自:http://www.cnblogs.com/lm3515/archive/2010/09/02/1815725.html typeof(C# 参考) 用于获取类型的 System.Type 对 ...
- 【刷题】BZOJ 3513 [MUTC2013]idiots
Description 给定n个长度分别为a_i的木棒,问随机选择3个木棒能够拼成三角形的概率. Input 第一行T(T<=100),表示数据组数. 接下来若干行描述T组数据,每组数据第一行是 ...
- [CQOI2014]数三角形 组合数 + 容斥 + gcd
推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...
- 【链表】【UVA11988】Broken Keyboard
传送门 明明是道黄题我竟然来写博客……我真的是什么数据结构也不会写了 Description 你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下.你却不知道此问题,而是专心致志地 ...
- Better Linux Disk Caching & Performance with vm.dirty_ratio & vm.dirty_background_ratio
In previous posts on vm.swappiness and using RAM disks we talked about how the memory on a Linux gue ...
- mybatis的mapper的特殊符号处理
这种问题在xml处理sql的程序中经常需要我们来进行特殊处理. 其实很简单,我们只需作如下替换即可避免上述的错误: < <= > >= & ' " < ...