rpm包基本介绍

2023年 7月 16日 25.2k 0

程序包:
源代码:tgr.gz , tar.bz2 , tar.xz
包管理器:rpm格式
appname-version-release-ARCH.rpm

常见的包管理器:
1,.deb: debian
.rpm:red hat Package Manager

rpm包命名格式:
appname-version-release-ARCH.rpm
version:
major:主版本号
minor:次版本号
release:发行号

release:包自己的修订号,有时候,包含适用于的OS信息
ARCH:适用的平台。x86:i386,i686
x86_64,amd64,x86_64
powerpc:ppc
noarch:根平台无关:

 
分包机制:
核心包:主包:命名与源项目名称一致:
子包(支包):命令为源项目名称后附加支包中的文件提供的功能组成
-devel-

获取程序包的途径:
1,系统光盘或官方站点镜像服务器获取
mirrors.sohu.com
mirrors.163.com
mirrors.aliyun.com
2,程序包官方站点

 

建议:安装之前要验证的其合法性
来源合法:
包完整性

安装:
rpm -i或者--install 程序包 ...

-h:hash,以#来表示安装进度:
-v,--verbose:显示安装过程中的详细信息:
vvv显示更详细的信息

安装时常用组合:-ivh,-ivvh ,-ivvvh

--test:测试安装,仅显示报告和依赖关系及冲突信息等。

程序包之间存在依赖关系:
由众多的单一的小程序组成;程序包之间存在相关性;

-nodeps:忽略依赖关系:能安装成功,但未必能成功运行。

--replacepkgs:覆盖安装:重新安装并覆盖原有的文件

-force:强制安装:

升级:-u :升级或安装
-f:升级
组合:-Uvh,-Fvh

注意:一定不要对内核进行升级;linux允许多内核共存,所以,可以直接安装多个不同版本内核;

注意:如果程序包的配置文件安装后曾被修改,升级时,新版本的配置文件不会覆盖老版本的配置文件,而是把新版本的配置文件,重命名后保存(重命名:加rpmnew)。
rpm -e 卸载 rpM
移除已经安装的程序包,
简单用法:rpm -e 包名
--allmatches:如果一个程序包同时安装多个版本,则此选择一次全部卸载之
--nodeps:忽略依赖关系卸载
--test:测试卸载;dry-run模式
注意:如果程序包的配置文件安装后曾配修改过,卸载时,此文件通常不会被删除,而是被重命名(加后缀,rpmsave)后留存;

查询:
rpm -q 查询 rpM
查询某包是否已经安装,以及检查安装的所有包,还可以查看某包的详细信息
rpm -q 包名:查询某包或某些包是否安装

rom -qa 包名;查询已经安装的所有包

rpm -qf /path/to/shmefile :查询某文件是由哪个包安装生成:

rpm -qpi 包文件路径:查询尚未安装的包文件相关信息

[query-options]
rpm -qi 包名 :查询某包的简要说明信息

rpm -ql 包名 :查询某包安装生成的文件列表:

rpm -qc 包名 :查询某包安装完成后的生成的配置文件

rpm -qd 包名 :获取某包安装完成后的帮助文档信息

rpm -q --changelog 包名 :查看某包制作时随版本变化的changelog信息

pm -q --provides 包名:查询某包提供的capabilities:

rpm -q --requires 包名:查询某包的依赖capabilities;

rpm -q --scripts 包名:查询某包安装或卸载时执行脚本
脚本有四类:

安装前脚本:preinstall
安装后脚本:postinstall
卸载前脚本:preuninstall
卸载后脚本:postuninstall

校验:
rpm -V 包名:大V查询包安装之后生成的文件是否发生了改变

包合法性验证:
来源合法:
由信任的制作者提供
依赖于:制作者的数字签名:签名是作者使用自己的私钥加密程序包的特性码进行的
内容合法:
包未被二次修改:完整性校验成功
依赖于:制作者提供的程序特征码:
验证方式:安装者用同样的特征码提取算法提取程序包的特征码,并与原作者提供的相比较

验证其光盘中的程序包的来源及完整性:
rpm --import /dev/cdrom/ key-file导入
rpm -大K 包文件

验证:
rpm --nosignature:不检查来源完整性
rpm --nodiest :不检查完整性
rpm管理数据库默认路径:/var/lig/rpm
重建数据库 :
rpm [--initdb|--rebuilddb][-v][--dbpath directory]
rpm --initdb :初始化数据库,即数据库完全不存在时,可新建

rpm --rebuilddb:无论当前数据存在于否,都会直接重新此库

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论