一、使用RPM安装rpm包
命令模式: rpm {-i|–install} [install-options] PACKAGE_FILE1 PACKAGE_FILE2…
install-options
[–allfiles] [–badreloc] [–excludepath OLDPATH]
[–excludedocs] [–force] [-h,–hash]
[–ignoresize] [–ignorearch] [–ignoreos]
[–includedocs] [–justdb] [–nocollections]
[–nodeps] [–nodigest] [–nosignature] [–noplugins]
[–noorder] [–noscripts] [–notriggers]
[–oldpackage] [–percent] [–prefix NEWPATH]
[–relocate OLDPATH=NEWPATH]
[–replacefiles] [–replacepkgs]
[–test]
[root@master01 yiifung]# rpm -ivh erlang-25.3.2.3-1.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:erlang-25.3.2.3-1.el7 ################################# [100%]
[root@master01 yiifung]#
-i 安装的意思
-v 显示更多信息
-h(–hash)显示进度信息,打印hash值,一般和-v一起使用
-vv 显示更多详细信息
–quiet 打印更少的信息
二、RPM升级与更新(upgrade/freshen)
使用RPM来对软件进行升级时非常方便的,常用-Uvh和-Fvh参数进行升级,而-Uvh和-Fvh参数进行升级的选项与参数与install是一样的,但是-U与-F还是有不一样的地方
rpm {-U|–upgrade} [install-options] PACKAGE_FILE1 PACKAGE_FILE2…
rpm {-F|–freshen} [install-options] PACKAGE_FILE1 PACKAGE_FILE2 …
-Uvh 后面接的软件如果没有安装过,则RPM会自动安装该软件,若后面接的文件有安装过旧版本,则系统会自动更新至新版本
-Fvh 后面接的软件如果没有安装过,则RPM不会自动安装该软件,即只有已经安装过的软件会被升级更新
在做更新的时候,只会也只能更新到最新的版本,而不会更新到一个较老的版本
[root@master01 yiifung]# ls -lrt erlang*
-rw-rw-r--. 1 yiifung yiifung 23055992 May 31 02:35 erlang-25.3.2.1-1.el7.x86_64.rpm
-rw-rw-r--. 1 yiifung yiifung 23065248 Jul 1 12:30 erlang-25.3.2.3-1.el7.x86_64.rpm
[root@master01 yiifung]# rpm -qa | grep erlang
erlang-25.3.2.3-1.el7.x86_64
[root@master01 yiifung]# rpm -Uvh erlang-25.3.2.1-1.el7.x86_64.rpm
Preparing... ################################# [100%]
package erlang-25.3.2.3-1.el7.x86_64 (which is newer than erlang-25.3.2.1-1.el7.x86_64) is already installed
[root@master01 yiifung]#
如果你想安装一个较老的版本,则需要删除当前的版本,然后再安装你选择的版本
[root@master01 yiifung]# rpm -e erlang-25.3.2.3-1.el7.x86_64
[root@master01 yiifung]# rpm -Uvh erlang-25.3.2.1-1.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:erlang-25.3.2.1-1.el7 ################################# [100%]
[root@master01 yiifung]# rpm -Uvh erlang-25.3.2.3-1.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:erlang-25.3.2.3-1.el7 ################################# [ 50%]
Cleaning up / removing...
2:erlang-25.3.2.1-1.el7 ################################# [100%]
[root@master01 yiifung]# rpm -qa | grep erlang
erlang-25.3.2.3-1.el7.x86_64
[root@master01 yiifung]#
三、RPM卸载
rpm {-e|–erase} [–allmatches] [–justdb] [–nodeps] [–noscripts]
[–notriggers] [–test] PACKAGE_NAME …
[root@master01 ~]# rpm -qa | grep erlang
erlang-25.3.2.3-1.el7.x86_64
[root@master01 ~]# rpm -e erlang-25.3.2.3-1.el7.x86_64
[root@master01 ~]# rpm -qa | grep erlang
[root@master01 ~]#
在卸载软件的时候需要注意,一定要从上往下卸载,因为底层的一些包可能其他程序的依赖文件,如果随意卸载会导致报错也会导致其他软件崩溃无法运行。
–allmatches 会删除匹配上PACKAGE_NAME包名的所有版本的包,但是通常会报错(慎用)
–nodeps 在卸载的时候不检查依赖情况(慎用),这种情况下会造成误删文件的情况
注意
PACKAGE_FILE 与 PACKAGE_NAME 是不同的,PACKAGE_FILE 是rpm文件名,而PACKAGE_NAME是包名