31.1 Centos系统上使用rpm管理安装包
安装,卸载,更新,查询,校验,数据库维护
31.1.1 安装:
rpm {-i|--install} [install options] package
-v:verbos
-vv:显示更多的详细信息
-h:以#显示程序包管理执行进度,每#表示2%的进度
rpm -ivh packagefile
[install-option]
--test:测试安装,但不真正执行安装过程
--nodeps:忽略依赖关系
--replacepkgs:重新安装
--nosignature:不检查来源合法性
--nodigest:不检查包完整性;
--noscripts:不执行程序包脚本片段preun
%pre:安装前脚本 --nopre
%post:安装后脚本 --nopost1
%preun:卸载前脚本 --nopreun
%postun:卸载后脚本--nopostun
[root@localhost ~]# rpm -qa | grep zsh
[root@localhost ~]# cd /media/cd-rom/Packages/
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm --test
Preparing... ################################# [
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-28.el7 ################################# [100%]
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm --replace
--replacefiles --replacepkgs
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm --replace
--replacefiles --replacepkgs
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm --replacepkgs
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-28.el7 ################################# [100%]
[root@localhost Packages]#
31.1.2 升级
rpm {-U|--upgrade} [install options] package
rpm {-F|--freshen} [install options] package
upgrade:安装有旧版程序包,则升级;如果不存在旧版程序包,则安装
freeshen:安装有旧版程序包,则升级;如果不存在旧版程序包,则不执行
rpm -Uvh package
rpm -fvh package
--oldpackage:降级
--force:强行升级
[root@localhost Packages]# rpm -Uvh zsh-5.0.2-28.el7.x86_64.rpm
Preparing... ################################# [100%]
package zsh-5.0.2-28.el7.x86_64 is already installed
[root@localhost Packages]# rpm -Fvh zsh-5.0.2-28.el7.x86_64.rpm
[root@localhost Packages]# rpm -e zsh
[root@localhost Packages]# rpm -Fvh zsh-5.0.2-28.el7.x86_64.rpm
[root@localhost Packages]# rpm -Uvh zsh-5.0.2-28.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-28.el7 ################################# [100%]
[root@localhost Packages]# rpm -Uvh zsh-5.0.2-28.el7.x86_64.rpm --force
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-28.el7 ################################# [100%]
[root@localhost Packages]#
注意:(1)不要对内核做升级操作;linux支持多内核版本并存,因此直接安装新版本内核即可
(2)如果对元程序包的配置文件安装后曾被修改,升级时,新版本提供的配置文件并不会直接覆盖旧版本的配置文件,而是把新版本的文件重命名后保存(filename.rpmnew)
31.1.3 查询
rpm {-q|--query} [select options] [quire options]
[select options]
-a:所有包
-f:查看指定文件由那个程序包安装生成
-p /PATH/TO/PACKAGE:针对尚未安装的程序文件做查询操作
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
[quire options]
--changelog:查询rpm包的changelog
-c:查询程序的配置文件
-d:查询程序的文档
-i:information
-l:查看指定程序包安装后生成的所有文件
--scripts:查看程序包自带的脚本片段
-R:查询指定的程序包所依赖的CAPABILITY
--provides:列出指定程序包所提供的CAPABILITY
用法:
-qi PACKAGE,-qc PACKAGE,-ql PACKAGE,-qd PACKAGE,
-qf FILE,
-qpi PACKAGE_FILE,-qpl PACKAGE_FILE,…
-qa
[root@localhost Packages]# rpm -qf zsh
error: file /media/cd-rom/Packages/zsh: No such file or directory
[root@localhost Packages]# rpm -qi zsh
Name : zsh
Version : 5.0.2
Release : 28.el7
Architecture: x86_64
Install Date: Mon 02 Aug 2021 11:11:00 PM EDT
Group : System Environment/Shells
Size : 5855982
License : MIT
Signature : RSA/SHA256, Thu 10 Aug 2017 04:28:17 PM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM : zsh-5.0.2-28.el7.src.rpm
Build Date : Wed 02 Aug 2017 06:52:37 AM EDT
Build Host : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://zsh.sourceforge.net/
Summary : Powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor. Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements. Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.
[root@localhost Packages]# rpm -qf /bin/zsh
zsh-5.0.2-28.el7.x86_64
[root@localhost Packages]# rpm -qpi zsh-5.0.2-28.el7.x86_64.rpm
Name : zsh
Version : 5.0.2
Release : 28.el7
Architecture: x86_64
Install Date: (not installed)
Group : System Environment/Shells
Size : 5855982
License : MIT
Signature : RSA/SHA256, Thu 10 Aug 2017 04:28:17 PM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM : zsh-5.0.2-28.el7.src.rpm
Build Date : Wed 02 Aug 2017 06:52:37 AM EDT
Build Host : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://zsh.sourceforge.net/
Summary : Powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor. Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements. Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.
[root@localhost Packages]# rpm -qa | head -3
cups-pk-helper-0.2.6-2.el7.x86_64
teamd-1.25-5.el7.x86_64
ipxe-roms-qemu-20170123-1.git4e85b27.el7.noarch
[root@localhost Packages]#
31.1.4 卸载:
rpm {-e|--erase} PACKAGE_NAME
[root@localhost Packages]# rpm -e zsh
[root@localhost Packages]# rpm -qa | grep zsh
[root@localhost Packages]#
31.1.5 检验:
rpm {-V|--verify} [select-options] [verify-options]
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
[root@localhost Packages]# vim /usr/share/doc/zsh-5.0.2/MACHINES
[root@localhost Packages]# rpm -V zsh
S.5....T. d /usr/share/doc/zsh-5.0.2/MACHINES
missing d /usr/share/man/man1/zshzle.1.gz
[root@localhost Packages]#
31.1.6 包来源合法性及完整性验证
完整性验证:SHA256
来源合法性验证:RSA
数据加密方法:
(1)对称加密:加密和解密使用同一个密码
(2)公钥加密(非对称加密):每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key),一个用来加密,一个用来解密
(3)单向加密,散列加密(可以由明文取得密文,但不能由密文取得明文):提取数据特征码,常用于数据完整性校验
单向加密特点
雪崩效应(蝴蝶效应):初始条件的微小改变会引起结果的巨大改变
[root@Daniel-R480 ~]# cp /etc/inittab ./
[root@Daniel-R480 ~]# md5sum inittab
66a88d6c4d693170753ea3382f8bc150 inittab
[root@Daniel-R480 ~]# vim inittab
-bash: vim: command not found
[root@Daniel-R480 ~]# vi inittab
[root@Daniel-R480 ~]# md5sum inittab
568c018aebe36cf208fc32c465e4b120 inittab
定长输出
MD5:Message Digest, 128位定长输出
SHA1:Secure Hash Algorithm, 160位定长输出
密码前面一般会有加上的杂质(salt),防止相同用户的密码显示的密文相同
31.1.7 导入所需要的公钥
rpm -import /PATH/FROM/GPG-PUBKEY-FILE
CentOS 7 发行版光盘提供的密钥文件:RPM-GPG-KEY-CentOS-7
[root@localhost cd-rom]# rpm -import RPM-GPG-KEY-CentOS-7
[root@localhost cd-rom]#
31.1.8 数据库重建
rpm {--initdb|--rebuilddb}
initdb:初始化
如果事先不存在数据库则新建之,否则,不执行任何操作
rebuilddb:重建
无论当前存在与否,直接重新创建数据库;
[root@localhost cd-rom]# rpm --initdb
[root@localhost cd-rom]# rpm --rebuilddb
[root@localhost cd-rom]#
评论关闭。