rpm包管理器常见用法
用法 常见 管理器 RPM
2023-09-14 09:15:54 时间
rpm包管理器常见用法
rpm包安装过程
# 安装前脚本--检查依赖是否满足
rpm pre script
# 安装过程中脚本
rpm install script
# 安装结束后脚本
rpm post script
rpm命令常用参数
https://www.linuxcool.com/rpm
https://wangchujiang.com/linux-command/c/rpm.html
-i
安装软件包
-U
升级软件包
-F
软件包存在则升级,不存在则不安装
-v
显示过程详情
-h
安装软件包时列出标记
-e
卸载软件包
-q
查询软件包
-l
显示软件包的文件列表
-f
查询文件或命令属于哪个软件包
-a
查询所有的软件包
-p
查询指定的rpm软件包
--nodeps
不验证软件包依赖
--changelog
列出这个包的更改日志
安装包rpm -ivh
## -i 安装软件包
## -v 显示过程详情
## -h 安装软件包时列出标记
rpm -ivh *.rpm
# 强制安装
## --force 强制安装
rpm -ivh --force *.rpm
离线安装相互依赖的rpm
场景: 已经离线下载好了所需要的rpm包,并放在统一目录下,但是安装的时候提示依赖不满足.
# 忽略依赖安装所有rpm
## -i 安装软件包
## -v 显示过程详情
## -h 安装软件包时列出标记
## --nodeps 不验证软件包依赖
rpm -ivh *.rpm --nodeps
更新包rpm -Uvh
## -U 升级软件包
## -v 显示过程详情
## -h 安装软件包时列出标记
rpm -Uvh *.rpm
# 更新 xxx.rpm, 如不存在则不安装:
## -F 软件包存在则升级,不存在则不安装
rpm -Fuh xxx.rpm
# 加上--force会忽略依赖强制安装,--nodeps则可以忽略安装信息
卸载包rpm -evh
## -e 卸载软件包
## -v 显示过程详情
## -h 安装软件包时列出标记
rpm -evh 包名
[rhel8 root ~]# rpm -evh net-tools
准备中... ################################# [100%]
正在清理/删除...
1:net-tools-2.0-0.52.20160912git.el################################# [100%]
卸载软件但不卸载依赖包
# 只卸载指定的包
## -e 卸载软件包
## --nodeps 不检查依赖
rpm -e --nodeps 软件名
查询包
查询文件属于哪个包rpm -qf(最常用)
# 查询命令(绝对路径)属于哪个包
## -q 查询软件包
## -f 查询文件或命令属于哪个软件包
[root@c8 ~]# rpm -qf /bin/dnf
dnf-4.4.2-11.el8.noarch
# 查询文件属于哪个包
## -q 查询软件包
## -f 查询文件或命令属于哪个软件包
[root@c8 ~]# rpm -qf /etc/my.cnf
mysql-community-server-5.7.35-1.el7.x86_64
列出所有已安装的软件包rpm -qa
# 列出所有已安装的软件包
## -q 查询软件包
## -a 查询所有的软件包
rpm -qa
# 从已安装的包中查询openssh
## -q 查询软件包
## -a 查询所有的软件包
## -qa 后加包名,等价于从查询结果中过滤包查询结果
rpm -qa openssh
查看已安装的rpm包安装目录rpm -ql
## -q 查询软件包
## -l 显示软件包的文件列表
rpm -ql 包名
# 示例
rpm -ql openssh
查询已安装的rpm包安装目录rpm -qpl
# 查看已安装的rpm包安装目录
## -q 查询软件包
## -p 查询指定的rpm软件包
## -l 显示软件包的文件列表
rpm -qpl 包全名
[rhel8 root /mnt/cdrom/BaseOS/Packages]# rpm -qpl samba-4.13.3-3.el8.x86_64.rpm
警告:samba-4.13.3-3.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
/etc/openldap/schema
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
/usr/bin/smbstatus
/usr/lib/.build-id
/usr/lib/.build-id/03
# 综合用法,查询软件的安装目录
## 例如查询firewalld的安装目录
### 查看firewalld程序的包名
[rhel8 root /usr/lib/firewalld/services]# rpm -qa firewalld
firewalld-0.8.2-6.el8.noarch
### 通过包名查询firewalld的安装目录
[rhel8 root /usr/lib/firewalld/services]# rpm -ql firewalld
/etc/firewalld
/etc/firewalld/firewalld.conf
查询包名的详细安装信息rpm -qi
-qi查询软件包的详细信息(information)
# 查看openssh的安装信息
## -q 查询软件包
## -i 与q同用表示--info 显示软件包信息
## -qi 显示套件的相关信息
rpm -qi openssh
# 查看未安装的rpm包samba-4.13.3-3.el8.x86_64.rpm的详细信息
## -qi 显示套件的相关信息
## -p 查询指定的rpm软件包
rpm -qip 包全名.rpm
[rhel8 root /mnt/cdrom/BaseOS/Packages]# rpm -qpi samba-4.13.3-3.el8.x86_64.rpm
警告:samba-4.13.3-3.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Name : samba
Epoch : 0
Version : 4.13.3
Release : 3.el8
Architecture: x86_64
Install Date: (not installed)
Group : Unspecified
Size : 2658583
License : GPLv3+ and LGPLv3+
Signature : RSA/SHA256, 2021年02月09日 星期二 08时52分49秒, Key ID 199e2f91fd431d51
Source RPM : samba-4.13.3-3.el8.src.rpm
Build Date : 2021年02月04日 星期四 12时01分32秒
Build Host : x86-037.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor : Red Hat, Inc.
URL : https://www.samba.org
Summary : Server and Client software to interoperate with Windows machines
Description :
Samba is the standard Windows interoperability suite of programs for Linux and
Unix.
package-cleanup命令------清理本地安装的RPM软件包
常用参数:
-c | 使用备用配置文件(默认为/etc/yum.conf) |
---|---|
-y | 同意任何要求 |
–leaves | 列出与其他RPM没有依赖关系的软件包 |
–orphans | 列出当前软件仓库中不再提供支持的本地已安装的软件包 |
–oldkernels | 删除旧内核文件(kernel, kernel-devel) |
–problems | 列出有依赖问题的软件包 |
–dupes | 扫描重复安装的RPM软件包 |
–cleandupes | 扫描重复安装的软件包,并删除老版本的软件包 |
# 依赖yum-utils
yum install -y yum-utils
# 列出重复的rpm包
package-cleanup --dupes
# 去除重复的rpm包
package-cleanup –cleandupes
校验rpm包是否被篡改
# 校验rpm包
## -V 验证
rpm -V 包名
# 查看命令行的包名
## -q 查询软件包
## -a 查询所有的软件包
rpm -qa systemd
## -V 验证
rpm -V $(rpm -qa systemd)
如果软件包异常
,会显示以下内容
:
对所有的rpm包进行包校验
# 对所有的rpm包进行包校验
for i in `rpm -qa`; do rpm -V $i; done
查看命令行缺失的文件
# 查看文件的依赖库
ldd $(which systemd)
# 查看缺失的依赖库文件
ldd $(which systemctl) |grep "not found"
# 更新文件索引数据库
updatedb
# 定位缺失的依赖库文件所在位置
locate libgcrypt.so.11
# cd到缺失到依赖库所在的目录
cd /etc/ld.so.conf.d/
查看rpm包的修复记录
# 检入Changelog软件包,以查看哪些修复程序已向后移植
## -q 查询软件包
## -v 显示详情
## --changelog 列出这个包的更改日志
rpm -qv --changelog openssh-server | less
相关文章
- java中Scanner的简单用法
- if高级用法
- py2exe用法_py import
- Python学习:dict和set类型的用法
- 字符串函数(一)之常见用法
- SpringBoot之Controller用法
- Kali-工具-sqlmap常见用法
- 【超详细】*和&在C/C++中的常见用法(附示例讲解)
- Linux常见基本命令与用法大全
- Java学习笔记之二十九Java中的”equals”和”==”的用法及区别详解编程语言
- PHP str_replace的用法详解编程语言
- 掌握Linux命令:ll简介及用法详解(linux命令ll)
- 「MySQL百科全书」——25个关键字让你完整了解MySQL数据库详解、用法、工具和技巧。(mysql大全)
- MySQL中rpad函数的用法及案例分析(mysql 中rpad)
- MySQL中OR的含义及用法详解(mysql中or的含义)
- MySQL中使用AS T的作用及用法解析(mysql中出现as t)
- 使用Redis提高Web性能的技巧(web中redis用法)
- Oracle数据库中灵活运用时间的方式(oracle中的时间用法)
- MySQL不支持变量吗详解常见误解与正确用法(mysql不支持变量吗)
- 使用Redis连接工具掌握数据库连接技能(redis连接工具用法)
- JQuery中$之选择器用法介绍
- perl哈希hash的常见用法介绍
- jquery.form.js用法之清空form的方法
- python类继承用法实例分析
- C#预处理器指令的用法实例分析
- JavaScript中的公有、私有、特权和静态成员用法分析
- thinkphp常见路径用法分析