软件包的安装和管理——rpm

类型

rpm:二进制包,已经使用GCC进行编译
tar:源码包,需要编译。
RPM:早期时redhat使用的一种开源的管理,后来,各个版本的linux系统都采用了这种rpm

eg:查看rpm的某一个安装包
[root@break ~]# ls /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm 
/mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
zsh-5.0.2-28.el7.x86_64.rpm:所代表的含义:
zsh:软件包名字
5:主版本号
0:次版本号
2:修订的次数,修改bug的次数
28:发布的次数,修改一些参数的次数·
el7:支持的操作系统版本
x86_64:64位的软件包

rpm的安装

rpm的查找:在/var/lib/rpm的目录下
软件包的全名:安装和更新
软件包的包名:查找和删除
参数:
-i 是install的意思, 安装软件包
-v 显示附加信息,提供更多详细信息
-V 校验,对已经安装的软件进行校验
-h --hash 安装时输出####标记

eg1:使用rpm进行安装zsh——新型的一种shell。
[root@break ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm 
准备中...                          ################################# [100%]
	软件包 zsh-5.0.2-28.el7.x86_64 已经安装
eg2:使用rpm来扩展yum基础源
[root@break ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  
获取http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
警告:/var/tmp/rpm-tmp.xXIhwt: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:epel-release-7-11                ################################# [100%]

查询

rpm -q+以下的参数
参数:
-a(all) 查询所有已安装的软件包
-f(file)系统文件名(查询系统文件所属哪个软件包),反向查询
-i 显示已经安装的rpm软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息,后面要跟软件的命名
-R 查询软件包的依赖性

[root@break ~]# rpm -q zsh                                                  #查看安装包
zsh-5.0.2-28.el7.x86_64
[root@break ~]# rpm -qa | grep vim                                       #查看安装包
vim-enhanced-7.4.160-4.el7.x86_64
vim-minimal-7.4.160-4.el7.x86_64
vim-common-7.4.160-4.el7.x86_64
vim-filesystem-7.4.160-4.el7.x86_64
[root@break ~]# rpm -qf `which find`                                #根据路径进行查询
findutils-4.5.11-5.el7.x86_64
[root@break ~]# rpm -qpi /mnt/Packages/mysql-connector-                      #软件包无安装的模拟,查看安装的信息
mysql-connector-java-5.1.25-3.el7.noarch.rpm  mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm
[root@break ~]# rpm -qpi /mnt/Packages/mysql-connector-java-5.1.25-3.el7.noarch.rpm 
Summary     : Official JDBC driver for MySQL
[root@break ~]# rpm -qi lrzsz                                                             #软件包安装后,查看安装的信息             
...
Summary     : The lrz and lsz modem communications programs
[root@break ~]# rpm -qpl /mnt/Packages/zip-3.0-11.el7.x86_64.rpm                #查看软件包若安装后,会生成什么文件
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/share/doc/zip-3.0
/usr/share/doc/zip-3.0/CHANGES
/usr/share/doc/zip-3.0/LICENSE
/usr/share/doc/zip-3.0/README
/usr/share/doc/zip-3.0/README.CR
/usr/share/doc/zip-3.0/TODO
/usr/share/doc/zip-3.0/WHATSNEW
/usr/share/doc/zip-3.0/WHERE

检测

rpm -V包名
rpm -Vf 文件路径

[root@break ~]# rpm -Vf `which find`
[root@break ~]# echo aa >> /usr/bin/find
[root@break ~]# rpm -Vf `which find`            #检测文件是否被修改
S.5....T.    /usr/bin/find
[root@break ~]# rpm -Va                                #检测所有的安装包

注:如果出现的全是点,表示测试通过
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
再后面的c 文件名,它表示的是文件类型
c 配置文件
d 普通文件
g 不该出现的文件,意思就是这个文件不该被这个包所包含
l 授权文件(license file)
r 描述文件

卸载和升级

用法:rpm -e(erase) 包名
参数: --nodeps 忽略依赖,建议在卸载时不要用rpm去卸载有依赖关系的包,应该用yum
U: 升级软件包

#一般卸载和强制卸载
[root@break ~]# rpm -e zsh
[root@break ~]# rpm -e --nodeps zsh

手工解决依赖关系的解决

eg:解决mariadb的依赖安装
[root@break ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm 
错误:依赖检测失败:
	mariadb(x86-64) = 1:5.5.56-2.el7 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
	perl-DBD-MySQL 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
[root@break ~]# rpm -ivh /mnt/Packages/mariadb-5.5.56-2.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:mariadb-1:5.5.56-2.el7           ################################# [100%]
[root@break ~]# rpm -ivh /mnt/Packages/perl-DBD-MySQL-4.023-6.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:perl-DBD-MySQL-4.023-6.el7       ################################# [100%]
[root@break ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:mariadb-server-1:5.5.56-2.el7    ################################# [100%]

你可能感兴趣的:(linux)