类型
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%]