程序包的管理器,其功能有打包、后续的包管理(安装,升级,卸载,查询及校验)
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、搜索引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
最安全可靠的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:实现包的重装
示例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包
包校验:
验证包完整性:通过单向加密(md5|sha1)效验码
验证来源合法:公钥加密(RSA)
导入制作者的公钥:CentOS发行商的公钥在ISO文件 “RPM-GPG-KEY-CentOS-6”
rpm --import 导入秘钥能进行包校验(秘钥必须是来源可靠的)
rpm -K /PATH/TO/RPM_FILE
YUM:
工作原理是因为他抽取了包与包之间依赖关系。依赖外在的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程序的配置文件指定对应服务器访问方式:
http http://server/path/to/repo
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源
原文地址:http://5489884.blog.51cto.com/5479884/1695500