程序包的管理器,其功能有打包、后续的包管理(安装,升级,卸载,查询及校验)
deb:debian系列系统 rpm:功能的提升使得rpm包管理器成为linux主流的标准 程序包的组成四部分: 1.二进制程序:程序的源代码存放/bin, /sbin,/ /usr/bin, /usr/sbin,2.库文件:某些 二进制程序可能会被多个程序包调用,将这些被多个调用的称 之为库文件存放在/lib64,/usr/lib64
3.配置文件: 大型程序执行过程中需要许多命令选项,通过配置文件确定大型程序的工作特性 存放在/etc 4.帮助文件:获得程序的使用帮助 manual, info包管理器功能:
打包:将程序包组成部分打包成一个单一的归档文件中; 安装:将程序包展开,将每个部分存放到相应的路径供系统使用该程序; 卸载 升级 查询 校验:查询程序包安装完以后相关内容是否被修改 rpm包管理器 打包工具rpmbuild:基于为每个应用文件提供的specs文件打包 应用程序包根据应用程序的功能常用否分为 核心包:testapp-VERSION 支包:testapp-devel-VERSION VERSIOND的格式:major.minor.release rpm包的命名机制: 包名-应用程序自己的版本号-rpm包自己的release.ARCH(适用的平台架构).rpm rpm包是通过rpm打包工具将应用程序包打包所得 包和包之前存在依赖关系。因为一个大型程序由若干小的程序组成 获得rpm包的途径: 1、发行版的提供镜像中有一个存放rpm包的文件夹 2、Fedora-EPEL 3、某些项目的应用程序官方网站提供项自己做的的RPM包 4、4、搜索引擎 最安全可靠的RPM包获取方法为挂载各发行版提供的镜像中RPM包文件 centos识别光盘的文件/dev/cdrom为标准路径 RPM命令的使用 实现程序包管理: 安装:rpm { -i | install} 【install-options】 PACKAGE_FILE。。。 -v:实现详细过程 -h:显示过程的进度(用#表示) 常用的install-options --nodeps:忽略包之间的依赖关系安装rpm包,在包安装完后可能无法使用 每个RPM包都提供一个或多个capabilities,某些RPM包的安装需要别的包所提供 的capabilities。称之为RPM包之间的依赖 --replacepkgs:实现包的重装示例1:rpm包的安装和重安装
示例2:忽略包的依赖关系安装rpm包
升级: rpm {-U|--upgrade} [install-options] PACKAGE_FILE ... rpm {-F|--freshen} [install-options] PACKAGE_FILE ... -Uvh:如果已旧版本的RMP包,则升级到新版本的RPM包;如果没有安装过,则安 装新版本的。过程和进度都显示出来 -Fvh:如果已旧版本的RMP包,则升级到新版本的RPM包;如果没有安装过,就不 做任何操作。过程和进度都显示出来 升级常用到的install-options
--nodeps:忽略依赖关系
--oldpackage:将已安装的新版本的RPM包降级到老版本的 --force:强制升级,升级的RPM包被其他包所依赖会被拒绝升级需要强制升级示例:包的存在的前提条件下使用-FVH升级包
示例:对已安装的包降级
卸载: rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ... 卸载只需要指定包名即可 --nodeps:卸载一个被依赖的包后 依赖该包的包会失去作用
查询: rpm {-q|--query} [select-options] [query-options] -qa:查询已安装的所有rpm包 -qf /PATH/TO/SOMEFILE:查询此路径的文件是由哪个包安装生产的 -qc:查询指定rpm包安装生产了哪些配置文件 -qd:查询指定rpm包安装生产了哪些帮助文档 -qi:显示指定rpm包的相关信息 -ql:查询指定rpm包安装生产了哪些的所有文件列表 -qR::查询指定rpm包依赖那些个数据包 -p:查询对象为未安装的rpm包
校验:检测rpm包安装后生产的文件是否有被修改的
包校验:
验证包完整性:通过单向加密(md5|sha1)效验码
验证来源合法:公钥加密(RSA)
导入制作者的公钥:CentOS发行商的公钥在ISO文件 “RPM-GPG-KEY-CentOS-6”
rpm --import 导入秘钥能进行包校验(秘钥必须是来源可靠的) rpm -K /PATH/TO/RPM_FILEYUM:
工作原理是因为他抽取了包与包之间依赖关系。依赖外在的yum的rpm包仓库 本地运行yum程序,它寻找rpm包仓库(不止一个),在仓库中找到后下载回本地 仓库中有大量rpm包 有元数据文件记录包名 有多少包 以及包的依赖关系。yum程序会先把仓库的元 数据文件缓存在本地,方便查看。 yum程序的配置文件: /etc/yum.conf 定义全集配置:对所有仓库都适用的配置 /etc/yum.repos.d/*.repo 一个.repo文件对应一个或一组rpm包功能相近或相依赖的仓库 定义一个仓库指向: [REPO] name=指定名字 baseurl=指定路径 路径可以多个随机抽取每个必须一样 使用路径中有定义仓库指向可用变$releasever: 引用当前系统的主版本号;
$basearch: 当前系统的基本架构;方便指定路径根据自身当前的系统选择合适的版本
#mirrorlist enabled 1代表启用0不启用 gpgcheck 1代表启用0不启用cost指明仓库的开销,开销越小越先采取
yum程序的配置文件指定对应服务器访问方式:
ftp
http
nfs nfs://server/nfs_path
file file:///path/to/repo
yum命令 常用选项 安装:install 所依赖的包一并安装 卸载:remove 那些依赖要被卸载包的包会被询问是否卸载 升级:update yum check-update检查系统已安装的包有那些包可以升级 查询: info 无论安装与否都可以查询rpm包的简要信息 search KEYWORD 基于包名的关键字进行搜索查询 list all|installed|avail 查询所有包|已安装|可以安装的 provids /path/to/somefiel: 查询指定文件是由哪个包安装生成的 重新安装 reinstall 降级:downgra 清理缓存:清理对象可以指定 手动生成缓存:makecache 包组: groupinfo “指明包组名” 查询一个包组的信息 groupinstall “指明包组名”整组的安装包仓库:
repolist:列出可使用的包仓库 使用光盘当做本地仓库: 1.挂载光盘 2.创建指向光盘挂载路径的本地仓库(为了优先使用可以设置较低的开销值) DNF:下一代的包管理器功能接近yum,功能更强大创建本地源
使用yum安装解决包之间的依赖关系
列出可用的yum源