标签:64bit 初始化 rpm 包管理器 lis 文件类型 key logo pos 用户
RPM 包管理器:
安装:
rpm -ivh PACKAGE_FILE
安装选项:
-i 安装新的包
-h 显示进度条
--test 测试安装
--nodeps 忽略依赖关系
--replacepkgs 重新安装
更新:
rpm -Uvh PACKAGE_FILE
rpm -Fvh PACKAGE_FILE
-U 升级或安装(若老版本没有安装则自动安装)
-F 升级(若老版本没有安装则无法升级)
--oldpackage 降级为老版本。
--force 强制升级。
不要对内核做升级操作!
卸载:
--allmatches 卸载所有匹配的指定名称程序包的各版本
--nodeps 忽略依赖关系
[root@node1 ~]# rpm -e --test --nodeps bash
--test 测试卸载
[root@node1 ~]# rpm -e --test zsh
查询:
-q
-a 查询所有已经安装过的包;
[root@node1 ~]# rpm -qa
libosinfo-1.1.0-2.el7.x86_64
libcacard-2.5.2-2.el7.x86_64
libtimezonemap-0.4.4-1.el7.x86_64
...
-f FILE 查询指定文件由哪个包生成;
[root@node1 ~]# rpm -qf /etc/bashrc
setup-2.8.71-10.el7.noarch
--changelog 查询rpm包的修改日志;
[root@node1 ~]# rpm -q --changelog setup |head
* 四 6月 21 2018 Ondrej Vasik <ovasik@redhat.com> - 2.8.71-10
...
-l --list 查询程序包安装生成的文件列表;
[root@node1 ~]# rpm -ql bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/alias
...
-i --info 查询程序包的信息;
[root@node1 ~]# rpm -qi bash
-c 列出指定的程序包提供的配置文件;
[root@node1 ~]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
-d 查询指定的程序包提供的帮助文档;
[root@node1 ~]# rpm -qd bash
/usr/share/doc/bash-4.2.46/COPYING
/usr/share/info/bash.info.gz
/usr/share/man/man1/..1.gz
/usr/share/man/man1/:.1.gz
...
--provides 列出指定程序包内所有的CAPABLITY(功能);
[root@node1 ~]# rpm -q --provides bash
/bin/bash
/bin/sh
bash = 4.2.46-31.el7
bash(x86-64) = 4.2.46-31.el7
config(bash) = 4.2.46-31.el7
--whatprovides CAPABLITY 查询指定的(CAPABLITY)功能由哪个包所提供;
[root@node1 ~]# rpm -q --whatprovides bash
bash-4.2.46-31.el7.x86_64
--whatrequires CAPABLITY 查询指定的(CAPABLITY)功能被哪个包所依赖;
[root@node1 ~]# rpm -q --whatrequires 'config(bash)'
bash-4.2.46-31.el7.x86_64
-p PACKAGE_FILE 如果程序包未安装;执行查询操作;
rpm -qp* 包名
-R 查询指定程序包的依赖关系;
[root@node1 ~]# rpm -qR bash
/bin/sh
config(bash) = 4.2.46-31.el7
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
...
--scripts 查看程序包自带的脚本;
[root@node1 ~]# rpm -q --scripts bash
postinstall scriptlet (using <lua>):
nl = '\n'
sh = '/bin/sh'..nl
bash = '/bin/bash'..nl
f = io.open('/etc/shells', 'a+')
if f then
...
postuninstall scriptlet (using <lua>):
-- Run it only if we are uninstalling
if arg[2] == "0"
then
t={}
...
rpm 脚本控制:
--noscripts
--nopre 不执行安装前脚本
--nopost 不执行安装后脚本
--nopreun 不执行卸载前脚本
--nopostun 不执行卸载后脚本
效验:
[root@node1 ~]# rpm -V setup
S.5....T. c /etc/bashrc
5 MD5校验和
S 文件大小
L 符号连接
T 修改时间
D 设备
U 用户
G 组
M 模式(包括许可和文件类型)
包来源合法性和完整性检查:
来源合法性验证:
完整性检查:
数字签名:
导入秘钥:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 当前系统为CentOS7.6
校验
自动验证: 安装该组织签名的程序时会自动验证
手动验证: rpm -K PACKAGE_FILE # 需要先导入公钥
数据库重建:
rpm数据库路径: /var/lib/rpm/
查询操作: 通过该数据库进行;
重建操作:
rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY] [--root DIRECTORY]
--initdb 初始化数据库,当前无任何数据库可初始化创建,当前有数据库时则无操作;
--rebuilddb 重新构建,通过读取当前系统上所有已安装的程序包进行重新构建;
初始化新的数据库
rpm --initdb --dbpath=/PATH/TO/RPM/
重建数据库
rpm --rebuilddb
标签:64bit 初始化 rpm 包管理器 lis 文件类型 key logo pos 用户
原文地址:https://www.cnblogs.com/liy36/p/12130825.html