1. RPM是什么
RPM(RedHat Package Manager), 不难看出,人家本来就是由RedHat公司给自己的操作系统做的软件安装机制,它是以一种数据库记录的方式来将你所需的软件包安装的一套机制。或许在WINDOWS平台的你已经把’下一步下一步’这种安装机制看作里所应当,但是在Linux版本下版本众多,不同操作系统版本以及硬件,软件的正确安装确实给Linux下的用户带来了不少烦恼,而RPM包管理机制,可以说极大的促进了Linux系统的平民化,它会帮你安装一系列包的依赖问题(这里也有不少吐槽:本来安装的是一个软件,结果包的依赖就有7,8个….).
2. RPM的优点
- RPM内部含有已经编译过的程序和文件的设置等工作,所以你不用在重新编译。
- RPM会帮你查看你的操作系统版本,从中选择适合你的版本等。
- RPM本身提供软件的版本信息,依赖的包,软件用途等。
- RPM是采用数据库记录的方式,所以升级,删除,查询等很方便,快速。
3. RPM的使用
1)RPM安装(只有root用户才可以)
[root@localhost ~]# rpm -i SOFTWARE.rpm
说明:
这里的SOFTWARE.rpm是指你要安装的软件包名(可以直接指定一个网络上的包路径)
-i: install的意思
[root@localhost ~]#rpm -ivh SOFTWARE.RPM
说明:
-v: view 的意思,查看具体安装画面。
-h: 显示安装进度。
2)RPM查询
[root@localhost ~]# rpm -q *SOFTWARE*
说明:
-q: 查询是否安装SOFTWARE软件
常用法:(列出已安装的相关软件–(用到了数据流重定向))
[root@localhost ~]# rpm -qal | grep SOFTWARE
-qal: (query all list) 查询所有以经安装的软件并列出完整路径(后面没有参数)
3)RPM升级和更新
[root@localhost ~]# rpm -Uvh SOFTWARE
说明:
-Uvh:如果SOFTWARE没有安装则直接安装;如果已经安装,自动升级到新版。
-Fvh :如果SOFTWAR没有被安装,则什么也不做;如果已经安装,自动升级到新版。
4)RPM卸载
先查询,后卸载,(非正常卸载可以重建数据库--)
说明:
1)第一条是查询与SOFTWARE相关的软件
[root@localhost ~]# rpm -qa | grep SOFTWARE
2)第二条是卸载查询到的第一条软件SOTFWARE1(可以跟多个要删除的软件参数),但是你查到的软件包可能会存在依赖关系,比如SOFTWARE2依赖于SOFTWARE1,这个时候顺序就显得尤为重要,因为,如果你先卸载SOFTWARE1(被依赖者)的话,SOFTWARE2是不能运行了,所以RPM会告诉你有依赖关系(Dependency)。这时候你应该先从SOTWARE2(依赖者)开始卸载。
*[root@localhost ~]# rpm -e
3)注:第三条是如果你没有正常执行RPM的卸载操作(比如直接删除相关的一些软件),再次执行查询还会有你已经删除的软件。这句话或许听着有点绕口,其实就是你绕过数据库操作(RPM),直接进行物理删除,但是数据库内容并没有更新,所以导致你用RPM还是可以查询到相关软件。所以这时候重新建立数据库其实就是更新一下数据库。
[root@localhost ~]# rpm –rebuilddb