RPM的由来
Linux的不同发行版本之间,往往有很大的不同。
开发者在某个Linux发行版下开发和编译的程序,直接放到另外一个Linux发行版本下,
有非常大的可能性无法运行。
因此早期的Linux软件,都是通过源代码来分发的。
使用者基本都是通过在自己的平台上,重新编源代码来安装软件。
这种编译源代码的方式比较繁琐和复杂,普通用户往往难以掌握。
为了解决这个问题,红帽公司开发了一个包管理器,名为Red Hat Package Manager/ RPM。
RPM
Red Hat Package Manager
RPM是Linux下使用最广泛、软件资源最丰富的软件包管理器。也是RHEL、CentOS中的默认软件包管理器。
RPM只能管理以RPM形式封装的软件包。
· RPM原理
将软件编译好的二进制文件、所依赖的动态库文件、配置文件,打包压缩到一个文件中。
该文件就被称为RPM软件包。
用户安装文件时,RPM就将包解压到目标操作系统上。
安装过程中可能会动态地生成一些文件,一并地安装到系统中。
· 软件包名的格式
由名字、版本号、适用的硬件架构,三部分组成。
需要对“适用的硬件架构”部分特别注意。
如: opera-stable_55.0.2994.56_amd64.rpm
此处适用的硬件架构为:amd64。
可知该软件包仅可在64位CPU的计算机下使用。
适用的硬件架构 | CPU要求 |
x86_64 / x64 / AMD6 | 64位 |
i386 / i586 / i686 | 32位 |
noarch | 无要求,适用于所有架构。 |
·
· 软件的管理
演示安装vsftp软件
1、查询是否已安装:rpm -q 软件名
[root@hanaii ~]# rpm -q vsftpd
package opera is not installed
2、软件的获取:wget url
[root@hanaii ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
3、安装:rpm -ivh 软件包名
其中,i表示安装;v表示输出详细信息;h表示输出#作为进度条。
[root@hanaii ~]# rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:vsftpd-3.0.2-22.el7 ################################# [100%]
4、验证是否安装
[root@hanaii ~]# rpm -q vsftpd
vsftpd-3.0.2-22.el7.x86_64
5、卸载:rpm -e 软件包名
卸载和安装必须是软件包名(包含软件名、版本号、适用平台)
[root@hanaii ~]# rpm -evh vsftpd-3.0.2-22.el7.x86_64
Preparing... ################################# [100%]
Cleaning up / removing...
1:vsftpd-3.0.2-22.el7
6、验证是否已卸载
[root@hanaii ~]# rpm -q vsftpd
package vsftpd is not installed
· RPM存在的问题
依赖问题
当我们安装软件A时,A可能依赖于软件B、C;B可能依赖软件D、E。
存在着这样的依赖问题,安装是非常麻烦的。
安装opera中出现的依赖问题。
[root@hanaii ~]# rpm -ivh opera-stable_55.0.2994.56_amd64.rpm
warning: opera-stable_55.0.2994.56_amd64.rpm: Header V4 RSA/SHA512 Signature, key ID a5c7ff72: NOKEY
error: Failed dependencies:
libX11-xcb.so.1()(64bit) is needed by opera-stable-55.0.2994.56-0.x86_64
libX11.so.6()(64bit) is needed by opera-stable-55.0.2994.56-0.x86_64
为解决这一问题,可使用yum软件。