[9-5]Rpm与Yum安装包管理知识梳理
2015-09-15 09:33
656 查看
本文旨在复习Linux上安装包管理rpm与yum工具
知识储备
所谓的包管理是指在Linux平台上查询、校验、安装、升级、卸载以及打包package
不同的Distribution Linux上包管理工具各不相同,最主流的有通吃RedHat/CentOS的RPM、YUM、DNF[新一代的前端管理工具],Debian上的APT管理工具
一个程序包package通用组成部分
二进制程序:/bin, /sbin,/, /usr/bin, /usr/sbin,
库文件:/lib, /lib64, /usr/lib64
配置文件:/etc
帮助文件:manual, info, readme.txt, install.txt等
RPM基础知识
● RPM打包机制:基于specs文件的打包,specs这个文件指挥着如何打包,按照何种规则组织包的元数据、包内容等等,可以使用rpmbuild命令
● RPM分包机制:有些程序在设计时除了核心功能外还有各种附加小功能,打包者选择性组合这些功能对源码程序打包,分为了核心包和支包,核心包通常名为software-version,支包通常为software-devel-version
● RPM包命名机制:5段命名法
![](http://s3.51cto.com/wyfs02/M02/73/2C/wKioL1X3fvHD9Kg-AApC0EF_Inc946.bmp)
● 包依赖关系
一个包B的功能实现需要调用别包A的底层文件、服务、共享对象等,这种情况下单独安装packageB是无法成功的,需要安装好A包[可以强制忽略依赖关系安装B包,但是功能可能会受影响]
另外依赖关系可能有很多层,比如A包依赖B包C包,而B包又依赖D包等等,有可能无穷无尽也~
![](http://s3.51cto.com/wyfs02/M00/73/2E/wKioL1X3iFWwsqJ7AAG9OVDj3JE166.jpg)
● 获取RPM包
发行版提供的程序包,通常在CentOS-6.4-x86_64-bin-DVD2的Packages目录下
Fedora-EPEL,为CentOS提供优秀的包,比较安全、权威,推荐
项目的官方站点,如Apache的官方站点www.apache.org
搜索引擎,如比较权威的http://rpmfind.net http://rpm.pbone.net http://pkgs.org
RPM管理程序包
RPM主要能实现对package安装、升级、卸载、查询、校验等功能,并不能很好地解决依赖关系,需要手工安装!
安装与升级
例:安装sendmail包,需要依赖,强制忽略依赖关系进行安装[只做演示,显示情况应妥善处理好依赖关系]
![](http://s3.51cto.com/wyfs02/M01/73/2F/wKioL1X3mHWCzL0AAAKP5AasnmE253.jpg)
卸载和查询
例:查询本机已经安装的所有package可以使用rpm -qa,选择openssl安装包查看配置文件
![](http://s3.51cto.com/wyfs02/M00/73/32/wKiom1X3ltrRAAI1AAD3UktbRfU744.jpg)
包检验
例:导入一份密钥文件,并且验证/tmp/sendmail该package是否合法完整
![](http://s3.51cto.com/wyfs02/M00/73/32/wKiom1X3lX6BSBbqAAFPQ-FQxM0274.jpg)
RPM几个要点
1.默认情况下只能够处理安装包,而不能解决依赖关系,依赖的包需要依次安装,有顺序
2.包来源请尽量确保安全,可以使用密钥进行合法性完整性验证,推荐去较大的mirrors站点下载
3.--nodeps可以忽略依赖关系安装,不推荐使用,可能导致若干问题
4.--scripts脚本,某些package安装、卸载前后可指定一些官方或自定义的脚本来实现定制或自动化
YUM基本知识
● RPM最大缺点是需要手动解决依赖关系,而YUM应运而生,能够自动解决依赖关系,极大方便安装
● YUM工作的机制依赖于配置文件[即YUM源]、仓库、仓库元数据文件,大致如下
● YUM还能拥有插件机制,实现增强功能
![](http://s3.51cto.com/wyfs02/M01/73/37/wKioL1X33rqzKT1UAAF9ZZzQZFY444.jpg)
● 简要的yum流程
1.用户使用yum前,需要在/etc/yum.repos.d/*.repo下指定yum源,就是指定所谓的包仓库
2.包仓库有大量rpm包,还有元数据文件,记录了包列表、依赖关系等,这可以提供快速查询、解决依赖
3.使用yum安装某个包,会去仓库A的元数据文件中通过列表查找该包及依赖关系,分析后自动安装解决依赖
4.为了加速查询分析依赖[也可以说省带宽],通常会将仓库提供的元数据文件缓存一份到本地,你懂得
YUM相关配置文件
yum的配置文件主要有3类,yum全局配置文件 、仓库repo配置文件、插件[安全]配置目录
● /etc/yum.conf 全局配置文件,设置了是否缓存、调试等级、日志文件、插件开关等,建议不修改
● /etc/yum/ 插件[安全]配置目录,在pluginconf.d中可以配置插件,如fastestmirror.conf最快镜像插件
● /etc/yum.repos.d/*.repo:仓库配置文件,每一个*.repo文件可以规定一个或者多个仓库, 语法如下:
repo文件语法
例:挂载安装盘DVD2到/mnt目录下,新建一个yum源指向该仓库
![](http://s3.51cto.com/wyfs02/M01/73/38/wKioL1X35puQ7pQLAAF-qw-Pmg8859.jpg)
![](http://s3.51cto.com/wyfs02/M02/73/38/wKioL1X35qXhSyDfAADmP03BNYs397.jpg)
yum管理程序包
相比RPM,yum在管理程序包很方便,常用用法总结如下
yum命令
例:使用yum安装tree包[tree包可以树状层级显示文件目录结构的],观察yum流程
![](http://s3.51cto.com/wyfs02/M00/73/3B/wKiom1X35lKR-ToXAAO38OodSlI510.jpg)
本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1694811
知识储备
所谓的包管理是指在Linux平台上查询、校验、安装、升级、卸载以及打包package
不同的Distribution Linux上包管理工具各不相同,最主流的有通吃RedHat/CentOS的RPM、YUM、DNF[新一代的前端管理工具],Debian上的APT管理工具
一个程序包package通用组成部分
二进制程序:/bin, /sbin,/, /usr/bin, /usr/sbin,
库文件:/lib, /lib64, /usr/lib64
配置文件:/etc
帮助文件:manual, info, readme.txt, install.txt等
RPM基础知识
● RPM打包机制:基于specs文件的打包,specs这个文件指挥着如何打包,按照何种规则组织包的元数据、包内容等等,可以使用rpmbuild命令
● RPM分包机制:有些程序在设计时除了核心功能外还有各种附加小功能,打包者选择性组合这些功能对源码程序打包,分为了核心包和支包,核心包通常名为software-version,支包通常为software-devel-version
● RPM包命名机制:5段命名法
![](http://s3.51cto.com/wyfs02/M02/73/2C/wKioL1X3fvHD9Kg-AApC0EF_Inc946.bmp)
● 包依赖关系
一个包B的功能实现需要调用别包A的底层文件、服务、共享对象等,这种情况下单独安装packageB是无法成功的,需要安装好A包[可以强制忽略依赖关系安装B包,但是功能可能会受影响]
另外依赖关系可能有很多层,比如A包依赖B包C包,而B包又依赖D包等等,有可能无穷无尽也~
![](http://s3.51cto.com/wyfs02/M00/73/2E/wKioL1X3iFWwsqJ7AAG9OVDj3JE166.jpg)
● 获取RPM包
发行版提供的程序包,通常在CentOS-6.4-x86_64-bin-DVD2的Packages目录下
Fedora-EPEL,为CentOS提供优秀的包,比较安全、权威,推荐
项目的官方站点,如Apache的官方站点www.apache.org
搜索引擎,如比较权威的http://rpmfind.net http://rpm.pbone.net http://pkgs.org
RPM管理程序包
RPM主要能实现对package安装、升级、卸载、查询、校验等功能,并不能很好地解决依赖关系,需要手工安装!
安装与升级
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 安装: rpm {-i|--install} [install-options] PACKAGE_FILE ... -ivh:安装包, v显示安装进度, -ivvh: vv的作用是详细显示安装了哪些文件, 还有vvv --nodeps:忽略依赖关系强制安装, 可能导致软件功能不正常 --replacepkgs:重装程序包 升级: rpm {-U|--upgrade} [install-options] PACKAGE_FILE ... rpm {-F|--freshen} [install-options] PACKAGE_FILE ... -Uvh: 如果有旧版程序包,则升级之;如果没有,则安装之; -Fvh: 如果有旧版程序包,则升级之;如果没有,则不安装; --nodeps:忽略依赖关系 --oldpackage:降级,要带上这个参数 --force: |
![](http://s3.51cto.com/wyfs02/M01/73/2F/wKioL1X3mHWCzL0AAAKP5AasnmE253.jpg)
卸载和查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 卸载: rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ... 查询: rpm {-q|--query} [select-options] [query-options] -qa: 查询本机已经安装的所有程序包; -qf /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成; -qc: 查询指定程序包安装生成的配置文件 -qd: 查询指定的程序包安装生成的文档 -qi: 查询指定的程序包的相关信息; -ql: 查询程序包安装生成的所有文件的列表; -q --scripts:查询程序包相关的脚本: preinstall: 安装前脚本 postinstall:安装后脚本 preuninstall: 卸载前脚本 postuninstall: 卸载后脚本 -p: 查询针对是未安装的程序包文件; |
![](http://s3.51cto.com/wyfs02/M00/73/32/wKiom1X3ltrRAAI1AAD3UktbRfU744.jpg)
包检验
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 校验: rpm {-V|--verify} [select-options] [verify-options] S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ 包校验: 来源合法性验正:非对称加密 完整性验正:单向加密 导入密钥:rpm --import /PATH/TO/KEY_FILE 校验:rpm -K /PATH/TO/RPM_FILE |
![](http://s3.51cto.com/wyfs02/M00/73/32/wKiom1X3lX6BSBbqAAFPQ-FQxM0274.jpg)
RPM几个要点
1.默认情况下只能够处理安装包,而不能解决依赖关系,依赖的包需要依次安装,有顺序
2.包来源请尽量确保安全,可以使用密钥进行合法性完整性验证,推荐去较大的mirrors站点下载
3.--nodeps可以忽略依赖关系安装,不推荐使用,可能导致若干问题
4.--scripts脚本,某些package安装、卸载前后可指定一些官方或自定义的脚本来实现定制或自动化
YUM基本知识
● RPM最大缺点是需要手动解决依赖关系,而YUM应运而生,能够自动解决依赖关系,极大方便安装
● YUM工作的机制依赖于配置文件[即YUM源]、仓库、仓库元数据文件,大致如下
● YUM还能拥有插件机制,实现增强功能
![](http://s3.51cto.com/wyfs02/M01/73/37/wKioL1X33rqzKT1UAAF9ZZzQZFY444.jpg)
● 简要的yum流程
1.用户使用yum前,需要在/etc/yum.repos.d/*.repo下指定yum源,就是指定所谓的包仓库
2.包仓库有大量rpm包,还有元数据文件,记录了包列表、依赖关系等,这可以提供快速查询、解决依赖
3.使用yum安装某个包,会去仓库A的元数据文件中通过列表查找该包及依赖关系,分析后自动安装解决依赖
4.为了加速查询分析依赖[也可以说省带宽],通常会将仓库提供的元数据文件缓存一份到本地,你懂得
YUM相关配置文件
yum的配置文件主要有3类,yum全局配置文件 、仓库repo配置文件、插件[安全]配置目录
● /etc/yum.conf 全局配置文件,设置了是否缓存、调试等级、日志文件、插件开关等,建议不修改
● /etc/yum/ 插件[安全]配置目录,在pluginconf.d中可以配置插件,如fastestmirror.conf最快镜像插件
● /etc/yum.repos.d/*.repo:仓库配置文件,每一个*.repo文件可以规定一个或者多个仓库, 语法如下:
repo文件语法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 定义一个仓库指向: [REPO_ID] name=仓库名 baseurl=仓库地址 请注意仓库地址可以使用ftp, http, file本地等 ftp://ftp.aliyun.com/packages http://mirrors.aliyun.com/centos/6.7 file:///mnt/DVD_CentOS_6.7/Packages nfs://server/nfs_path # mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE 可以设置多个mirror可以从中选取 enabled={1|0} 是否启用该仓库 gpgcheck={1|0} 是否对仓库包进行合法性、完整性验证,需要密钥文件 gpgkey= 当启用验证后,需要指明密钥文件位置 cost= 仓库优先级 定义仓库指向可用变量: $releasever: 引用当前系统的主版本号; $basearch: 当前系统的基本架构; i386, i486, i586, i686: i386 http://mirrors.magedu.com/CentOS/$releasever/os/$basearch |
![](http://s3.51cto.com/wyfs02/M01/73/38/wKioL1X35puQ7pQLAAF-qw-Pmg8859.jpg)
![](http://s3.51cto.com/wyfs02/M02/73/38/wKioL1X35qXhSyDfAADmP03BNYs397.jpg)
yum管理程序包
相比RPM,yum在管理程序包很方便,常用用法总结如下
yum命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | Usage: yum [options] [command] [package ...] 命令: 安装:install 卸载:remove 升级:update 查询: info search KEYWORD list all|installed|availiable provides /PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成 重新安装:reinstall 降级:downgrade 清理缓存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 生动生成缓存:makecache 包组:一个包组整合了实现某一特定需求功能的一系列包的集合! grouplist groupinfo "GRP_NAME" groupinstall "GRP_NAME" groupremove "GRP_NAME" 仓库: repolist [all|enabled|disabled] repoinfo [all|enabled|disabled] 创建本地仓库: yum install createrepo createrepo /PATH/TO/RPMFILES/ |
![](http://s3.51cto.com/wyfs02/M00/73/3B/wKiom1X35lKR-ToXAAO38OodSlI510.jpg)
本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1694811
相关文章推荐
- rpm和yum的用法说明
- RPM -U 升级机制探索
- 产品经理的修炼之道
- 程序包管理
- yum和rpm总结
- 面对需求总是被Boss怒改,产品经理该怎么办?
- 2015年9月10日课程作业(rpm、yum)
- npm基础
- RPM的原理及rpm命令常用参数
- 产品经理必读的九步法(转)
- 某公司北京研发中心“产品经理”内训圆满结束!
- 20150914-解决在Allegro中无法修改FPM生成封装的问题
- RPM及YUM的使用
- PopupWindow与PopupMenu的用法
- rpm和yum程序包的管理
- 程序包的管理:rpm及yum
- MPMoviePlayerController
- 风投为啥投APM领域这么多钱,疯了
- BPMN2.0规范及iactiviti
- Rpm 软件包管理