查看“Linux包管理:rpm与yum”的源代码
←
Linux包管理:rpm与yum
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Linux]] == RPM == RPM 即“RedHat Package Manager”,由RedHat公司开发并被广大Linux发行版所应用(如:Fedora,CentOS,SuSE等)。<br/> 特点: * 需要安装的软件已经编译过,打包成RPM机制的安装包(.rpm),并通过里头默认的数据库记录这个软件安装时需要的依赖软件; * 安装时,RPM会根据安装包里面的依赖关系,查询系统中是否满足相应的条件,如果满足则安装,否则会报错。 * 安装后,RPM会把该软件的信息写入到主机RPM的数据库中,以便将来的查询、验证、升级和卸载等操作。 缺点: * 软件包安装的环境必须与打包时的环境一致或相当 * 必须安装了软件的依赖软件 * 卸载时,最底层的软件不能先移除,否则可能造成整个系统不能用 为了解决RPM属性依赖的问题,可以使用YUM进行操作。 === 原理 === [[File:RPM安装原理图.png|600px]] === 包命名规则 === “软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm”<br/> [[File:RPM包命名规则.png|400px]] * rpm 操作未安装的软件包使用的是包全名,如“ftp-0.17-74.fc27.i686.rpm”; * rpm 操作已安装的软件使用的是包名,如“ftp”; === 安装路径 === RPM包文件默认安装位置 {| class="wikitable" ! 路径 !! 说明 |- | /etc/ || 配置文件默认安装目录 |- | /usr/bin/ || 可执行的命令安装目录 |- | /usr/lib/ || 所依赖的函数库文件保存位置 |- | /usr/share/doc/ || 软件帮助文档,使用手册保存位置 |- | /usr/share/man/ || 软件手册,man page档案保存位置 |} == yum == YUM 即 “Yellow dog Updater, Modified”,基于 RPM 包管理的前端工具,YUM 可以看作是CS架构的软件,能够从指定的服务器自动下载 RPM 包并且安装,并自动处理依赖性关系,一次安装所有依赖的软体包。<br/> * YUM的存在很好的解决了RPM的属性依赖问题。提供了查找、安装、删除某一个、一组甚至全部软件包的命令。 * YUM 通过依赖rpm软件包管理器, 实现了rpm软件包管理器在功能上的扩展, 因此YUM是不能脱离rpm而独立运行的。 特点: * 可以同时配置多个资源库(Repository) * 简洁的配置文件(/etc/yum.conf) * 自动解决增加或删除rpm包时遇到的依赖性问题 * 使用方便 * 保持与RPM数据库的一致性 === 原理 === [[File:YUM安装原理图.png|500px]] Server端: # 对程序包进行分类后存储到不同repository容器中; # 再通过收集到的大量的rpm数据库文件,获得程序包之间的依赖关系数据,并在本地的repodata目录生成对应说明文件(.xml),以供Client端取用; #: 说明文件:存放依赖关系和所需文件在本地的存放位置 Cilent端: # 通过yum命令安装软件时发现缺少某些依赖性程序包,Client会根据本地的配置文件(/etc/yum.repos.d/*.repo)找到指定的Server端; # 从Server端repo目录下获取说明文件(.xml)后存储在本地/var/cache/yum中方便以后读取, 通过xxx.xml文件查找到需要安装的依赖性程序包在Server端的存放位置; # 再进入Server端yum库中的指定repository容器中获取所需程序包, 下载完成后在本地实现安装。 * YUM是一个在线软件管理工具,所以使用YUM进行的操作大都是需要在联网的条件下才能正常使用。 === 配置文件 === yum 使用时,需要选用合适的站点镜像,才能保证yum的正常使用。这就需要手动修改yum的设置文档“/etc/yum.repos.d/CenOS-Base.repo”。 ==== 容器查询 ==== 容器就是指Server端存放程序包的repository,包括centosplus、extras、fasttrack、os、updates等容器。最重要的一个目录就是那个“repodata”,该目录是分析RPM软件后所产生的软件依赖数据放置处。【???没看到】<br/> 查询yum使用的容器有哪些: <syntaxhighlight lang="bash"> yum repolist all </syntaxhighlight> [[File:yum使用的容器.png|600px]] * 只有当最右边的status为enabled该容器才算激活 * /etc/yum.repos.d/ 里面会有多个配置文件(.repo),yum会从里面逐个查找,所以文件里的容器名称不能有重复。 ==== repository配置 ==== 所有repository 服务器设置都应该遵循如下格式: <syntaxhighlight lang="properties"> [serverid] name=Some name for this server baseurl=url://path/to/repository/ </syntaxhighlight> 其中: # [base]:是用于区别各个不同的repository,必须有一个独一无二的名称; # name:是对repository 的描述,支持像$releasever $basearch这样的变量; # baseurl:服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。 #: baseurl后可以跟多个url,但baseurl只能有一个,格式: #: <syntaxhighlight lang="properties"> baseurl=url://server1/path/to/repository/ url://server2/path/to/repository/ url://server3/path/to/repository/ </syntaxhighlight> #: 其中url 支持的协议有 http:// ftp:// file:// 三种 #: url 指向的目录必须是这个repository header 目录的上一级,它也支持$releasever、$basearch这样的变量。 还可以加上多个选项: # enable=1:启动这个容器,默认值也为1。关闭这个容器可以设置enable=0。 # mirrorlist:列出这个容器可以使用的镜像站点,如果不想使用可以批注掉这一行。 # failovermethod:有多个url可供选择时,yum选择的次序(roundrobin:随机选择;priority:默认,按url配置依次选择) # gpgcheck:指定是否需要查阅RPM文件内的数字证书。 # gpgkey:数字证书的公钥文件所在位置,使用默认值即可。 * 其中gpgcheck,exclude 的含义和[main] 部分相同,但只对此服务器起作用 查看yum配置文件,如“vi /etc/yum.repos.d/CenOS-Base.repo”:<br/> [[File:yum配置文件.png|600px]]<br/> == RPM 命令 == == YUM 命令 ==
返回至“
Linux包管理:rpm与yum
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息