Linux RPM包安装、卸载和升级(rpm令)详解
我们以安装 apache 程序为例。因为后续章节还会介绍使用源码包的方式安装 apache 程序,读者可以直观地感受到源码包和 RPM 包的区别。
RPM包默认安装路径
通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表 1 所示的目录中。安装路径 | 含 义 |
|---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
RPM 包的默认安装路径是可以通过令查询的。
除此之外,RPM 包也支持手动指定安装路径,但此方式并不。因为一旦手动指定安装路径,所有的安装文件会集中安装到指定位置,且系统中用来查询安装路径的令也无法使用(需要进行手工配置才能被系统识别),得不偿失。
与 RPM 包不同,源码包的安装通常采用手动指定安装路径(习惯安装到 /usr/local/ 中)的方式。既然安装路径不同,同一 apache 程序的源码包和 RPM 包就可以安装到一台 Linux 服务器上(但同一时间只能开启一个,因为它们需要占用同一个 80 端口)。
实际情况中,一台服务器几乎不会同时包含两个 apache 程序,管理员不好管理,还会占用过多的服务器磁盘空间。
RPM 包的安装
安装 RPM 的令格式为:[root@localhost ~]# rpm -ivh 包全名
注意一定是包全名。涉及到包全名的令,一定要注意路径,可能软件包在光盘中,因此需提前做好设备的挂载工作。此令中各选项参数的含义为:
-i:安装(install);
-v:显示更详细的信息(verbose);
-h:打印 #,显示安装进度(hash);
例如,使用此令安装 apache 软件包,如下所示:
[root@localhost ~]# rpm -ivh \
/mnt/cdrom/Packages/httpd-2.2.15-15.el6.centos.1.i686.rpm
Preparing...
####################
[]
1:httpd
####################
[]
注意,直到出现两个 才是真正的安装成功,个 仅表示完成了安装准备工作。此令还可以一次性安装多个软件包,仅需将包全名用空格分开即可,如下所示:
[root@localhost ~]# rpm -ivh a.rpm b.rpm c.rpm
如果还有其他安装要求(比如强制安装某软件而不管它是否有依赖性),可以通过以下选项进行调整:
-nodeps:不检测依赖性安装。软件安装时会检测依赖性,确定所需的底层软件是否安装,如果没有安装则会报错。如果不管依赖性,想强制安装,则可以使用这个选项。注意,这样不检测依赖性安装的软件基本上是不能使用的,所以不建议这样做。
-replacefiles:替换文件安装。如果要安装软件包,但是包中的部分文件已经存在,那么在正常安装时会报"某个文件已经存在"的错误,从而导致软件无法安装。使用这个选项可以忽略这个报错而覆盖安装。
-replacepkgs:替换软件包安装。如果软件包已经安装,那么此选项可以把软件包重复安装一遍。
-force:强制安装。不管是否已经安装,都重新安装。也就是 -replacefiles 和 -replacepkgs 的综。
-test:测试安装。不会实际安装,只是检测一下依赖性。
-prefix:指定安装路径。为安装软件指定安装路径,而不使用默认安装路径。
apache 服务安装完成后,可以尝试启动:
[root@localhost ~]# service 服务名 start|stop|restart|status
各参数含义:
start:启动服务;
stop:停止服务;
restart:重启服务;
status: 查看服务状态;
例如:
[root@localhost ~]# service httpd start #启动apache服务
服务启动后,可以查看端口号 80 是否出现。令如下:
[root@localhost ~]# netstat -tlun | grep 80
tcp 0 0 :::80:::* LISTEN
也可以在浏览器中输入 Linux 服务器的 IP 地址,访问这个 apache 服务器。目前在 apache 中没有建立任何网页,所以看到的只是测试页,如图 2 所示。

图 2 apache测试页
RPM包的升级
使用如下令即可实现 RPM 包的升级:
[root@localhost ~]# rpm -Uvh 包全名
-U(大写)选项的含义是:如果该软件没安装过则直接安装;若已经安装则升级版本。[root@localhost ~]# rpm -Fvh 包全名
-F(大写)选项的含义是:如果该软件没有安装,则不会安装,必须安装有较低版本才能升级。RPM包的卸载
RPM 软件包的卸载要考虑包之间的依赖性。例如,我们先安装的 httpd 软件包,后安装 httpd 的功能模块 mod_ssl 包,那么在卸载时,就必须先卸载 mod_ssl,然后卸载 httpd,否则会报错。软件包卸载和拆除大楼是一样的,本来先盖的 2 楼,后盖的 3 楼,那么拆楼时一定要先拆除 3 楼。
如果卸载 RPM 软件不考虑依赖性,执行卸载令会包依赖性错误,例如:
[root@localhost ~]# rpm -e httpd
error: Failed dependencies:
httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-1.el6.i686
httpd-mmn = 20051115 is needed by (installed) php-5.3.3-3.el6_2.8.i686
httpd-mmn = 20051115 is needed by (installed) mod_ssl-1:2.2.15-15.el6.
centos.1.i686
httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-10.el6.i686
httpd = 2.2.15-15.el6.centos.1 is needed by (installed) httpd-manual-2.2.
15-15.el6.centos.1 .noarch
httpd is needed by (installed) webalizer-2.21_02-3.3.el6.i686
httpd is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686
httpd=0:2.2.15-15.el6.centos.1 is needed by(installed)mod_ssl-1:2.2.15-15.el6.centos.1.i686
RPM 软件包的卸载很简单,使用如下令即可:
[root@localhost ~]# rpm -e 包名
-e 选项表示卸载,也就是 erase 的首字母。RPM 软件包的卸载令支持使用“-nocteps”选项,即可以不检测依赖性直接卸载,但此方式不大家使用,因为此操作很可能导致其他软件也无法征程使用。
- 随机文章
- 东吉尔湖马尔代夫(东吉尔湖为您带来马尔代夫的无限美好)
- 全国 马尔代夫(全国旅客可望赴马尔代夫!)
- 云游马尔代夫图片(马尔代夫梦幻岛,云游私密沙滩看海豚)
- 东莞马尔代夫旅游(东莞的马尔代夫之旅:浪漫度假好去处)
- 合肥马尔代夫烤肉(合肥的烤肉店让你感受马尔代夫的美味)
- 安阳马尔代夫照片(拍摄于安阳的令人惊叹的马尔代夫照片)
- 马尔代夫鱼丸吃法(马尔代夫特色美食,鱼丸美味推荐!)
- 成都马尔代夫飞机(成都首架前往马尔代夫的包机首飞成功)
- 新航马尔代夫商务(新加坡航空推出马尔代夫商务舱服务!)
- 郑智 马尔代夫(郑智将成为马尔代夫足球教练)
- 抚州马尔代夫签证(抚州游客可线上申请马尔代夫入境许可)
- 广州马尔代夫代理(广州旅行社代理马尔代夫,预定更便捷)
- 小猪 马尔代夫(探秘小猪马尔代夫之旅)
- 民间秘密马尔代夫(探秘马尔代夫:解读岛国的神秘与魅力)
- 磁县马尔代夫视频(磁县拍摄的马尔代夫旅游视频备受欢迎)
- 海南马尔代夫城市(海南十三五规划新城市——三亚凤凰岛)
- 盱眙马尔代夫文案(盱眙携手马尔代夫,开启浪漫海岛之旅)
- 眉山马尔代夫钓鱼(眉山游客马尔代夫岛上近海垂钓全纪实)
- 摩纳哥到马尔代夫(从欧洲到印度洋:摩纳哥飞往马尔代夫)
- 白马马尔代夫酒店(重磅!马尔代夫白马度假村重新开业!)
- 潍坊马尔代夫路线(潍坊启运赴马尔代夫海岛旅行畅游之旅)
- 老马 马尔代夫(老马成马尔代夫游玩达成心愿)
- 澳门马尔代夫酒店(澳门马尔代夫酒店:奢华美景尽收眼底)
- 虎鲨海豚马尔代夫(马尔代夫海洋世界现身罕见虎鲨海豚!)
- 马尔代夫停留几天(停留几天,马尔代夫私人岛屿旅行攻略)
- 大疆 马尔代夫(大疆携手马尔代夫:空中拍摄开启海底奇观之旅)
- 马尔代夫信息大全(马尔代夫详尽指南:必知旅游信息汇总)
- 福州马尔代夫在哪(福州哪里有类似马尔代夫的旅游胜地?)
- 新塘 马尔代夫(新塘旅行社推出马尔代夫行程,走起!)
- 马尔代夫印度富豪(印度亿万富豪在马尔代夫豪宅举行婚礼)
