千家信息网

rpm包管理

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,linux程序包管理RPM ==================================================================#ldd 查看二进制程序调用的动态链接库
千家信息网最后更新 2024年11月26日rpm包管理



linux程序包管理

RPM ==================================================================


#ldd 查看二进制程序调用的动态链接库

#ldconfig -p 显示本机已缓存的所有可用库文件



dll: Dynamic link library

so : Shared Object


API: Application Program Interface 应用编程接口

ABI: Application Binary INterface 应用二进制接口

Unix-like ELF


C/C++程序格式:

源代码:文本格式的程序代码

编译开发环境:编译器,头文件,开发库

二进制格式:文本格式的程序代码-编译器-二进制格式(二进制程序,库文件,配置文件)


java/pathon程序格式:

源代码:编异成能够在其虚拟机(jvm/pvm)运行的格式

开发环境:编译器,开发库


项目构建工具:

c/c++:make

java:maven



程序包管理器:

源代码 - 目标二进制格式 - 组织成几个包文件;完成安装、升级、查询、卸载、效验等操作


debian:dpt,dpkg ".deb"

redhat:rpm ".rpm"

S.u.S.E:rpm ".rpm"

rpm:Redhat Package Manage

RPM Package Manage



rpm包命名格式:


name-VERSION-rpmrelease.arch.gz archetecture 架构

VERSION:major.minor.release


yum-3.2.29-73.el6.centos.noarch.rpm

yum-3.2.29版本 73次修改 Redhat Enterprise 6


changelog


拆包:选择完整程序包中需要的功能


前端工具:自动解决依赖关系

yum: rhel

apt-get(apt-cache): deb

zypper: suse

dnf: fedora 22+


程序包管理器:

功能:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,

从而方便的实现程序包的安装,卸载,升级等操作



/var/lib/rpm/ rpm数据库




获取程序包途径:

1.系统发行版的光盘或官方的文件服务器(或镜像站点)

mirrors.aliyun.com

mirrors.sohu.com

mirrors.163.com

2.项目的官方站点

3.第三方组织

pkgs.org

rpmfind.net

rpm.pbone.net

4.自己制作



检查其合法性:

来源合法性

程序包完整性





#rpm [OPTIONS] [PACKAGE_FILE]

-i 安装 --install

rpm -ivh packagefile -v 显示详细信息 -h 以#号表示进度

-U 升级或安装 --update

-F 仅可升级

--oldpackage 降级

--force 强制升级

-e 卸载 --erase rpm -e http(包名)

--allmatchs 删除指定名称软件包所有版本

--nodeps 忽略依赖关系

--test 测试卸载


-q 查询 --query

[select-options]

-a --all 查询所有已装包;可配合grep

]#rpm -qa | grep httpd


-f FILE 查询指定文件由哪个软件包安装生成

]#rpm -qf /etc/named


-p --package PACKAGE_FILE 对未安装的程序包执行查询 -qpc -qpl -qpi

--whatprovides CAPABILITY 查询指定能力由哪个程序提供

--whatrequires CAPABILITY 查询指定能力被哪个包依赖

[query-options]

--changelog 查询rpm包的changelog

--provides 列出指定程序包提供的所有CAPABILITY

-R --requires查询指定程序包的依赖关系(CAPABILITY)

-l --list 列出程序安装生成的所有文件

-qpl 查询未安装的程序包安装后会生成哪些文件

-i --info 程序包相关信息

-c --configfiles 查询指定程序提供的配置文件

-d --docfiles 查询指定程序包提供的帮助文档

--scripts 查看程序包自带的脚本

-V 校验 --verify 可指定检查哪些

]#rpm -V bash]#S.5....T

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


数据库重建: 默认位置:/var/lib/rpm

rpmdb

--initdb 初始化数据库。当前无数据库可初始化创建新的数据库;如果存在则不作操作

--rebuilddb 重新创建数据库

--dbpath 指定创建数据库文件存放路径

--builddb,initdb 数据库维护



通用选项:

--nodeps 忽略依赖关系

--replacepkgd 重新安装 删除某个配置文件后可重新安装

--replacefiles 替换不同程序包中可能出现的相同的文件

--test 测试安装 仅测试能否安装 不真正安装

--nosignature 不检查包签名信息,不检查来源合法性

--nodigest 不检查包完整性





包来源和发行、完整性验证:

包制作者:

提取程序包的特征码

使用自己的私钥对特征码加密(签名)

将签名加入包放到互联网


使用者:

使用公钥验证包来源合法性、完整性


验证:

安装时自动验证

手动验证:rpm -K PACHAGE-FILE










0