LPI Linux 认证/使用 RPM 和 YUM 包管理
Red Hat 包管理器是一个强大的包管理器,可用于构建、安装、查询、验证、更新和删除单个软件包。包由一个包含文件和元数据的档案组成,用于安装和删除档案文件。元数据包括辅助脚本、文件属性和关于包的描述信息。包有两种类型:二进制包,用于封装要安装的软件,以及源代码包,包含生成二进制包所需的源代码和配方。
(LPIC-1 版本 5.0)
权重:3
描述
考生应该能够使用 RPM、YUM 和 Zypper 执行包管理。
关键知识领域
- 使用 RPM、YUM 和 Zypper 安装、重新安装、升级和删除软件包。
- 获取有关 RPM 包的信息,例如版本、状态、依赖关系、完整性和签名。
- 确定软件包提供的文件,以及查找特定文件来自哪个软件包。
- 了解 `dnf`。
以下是被使用文件的列表,这些文件、术语和工具只是部分列出
rpm
rpm2cpio
/etc/yum.conf
/etc/yum.repos.d/
yum
zypper
一些 Linux 发行版使用 rpm “Red Hat 包管理器” 来管理其所有发行版软件。RPM 维持一个详细的数据库,其中包含系统中安装的所有软件的信息。
要安装 RPM 包,请执行
rpm -i [package].rpm
只有在满足依赖关系并且与其他软件包没有冲突的情况下,才会安装软件包。要升级软件包,请执行
rpm -U [package].rpm
旧软件包版本的将被删除,并由新文件替换。要删除 RPM 包,请执行
rpm -e [package].rpm
只有在没有其他软件包依赖它时,才能删除软件包。
使用 -q 选项,您可以查询 RPM 数据库或显示有关包文件的信息。
您可以使用多个开关
- -i: 获取软件包信息
rpm -q -i apache
- -l: 获取软件包的文件列表。
$ rpm -q -l pciutils /sbin/lspci /sbin/setpci /usr/share/doc/package/pciutils ... /usr/share/pci.ids
- -f file: 查询文件所属的软件包。
$ rpm -q -f /sbin/lspci pciutils-2.1.9-58
- -s: 带有状态信息的 文件列表。
- -d: 仅列出文档文件。
- -a: 列出所有已安装的软件包。
如果您要显示有关包文件的信息,可以使用 -p 开关指定文件名
rpm -q -i -p [package].rpm
要获取有关软件包或程序的一般信息,请使用 rpmlocate。
rpmlocate ipcs -q -i apache
在 rpm 数据库中搜索 ipcs
util-linux-2.11n-75: /usr/bin/ipcs /usr/share/man/man8/ipcs.8.gz
要列出所有已安装的软件包,请使用 rpmqpack
rpmqpack
或者使用
rpm -qa
RPM 源代码文件通常具有 package.src.rpm 格式,并且可以像二进制文件一样安装。它们将从 /usr/src/packages 目录安装的目录是
- SOURCES: 用于原始源代码。
- SPECS: 用于控制构建过程的 .spec 文件。
- BUILD: 所有源代码都在此目录中构建。
- RPMS: 完整的二进制软件包存储在此处。
- SRPMS: 源代码。
要安装软件包的源代码,请执行
$ rpm -i mypack.src.rpm
源代码文件将存储在 /usr/src/packages 中,位于 SPEC 和 SOURCES 目录中。要编译源代码,请执行
$ rpm -ba /usr/src/packages/SPECS/mypack.spec
编译结果将存储在 BUILD 目录中
- apache 包是否已安装?
- /bin/ls、/usr/sbin/tcpdump 和 /sbin/ifconfig 文件位于哪个包中?
- 从软盘安装 pci 工具和 grub 软件包。构建二进制文件并尝试执行它们。源代码应该位于 /usr/src/packages/BINARY 目录中。