加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux基础——程序包管理(rpm)

发布时间:2020-12-14 00:39:29 所属栏目:Linux 来源:网络整理
导读:获取程序包的途径 ?? ?1.?? ?系统发行版的光盘或官方文件服务器 ?? ???? http://mirrors.aliyun.com ?? ??? ? http://mirrors.163.com ?? ??? ? http://mirrors.souhu.com ?? ?2.?? ?项目的官方站点 ?? ?3.?? ?第三方组织 ?? ??? ? EPEL ?? ??? ? 搜索引擎 ?

获取程序包的途径
?? ?1.?? ?系统发行版的光盘或官方文件服务器
?? ????  http://mirrors.aliyun.com
?? ??? ? http://mirrors.163.com
?? ??? ? http://mirrors.souhu.com
?? ?2.?? ?项目的官方站点
?? ?3.?? ?第三方组织
?? ??? ? EPEL
?? ??? ? 搜索引擎
?? ??? ????  http://pkgs.org
?? ??? ??? ? http://rpmfind.net
?? ??? ??? ? http://rpm.phone.net

rpm命令管理
?? ?rpm [OPTIONS] PACKAGE_FILE|PACKAGE_NAME
?? ??? ?PACKAGE_FILE:?? ?包全名,例如httpd-2.4.6-88.el7.centos.src.rpm
?? ??? ?PACKAGE_NAME:?? ?包名,例如httpd
?? ?安装:rpm-ivh PACKAGE_FILE?? ?
?? ??? ?-i:install 安装
?? ??? ?-v:输出详细信息
?? ??? ?-h:输出进度条,每个#表示2%的进度
?? ??? ?一般在安装rpm包时,使用以上选项即可
?? ??? ?特殊选项及用法:rpm -ivh [INSTALL-OPTIONS] PACKAGE_FILE
?? ??? ??? ?INSTALL-OPTIONS:
?? ??? ??? ?--test:测试安装,并非正真执行安装,作用为检查依赖关系及冲突消息等
?? ??? ??? ?--nodepts:忽略依赖关系,不建议使用,虽然忽略依赖可以安装成功,但是有可能不能使用
?? ??? ??? ?--replacepkgs:重新安装
?? ??? ??? ?--nosignature:忽略签名信息,及不检查包的来源合法性
?? ??? ??? ?--nodigest:忽略包的完整性,及不检查包的完整性
?? ??? ??? ?--noscripts:忽略脚本
?? ??? ??? ??? ?注意:rpm在创建时,可以有四种类型的脚本文件,分别为
?? ??? ??? ??? ??? ?安装开始前运行的脚本文件:preinstall
?? ??? ??? ??? ??? ?安装完成后运行的脚本文件:postinstall
?? ??? ??? ??? ??? ?卸载开始前运行的脚本文件:preuninstall
?? ??? ??? ??? ??? ?卸载完成后运行的脚本文件:postuninstall
?? ??? ??? ??? ??? ?--noscripts:参数即为忽略以上全部四种脚本
?? ??? ??? ??? ??? ?--nopre:忽略preinstall脚本
?? ??? ??? ??? ??? ?--nopost:忽略postinstall脚本
?? ??? ??? ??? ??? ?--nopreun:忽略preuninstall脚本
?? ??? ??? ??? ??? ?--nopostun:忽略postuninstall脚本

?? ?升级:rpm -Uvh PACKAGE_FILE?? ?升级并安装(如果之前没有安装,则之间进行安装)
?? ??? ? ???? rpm -Fvh PACKAGE_FILE?? ?升级(必须针对之前已经完成安装的rpm包,如果之前没有安装,则不进行安装)
?? ??? ? ?? ?特殊选项及用法:rpm -Uvh|Fvh [UPGRADE-OPTIONS] PACKAGE_FILE
?? ??? ? ?? ??? ?--oldpackage:降级
?? ??? ? ?? ??? ?--force:强制升级
?? ??? ? ?? ?注意:(1)一定不要对内核进行升级,如果想使用新版内核,则直接安装即可(因为Linux支持多种内核版本共存)
?? ??? ? ?? ??? ?? ??? ?(2)如果之前修改过配置文件,则升级后,配置文件并不会覆盖,而是任然保留原有已经修改过的文件,新安装的配置文件则会重命名后保存,重命名的格式为FILENAME.rmpnew

?? ?卸载:rpm -e PACKAGE_NAME(注意,此处为PACKAGE_NAME,并非PACKAGE_FILE)
?? ??? ?特殊选项及用法:rpm -e [EARSE_OPTIONS] PACKAGE_NAME
?? ??? ??? ?--allmatches:卸载所有版本
?? ??? ??? ?--nodepts:忽略依赖关系(有些rpm包在卸载时,因为有依赖无法卸载,可以使用该选项直接卸载)
?? ??? ??? ?--test:测试卸载,并非正真卸载,DRY RUN模式(俗称“干跑”)

?? ?查询:rpm -q [SELECT-OPTIONS] [QUERY-OPTIONS]
?? ??? ?[SELECT-OPTIONS]
?? ??? ??? ?PACKAGE_NAME:直接跟一个PACKEGE_NAME,可以查询该rpm包是否安装及其版本信息
?? ??? ??? ?-a:查询所有安装的rpm包
?? ??? ??? ??? ?注意:当要查询一个rmp是否已安装时,一般使用rpm -qa | grep XXX
?? ??? ??? ?-f FILE_NAME:查询该文件由哪个rpm包安装时生成
?? ??? ??? ?-p PACKAGE_FILE:用于实现对未安装的rpm包执行查询操作
?? ??? ??? ?--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个rpm包提供
?? ??? ??? ?--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个rpm包依赖
?? ??? ?[QUERY-OPTIONS]
?? ??? ??? ?--changelog:查询rpm包的changelog
?? ??? ??? ?-l:安装时生成的所有文件列表
?? ??? ??? ?-i:rpm包的所有详细信息
?? ??? ??? ?-c:查询rpm包提供的配置文件
?? ??? ??? ?-d:查询rpm包提供的文档
?? ??? ??? ?--provides:列出该rpm包所能提供的所有CAPABILITY
?? ??? ??? ?-R:查询该rpm包的依赖关系
?? ??? ??? ?--scripts:查看rpm包自带的脚本文件
?? ??? ??? ?常用方法: rpm -ql PACKAGE_NAME
?? ??? ??? ??? ??? ??? ?  rpm -qf FILE_NAME
?? ??? ??? ??? ??? ??? ?  rpm -qc PACKAGE_NAME
?? ??? ??? ??? ??? ??? ?  rpm -qd PACKAGE_NAME
?? ??? ??? ??? ??? ??? ?  rpm -qpl PACKAGE_FILE
?? ??? ??? ??? ??? ??? ?  rpm -qpi PACKAGE_FILE
?? ??? ??? ??? ??? ??? ?  rpm -qpc PACKAGE_FILE

??? 校验:rpm -V [SELECT-OPTIONS] [VERIFY-OPTIONS]?? ??? ?主要作用在于验证包的合法性和完整性?? ??? ?导入信任的包制作者的密钥,密钥的保存位置为光盘镜像种的RPM-GPG-KEY-XXX?? ??? ??? ?rpm --import 密钥文件?? ??? ??? ?导入完成后在执行安装操作的同时自动完成验证?? ??? ??? ?如果手动验证,则使用rpm -K PACKAGE_FILE?? ?数据库维护:rpm [DB-OPTIONS]?? ??? ??? ?[DB-OPTIONS]?? ??? ??? ?--initdb:初始化数据库?? ??? ??? ?--rebuild:重新创建数据库?? ??? ?注意: ?? ?rpm包的管理数据库路径为/var/lib/rpm/?? ??? ??? ??? ??? ??? ??? ??? ??? ?数据库操作很危险,最好不要使用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读