RPM常用命令以及组合使用场景
Posted 天翼云开发者社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RPM常用命令以及组合使用场景相关的知识,希望对你有一定的参考价值。
本文分享自天翼云开发者社区《RPM常用命令以及组合使用场景》,作者:邬祥钊
当涉及到管理基于 Red Hat 系的 Linux 系统时,RPM (Red Hat Package Manager) 是一个常用的软件包管理器。以下是一些常用的 RPM 命令以及它们的组合使用场景:
常用命令:
1. rpm -ivh package.rpm :安装一个新的软件包,其中 "-i" 代表安装,"-v" 表示显示详细信息,"-h" 显示进度条。
2. rpm -Uvh package.rpm :升级一个已有的软件包,其中 "-U" 代表升级,其余参数与上述相同。
3. rpm -e package_name :删除一个软件包,其中 "-e" 代表卸载。
4. rpm -qa :列出系统上所有已安装的软件包。
5. rpm -q package_name :查询指定软件包是否已经安装,或者查看一个已安装软件包的版本号。
6. rpm -qi package_name :查询关于某个软件包的信息,如作者、描述、依赖等。
7. rpm -ql package_name :列出一个软件包安装的文件列表。
8. rpm -qf file_path :查找某个文件属于哪个软件包。
9. rpm -q --provides package_name :查询该包提供的内容。
10. yum install package_name :使用 Yum 包管理器安装软件包,其中 "install" 为安装命令。
11. yum update package_name :使用 Yum 包管理器更新已有软件包,其中 "update" 为更新命令。
12. yum remove package_name :使用 Yum 包管理器删除软件包,其中 "remove" 为删除命令。
进阶命令:
1. rpm2cpio package.rpm | cpio -idvm : 将 RPM 包解压并将其中的文件提取到当前目录下,可以方便地查看软件包中的文件和目录结构。
2. yum list available package_name : 列出所有可用的软件包,包括未安装的,与指定的软件包名称相似的软件包列表。
3. rpm -qa --last : 列出所有已安装软件包,按照最近安装或更新时间排序。
4. rpm -qa --qf \'%NAME-%VERSION-%RELEASE.%ARCH\\n\' : 列出所有已安装软件包的名称、版本号和架构。
5. rpm --verify package_name : 验证软件包的完整性并列出可能存在问题的文件。
6. rpm -i --test package.rpm : 模拟软件包的安装过程,检查是否有依赖项问题或其他错误。
7. rpm -Uvh --force package.rpm : 强制安装软件包,即使存在版本冲突或其他问题。
8. rpm -Uvh --oldpackage package.rpm : 降级软件包为旧版本,并覆盖当前版本。
9. rpm -e --nodeps package_name : 卸载软件包,忽略其依赖项。
10. rpm -qa | grep package.rpm: 检查是否安装某软件包。
11. yum history : 列出所有 Yum 包管理器操作的历史记录,可以查看安装、升级和删除操作的详细信息。
12. yum provides */文件或命令:文件或者命令属于哪个包提供,即使未安装该包也能查询。如下图显示未安装mysql但可以查询到mysqld.service是由该包提供
组合使用场景:
1. 安装软件包并解决依赖关系: rpm -ivh package.rpm && yum install -y dependency
2. 列出一个软件包及其文件列表的详细信息: rpm -qi package_name | grep -iE \'name|version|release\' && rpm -ql package_name
3. 删除软件包及其依赖: yum remove --autoremove package_name
4. 验证所有已安装软件包的完整性并列出可能存在问题的文件: rpm -Va | awk \' if($NF != "c") print \'
5. --queryformat参数实现自定义查询
这里提一下rpm的--queryformat参数,使用这个参数可以实现自定义的字段信息查询,如下:
对于一个包我们使用rpm -qi可以得到如下信息
如果我们想要其中过的Version或者License或者其他任何想要的字段信息,我们可以使用这个参数进行提取,如下
因此,我们可以通过这个参数进一步实现批量的参数提取等功能,而不需要单独对字段写脚本进行判断与裁剪。
总之,RPM 是 Linux 系统中常用的软件包管理器之一。掌握这些命令以及它们的组合使用场景能够使更加高效地管理和维护系统以及解决软件安装过程中遇到的问题。通过深入了解 RPM 命令和选项的功能,可以更好地理解和应用软件包管理工具来满足特定需求。
Linux RPM 命令参数使用详解
转自:http://www.cnblogs.com/kakafra/p/3336020.html
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由 RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。
-Uvh:升级软件包--Update;
-qpl: 列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的 RPM软件包,查找丢失的文件[View Lost];
-e:删除包
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm //指定安装目录
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本
rpm -ql httpd #[搜索rpm包]--list所有文件安装目录
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm #[查看包]依赖关系
rpm2cpio file.rpm |cpio -div #[抽出文件]
rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
rpm -Uvh file.rpm #[升级一个rpm]--upgrade
rpm -e file.rpm #[删除一个rpm包]--erase
-i, --install install package(s)
-v, --verbose provide more detailed output
-h, --hash print hash marks as package installs (good with -v)
-e, --erase erase (uninstall) package
-U, --upgrade=<packagefile>+ upgrade package(s)
--replacepkge 无论软件包是否已被安装,都强行安装软件包
--test 安装测试,并不实际安装
--nodeps 忽略软件包的依赖关系强行安装
--force 忽略软件包及文件的冲突
-a, --all query/verify all packages
-p, --package query/verify a package file
-l, --list list files in package
-d, --docfiles list all documentation files
-f, --file query/verify package(s) owning file
rpm --rebuild vim-4.6-4.src.rpm #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm 的RPM软件包。
[root@localhost src]# rpm -ivh awstats-6.8-1.noarch.rpm
error: Failed dependencies:
perl(LWP::UserAgent) is needed by awstats-6.8-1.noarch
[root@localhost src]#
使用rpm 属性相依套件的档案
[root@localhost src]# rpm -qpR awstats-6.8-1.noarch.rpm
/bin/sh
/usr/bin/perl
config(awstats) = 6.8-1
perl >= 0:5.005
perl(LWP::UserAgent)
perl(POSIX)
perl(Socket)
perl(Time::Local)
perl(strict)
perl(vars)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
以上是关于RPM常用命令以及组合使用场景的主要内容,如果未能解决你的问题,请参考以下文章