本文旨在复习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段命名法
● 包依赖关系
一个包B的功能实现需要调用别包A的底层文件、服务、共享对象等,这种情况下单独安装packageB是无法成功的,需要安装好A包[可以强制忽略依赖关系安装B包,但是功能可能会受影响]
另外依赖关系可能有很多层,比如A包依赖B包C包,而B包又依赖D包等等,有可能无穷无尽也~
● 获取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:重装程序包 升级: -Uvh: 如果有旧版程序包,则升级之;如果没有,则安装之; --nodeps:忽略依赖关系 |
例:安装sendmail包,可以很明显看到依赖关系,然后强制忽略依赖关系进行安装[只做演示,显示情况应妥善处理好依赖关系]
卸载和查询
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 ... 查询: -qc: 查询指定程序包安装生成的配置文件 |
例:查询本机已经安装的所有package可以使用rpm -qa,选择openssl安装包查看配置文件
包检验
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 |
例:导入一份密钥文件,并且验证/tmp/sendmail该package是否合法完整
RPM几个要点
1.默认情况下只能够处理安装包,而不能解决依赖关系,依赖的包需要依次安装,有顺序
2.包来源请尽量确保安全,可以使用密钥进行合法性完整性验证,推荐去较大的mirrors站点下载
3.--nodeps可以忽略依赖关系安装,不推荐使用,可能导致若干问题
4.--scripts脚本,在某些package安装前后、卸载前后可以指定一些官方或自定义的脚本来实现自动化
YUM基本知识
●