本节讲解如何使用 rpm 命令对 RPM 二进制包进行安装、卸载和升级操作。
我们以安装 apache 程序为例。因为后续章节还会介绍使用源码包的方式安装 apache 程序,读者可以直观地感受到源码包和 RPM 包的区别。
RPM包默认安装路径
通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表 1 所示的目录中。
安装路径 | 含义 |
---|---|
配置文件安装目录 | |
可执行的命令安装目录 | |
程序所使用的函数库保存位置 | |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
RPM 包的默认安装路径是可以通过命令查询的。
除此之外,RPM 包也支持手动指定安装路径,但此方式并不推荐。因为一旦手动指定安装路径,所有的安装文件会集中安装到指定位置,且系统中用来查询安装路径的命令也无法使用(需要进行手工配置才能被系统识别),得不偿失。
与 RPM 包不同,源码包的安装通常采用手动指定安装路径(习惯安装到 /usr/local/ 中)的方式。既然安装路径不同,同一 apache 程序的源码包和 RPM 包就可以安装到一台 Linux 服务器 上(但同一时间只能开启一个,因为它们需要占用同一个 80 端口)。
实际情况中,一台服务器几乎不会同时包含两个 apache 程序,管理员不好管理,还会占用过多的服务器磁盘空间。
RPM 包的安装
安装 RPM 的命令格式为:
[root@localhost ~]# rpm -ivh 包全名

注意一定是包全名。涉及到包全名的命令,一定要注意路径,可能软件包在光盘中,因此需提前做好设备的挂载工作。
此命令中各选项参数的含义为:
例如,使用此命令安装 apache 软件包,如下所示:
[root@localhost ~]# rpm -ivh \/mnt/cdrom/Packages/httpd-2.2.15-15.el6.centos.1.i686.rpmPreparing…####################[100%]1:httpd####################[100%]
注意,直到出现两个 100% 才是真正的安装成功,第一个 100% 仅表示完成了安装准备工作。
此命令还可以一次性安装多个软件包,仅需将包全名用空格分开即可,如下所示:
[root@localhost ~]# rpm -ivh a.rpm b.rpm c.rpm
如果还有其他安装要求(比如强制安装某软件而不管它是否有依赖性),可以通过以下选项进行调整:
apache 服务安装完成后,可以尝试启动:
[root@localhost ~]# service 服务名 start|stop|restart|status
各参数含义:
例如:
[root@localhost ~]# service httpd start #启动apache服务
服务启动后,可以查看端口号 80 是否出现。命令如下:
[root@localhost ~]# netstat -tlun | grep 80tcp 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 httpderror: Failed dependencies:httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-1.el6.i686httpd-mmn = 20051115 is needed by (installed) php-5.3.3-3.el6_2.8.i686httpd-mmn = 20051115 is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-10.el6.i686httpd = 2.2.15-15.el6.centos.1 is needed by (installed) httpd-manual-2.2.15-15.el6.centos.1 .noarchhttpd is needed by (installed) webalizer-2.21_02-3.3.el6.i686httpd is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686httpd=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”选项,即可以不检测依赖性直接卸载,但此方式不推荐大家使用,因为此操作很可能导致其他软件也无法征程使用。
linux系统中怎样卸载软件?
第一篇: Linux下软件的安装与卸载在Windows下安装软件时,只需运行软件的安装程序(setup、install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall、unware、“卸载”等)就能将软件清除干净,完全图形化的操作界面,简单到只要用鼠标一直点击“下一步”就可以了。 而Linux好象就不一样了,很多的初学者都抱怨在Linux下安装和卸载软件非常地困难,没有像使用Windows时那么直观。 其实在Linux下安装和卸载软件也非常简单,同样也有安装向导或解压安装的方式,不相同的只不过是除了二进制形式的软件分发外,还有许许多多以源代码形式分发的软件包,下面就来详细地讲一讲这些软件的安装与卸载:一、二进制分发软件包的安装与卸载Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式,其优点是安装使用容易,缺点则是缺乏灵活性,如果该软件包是为特定的硬件/操作系统平台编译的,那它就不能在另外的平台或环境下正确执行。 1、*形式的二进制软件包安装:rpm -ivh *卸载:rpm -e packgename说明:RPM(redhat Packge Manager)是RedHat公司出的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用rpm形式的软件包。 rpm的参数中-i是安装,-v是校验,-h是用散列符显示安装进度,*是软件包的文件名(这里的*特指*以外的以rpm为后缀的文件);参数-e是删除软件包,packgename是软件包名,与软件包的文件名有所区别,它往往是文件名中位于版本号前面的字符串,例如和是软件包文件名,它们的软件包名称分别是apache和apache-devel。 更多的rpm参数请自行参看手册页:man rpm。 如果你不喜欢在字符界面下安装或卸载这些软件包,完全可以在X-Window下使用图形界面的软件包管理程序,如glint、xrpm这样的图形接口,或者是KDE的kpackge等,这样对软件包的安装、升级、卸载、验证和查询就可以通过点击鼠标来轻松完成。 2、*/*、*2形式的二进制软件包安装:tar zxvf * 或 tar yxvf *2卸载:手动删除说明:*/*2形式的二进制软件包是用tar工具来打包、用gzip/bzip2压缩的,安装时直接解包即可。 对于解压后只有单一目录的软件,卸载时用命令“rm -rf 软件目录名”;如果解压后文件分散在多处目录中,则必须一一手动删除(稍麻烦),想知道解压时向系统中安装了哪些文件,可以用命令“tar ztvf *”/“tar ytvf *2”获取清单。 tar的参数z是调用gzip解压,x是解包,v是校验,f是显示结果,y是调用bzip2解压,t是列出包的文件清单。 更多的参数请参看手册页:man tar。 如果你更喜欢图形界面的操作,可以在X-Window下使用KDE的ArK压缩档案管理工具。 3、提供安装程序的软件包这类软件包已经提供了安装脚本或二进制的安装向导程序(setup、install、等),只需运行它就可以完成软件的安装;而卸载时也相应地提供了反安装的脚本或程序。 例如SUN公司的StarOffice办公软件套件就使用名为setup的安装程序,而且在软件安装后提供反安装的功能,目前这种类型的软件包还比较少,因其安装与卸载的方式与Windows软件一样,所以就无需多讲了。 二、源代码分发软件包的安装与卸载Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。 1、*形式的源代码软件包安装:rpm -rebuild * /usr/src/dist/RPMSrpm -ivh *卸载:rpm -e packgename说明:rpm --rebuild *命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。 packgename如前所述。 2、*/*、*2形式的源代码软件包安装:tar zxvf * 或 tar yxvf *2 先解压然后进入解压后的目录:./configure 配置make 编译make install 安装卸载:make uninstall 或 手动删除说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。 有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。 由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。 与其它安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者使用。 关于Linux下软件的安装与卸载lanche已经讲了这么多,但可能还会有人问怎么知道一个/bz2包是二进制文件包呢还是源代码包?如果你用过压缩工具就会明白,压缩包未必就是软件,它也可能是备份的许多图片,也可能是打包在一起的普通资料,要分辨它到底是什么最好的办法就是查看包里的文件清单,使用命令tar ztvf * / tar ytvf *2或者在X-Window下使用图形化的ArK压缩档案管理工具都可以,源代码包里的文件往往会含有种种源代码文件,头文件*.h、c代码源文件*.c、C++代码源文件*/*等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为bin的目录(仅有少数例外)。 原来这么简单呀,还不快点自己试试!linux下安装与删除软件现在linuxx下的软件大都是rpm,deb、和2格式。 格式的软件。 安装:rpm -ivh ***,如出现软件包倚赖性问题,按照提示先安装那些被倚赖的软件包。 删除:rpm -e 软件包名。 执行man rpm,可以获得更多有关rpm命令的信息。 在redhat8下,已经提供了图形化安装和删除软件的工具。 从开始菜单----系统设置----软件包。 格式的软件。 这种格式是Debian GNU/Linux下软件常用的格式。 安装:dpkg -i ***删除:dpkg -e软件包名在Redhat8下安装deb格式的软件,可用alien软件将deb格式转变为rpm格式,然后再用rpm命令安装;或者安装dpkg软件包,使用dpkg命令(这个我没有试过)和2格式的软件这两种格式是以源代码发布的,先用tar将软件打包,再用gzip或bzip2压缩.安装:a.先解开软件包,tar zxvf ****或者tar jxvf ****2b.进入解开的目录里,执行./configure .( 用./configure --help,可以获得编译配置的选项)c. maked. make install.删除:一般软件默认安装在/usr/local目录,可执行文件在bin或sbin目录,配置文件在etc目录,库文件在 lib目录,数据文件在share目录,开发程序用的头文件在include,软件说明文件在man目录。 删除时,只要删除以软件名命名的所有目录及其下的文件和bin、sbin目录里的可执行文件即可。 如果编译时指定了安装目录(如./configure --prefix=/ussr/local/aaa),则只需要简单删除aaa目录即可。 总得来说,rpm和deb格式的软件安装简单,快速,易于管理;和2格式的软件安装时有更大的自由度,更灵活,但也更费时间(编译一个十几M的软件就要花我1个多小时).
linux如何打包rpm
这个就有趣了!我们自己来编辑一下自己制作的RPM怎么样?会很难吗?完全不会!这里简单的以一个小例子来说明喔!请注意,这个真的只是一个小例子,所以不要觉得奇怪喔!其中,比较需要注意的,由于在上面的步骤说明中,我们知道在将SRPM编译成为RPM的时候,会以tar这支程式来将档案解开,因此,我们在进行来源档案的建立时,就必需要将他打包成为一个的tarball的档案才行! 假设我们编辑了一支script,内容是这样:[root@test root]# cd /usr/src/redhat/SOURCES [root@test SOURCES]# vi #!/bin/bash # This file is just used to demo the RPM packaging. # the only thing is showing the hostname. HOST=`/bin/hostname` /bin/echo $HOST [root@test SOURCES]# chmod 755 [root@test SOURCES]# tar –zcvf # 注意了,我们必需要将他打包才行! 上面的动作中,我们编辑了一个shell script档案,档名为,并且将他打包成为具有gzip压缩的tarball档案,也就是这样的档案才行!请注意,这个档案『必需』放置在SOURCES目录之下! 再来则是要编辑那个很重要的*档案啰!你可以这样简单的编写一下: [root@test root]# cd /usr/src/redhat/SPECS [root@test SPECS]# vi Summary: This is a demo RPM package. Name:showvbird Version: 1.0 Release: 1 Copyright: GPL Group: VBirds Home <==这个就是刚刚建立起来的Tarball档案! Url:Packager:VBird%description This package is just a demo RPM.%prep %setup –c %install install -m 755 /usr/local/bin/%files /usr/local/bin/
Linux rpm包安装!!!
很明显是有依赖性的,建议使用yum安装,方法如下:(1)挂载光盘:mount /dev/scd0 /mnt(2)配置yum仓库vi /etc/.d/(是自定义的,但是一定要以repo结尾系统才能识别到)[rhel-ClusterStorage] (仓库名称)name=rhel-ClusterStorage (描述)baseurl=file:///mnt/ClusterStorage (安装源,也可以使用ftp或http形式)enabled=1 (是否启用此仓库,1是启用,0是不启用)gpgcheck=1 (1是代表检测gpgkey,0是不检测)gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release(系统key位置,红帽系统都是放在此处)[rhel-Cluster]name=rhel-ClusterStoragebaseurl=file:///mnt/Clusterenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[rhel-Server]name=rhel-Serverbaseurl=file:///mnt/Serverenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[rhel-VT]name=rhel-VTbaseurl=file:///mnt/VTenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release最后保存退出,并执行:yum clean all (清除yum仓库缓存)(3)就可以很方便的使用yum安装软件包了,例如:yum install stardict* 或者 yum groupinstall Virtualization
发表评论