让我们以安装 apache 程序为例进行说明。由于后续章节将介绍通过源码包安装 apache 程序的方式,读者将能够直接感受到源码包与 rpm 包之间的差异。
通常情况下,RPM 包会使用系统默认的安装路径,所有的安装文件会根据类别分散安装到表 1 中所示的目录。
RPM 包的默认安装路径可以通过命令查询。
除了默认路径,RPM 包也支持手动指定安装路径,但这种方式并不推荐。因为手动指定路径会导致所有安装文件集中在指定位置,并且系统中用于查询安装路径的命令将无法使用(需要手动配置才能被系统识别),得不偿失。
与 RPM 包不同,源码包的安装通常采用手动指定安装路径的方式(通常安装到 /usr/local/ 目录下)。由于安装路径不同,同一 apache 程序的源码包和 RPM 包可以同时安装在一台 Linux 服务器上(但同一时间只能启动一个,因为它们需要使用相同的 80 端口)。
在实际操作中,一台服务器几乎不会同时运行两个 apache 程序,因为这会给管理员带来管理上的困难,并占用大量的服务器磁盘空间。
安装 RPM 包的命令格式为:
请注意,必须使用包的完整名称。涉及到包完整名称的命令时,一定要注意路径,因为软件包可能位于光盘中,因此需要提前完成设备挂载工作。
此命令中的选项参数含义如下:
-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...####################[100%] 1:httpd####################[100%]
请注意,直到出现两个 100% 才表示安装成功,第一个 100% 仅表示完成了安装准备工作。此命令还可以一次性安装多个软件包,只需将包的完整名称用空格分隔即可,如下所示:
如果有其他安装需求(例如强制安装某软件而不考虑其依赖性),可以通过以下选项进行调整:
-nodeps:不检测依赖性进行安装。软件安装时会检测依赖性,确定所需的基础软件是否已经安装,如果没有安装则会报错。如果不考虑依赖性,强制安装,则可以使用这个选项。注意,这样不检测依赖性的安装通常是不可用的,因此不建议这样做。 -replacefiles:替换文件进行安装。如果要安装的软件包中某些文件已经存在,在正常安装时会报"某个文件已经存在"的错误,导致软件无法安装。使用这个选项可以忽略这个错误并覆盖安装。 -replacepkgs:替换软件包进行安装。如果软件包已经安装,那么此选项可以将软件包重复安装一遍。 -force:强制安装。不管是否已经安装,都会重新安装。也就是 -replacefiles 和 -replacepkgs 的综合。 -test:测试安装。不会实际安装,只是检测依赖性。 -prefix:指定安装路径。为安装软件指定安装路径,而不使用默认安装路径。 apache 服务安装完成后,可以尝试启动:
各参数含义如下:
start:启动服务; stop:停止服务; restart:重启服务; status: 查看服务状态; 例如:
服务启动后,可以查看端口号 80 是否已经开放。命令如下:
也可以在浏览器中输入 Linux 服务器的 IP 地址,访问这个 apache 服务器。由于目前 apache 中没有建立任何网页,所以看到的只是测试页面。
要升级 RPM 包,可以使用以下命令:
-U(大写)选项的含义是:如果该软件未安装过则直接安装;如果已经安装则升级到最新版本。
-F(大写)选项的含义是:如果该软件未安装,则不会安装,必须有较低版本才能进行升级。
卸载 RPM 软件包时需要考虑包之间的依赖性。例如,我们先安装了 httpd 软件包,然后安装了 httpd 的功能模块 mod_ssl 包,那么在卸载时,必须先卸载 mod_ssl,然后再卸载 httpd,否则会报错。
如果在卸载 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 软件包的卸载命令支持使用“-nodeps”选项,即可以不检测依赖性直接卸载,但这种方式不推荐使用,因为此操作很可能导致其他软件也无法正常使用。
以上就是Linux RPM包安装、卸载和升级的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号