Linux软件安装之RPM的安装技巧
LinuxRPM包安装、卸载和升级(rpm命令)详解

LinuxRPM包安装、卸载和升级(rpm命令)详解
本节讲解如何使用 rpm 命令对 RPM 二进制包进行安装、卸载和升级操作。
我们以安装apache 程序为例。
因为后续章节还会介绍使用源码包的方式安装 apache 程序,读者可以直观地感受到源码包和 RPM 包的区别。
RPM包默认安装路径
通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表 1 所示的目录中。
是测试页,如图 2 所示。
图 2 apache测试页
-e 选项表示卸载,也就是 erase 的首字母。
RPM 软件包的卸载命令支持使用“-nocteps”选项,即可以不检测依赖性直接卸载,但此方式不推荐大家使用,因为此操作很可能导致其他软件也无法征程使用。
Linux上安装和卸载rpm软件包的方法

Linux上安装和卸载rpm软件包的⽅法Linux上安装和卸载rpm软件包的⽅法如下所⽰:1.如何安装rpm软件包rmp软件包的安装可以使⽤程序rpm来完成。
执⾏下⾯的命令rpm -i your-package.rpm其中your-package.rpm是你要安装的rpm包的⽂件名,⼀般置于当前⽬录下。
安装过程中可能出现下⾯的警告或者提⽰:... conflict with ... 可能是要安装的包⾥有⼀些⽂件可能会覆盖现有的⽂件,缺省时这样的情况下是⽆法正确安装的可以⽤rpm --force -i 强制安装即可... is needed by ...... is not installed ... 此包需要的⼀些软件你没有安装可以⽤rpm --nodeps -i 来忽略此信息也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和⽂件问题,什么包都能安装上,但这种强制安装的软件包不能保证完全发挥功能2.如何安装.src.rpm软件包有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进⾏编译。
这类软件包有两种安装⽅法,⽅法⼀:执⾏rpm -i your-package.src.rpmcd /usr/src/redhat/SPECSrpmbuild -bp your-package.specs ⼀个和你的软件包同名的specs⽂件cd /usr/src/redhat/BUILD/your-package/ ⼀个和你的软件包同名的⽬录./configure 这⼀步和编译普通的源码软件⼀样,可以加上参数makemake install⽅法⼆:1.执⾏rpm -i you-package.src.rpm2. cd /usr/src/redhat/SPECS前两步和⽅法⼀相同3. rpmbuild -bb your-package.specs ⼀个和你的软件包同名的specs⽂件这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)在这个⽬录下,有⼀个新的rpm包,这个是编译好的⼆进制⽂件。
RPM 有五种基本的操作方式

RPM 大全RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。
下面我们就来逐一的讲解吧。
一、安装RPM包RPM 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。
其中包括软件包的名称(foo),版本号(1.0),发行号(1),和硬件平台(i386)。
安装一个软件包只需简单的键入以下命令:$ rpm -ivh foo-1.0-1.i386.rpmfoo ####################################RPM安装完毕后会打印出软件包的名字(并不一定与文件名相同),而后打印一连串的#号以表示安装进度。
虽然软件包的安装被设计的尽量简单易行,但还是可能会发生如下的错误:1、软件包已被安装如果您的软件包已被安装, 将会出现以下信息:$ rpm -ivh foo-1.0-1.i386.rpmfoo package foo-1.0-1 is already installederror: foo-1.0-1.i386.rpm cannot be installed如果您仍旧要安装该软件包,可以在命令行上使用--replacepkgs 选项,RPM将忽略该错误信息强行安装。
2、文件冲突如果您要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息:# rpm -ivh foo-1.0-1.i386.rpmfoo /usr/bin/foo conflicts with file from bar-1.0-1error: foo-1.0-1.i386.rpm cannot be installed要想让RPM 忽略该错误信息,请使用--replacefiles 命令行选项。
3、未解决依赖关系RPM软件包可能依赖于其它软件包,也就是说要求在安装了特定的软件包之后才能安装该软件包。
如果在您安装某个软件包时存在这种未解决的依赖关系。
Linux下软件的安装和卸载

安装完了一个崭新的操作系统,且对操作系统自带的程序有了大致的了解,相信大家的兴趣一定高了不少,接下来一定会想安装一些自己需要的应用软件。
在Linux系统中安装和配置应用软件,长期以来被公认为是Linux的软肋之一,因为Linux到目前还没有像微软Windows那样简单的Setup-And-Run的安装方法。
但是随着KDE和GNOME等桌面环境的完善,在Linux中安装应用软件的难度降低了许多。
首先说说REDHAT Linux 9.0中几种软件安装方式。
三大软件安装方式1.通过RPM软件包来安装说起RPM(REDHAT Package Management)标准的软件包,大家可能都会想起大名鼎鼎的REDHAT公司,正是RPM软件包发行方式的出现,使Linux中的应用软件安装变得简单。
如果用户想安装按RPM方式发行的软件,只需简单地输入命令“rpm -ivh xxx.rpm”即可。
比如用户想安装-1.0.1.rpm软件包,只需输入命令“rpm -ivh -1.0.1.rpm”即可。
RPM软件包发行方式的另一个优点是它能够方便地对已经安装的RPM软件包进行删除,只要使用“rpm -e -1.0.1”命令就能将刚才安装的-1.0.1.rpm从硬盘上安全永久地删除。
如果你是在X-Window环境中安装/删除软件,那便有更好的办法,如果使用的是KDE,可以使用KDE自带的Kpackage程序来对软件进行添加或删除,如果是使用GNOME,则可以使用Gnorpm程序对软件进行管理。
这两个程序都很像微软Windows中的“添加/删除程序”功能。
以RPM软件包发行方式的软件是最容易安装和管理的,建议大家以后多采用这种模式来管理软件。
2.Tar.gz(Tgz)软件包的安装以Tar.gz为扩展名的软件包,是用Tar程序打包并用Gzip程序压缩的软件包。
要安装这种软件包,需要先对软件包进行解压缩,使用“tar -zxfv filename.tar.gz”可以对软件包进行解压缩,解压缩所得的文件在以Filename为名的目录中。
rpm使用方法

rpm使用方法
RPM是一个软件包管理工具,用于在Linux操作系统中安装、升级和卸载软件包。
以下是使用RPM的一些常见方法:
1. 安装软件包:使用rpm命令安装软件包,例如:
`rpm -ivh packagename.rpm`
其中,-i参数表示安装,-v参数表示显示详细信息,-h参数表示显示进度条。
2. 升级软件包:使用rpm命令升级软件包,例如:
`rpm -Uvh packagename.rpm`
其中,-U参数表示升级,-v参数表示显示详细信息,-h参数
表示显示进度条。
3. 卸载软件包:使用rpm命令卸载软件包,例如:
`rpm -e packagename`
其中,-e参数表示卸载软件包。
4. 查询软件包信息:使用rpm命令查询软件包信息,例如:
`rpm -q packagename`
其中,-q参数表示查询软件包信息。
5. 列出所有安装的软件包:使用rpm命令列出所有已安装的软件包,例如:
`rpm -qa`
其中,-a参数表示列出所有软件包。
6. 列出软件包文件列表:使用rpm命令列出软件包中包含的所有文件,例如:
`rpm -ql packagename`
其中,-q参数表示查询软件包信息,-l参数表示列出软件包文件列表。
以上是使用RPM的一些常见方法,需要注意的是,在使用rpm命令时需要以root权限运行。
Linux下软件的命令行安装

Linux下软件的命令行安装Linux下软件包的模式一般有以下几种,rpm包、tar.gz(tar.bz2)源代码包、bin文件。
各种模式的安装方法都是不一样的,下面将简单说明各种模式该如何安装。
rpm包的安装rpm包作为linux下最常见的安装包,其安装命令也是最简单的。
一般采用‘rpm –ivh 包名’命令来安装。
其中-i参数就是安装,-v是显示帮助信息,-h是用hash符号(“#”)来显示安装过程。
对已经安装的rpm包可以使用rpm –e来进行卸载。
命令rpm –qa可以显示所有安装的rpm包。
bin文件的安装这类安装包是最简单的安装包。
我们只要cd进入存放该安装包的目录,键入‘./包名’就可以直接安装了。
其中,要注意的是必须对该文件具有x权限,如果没有x权限,使用命令‘chmod +x 包名’为用户加上x权限。
tar.gz或者tar.bz2源码包的安装step 1:将tar.gz包下载到本机step 2:以root用户进入系统step 3:cd进入tar.gz目录step 4:使用命令‘tar –zxvf ……tar.gz’或者‘tar –jxvf ……tar.bz2’进行解压缩。
解压缩后,一般会形成与[PackageName]相同的文件夹,如果不同,可用ls命令查询。
step 5:如果解压后的文件有install…….sh文件,就可以直接运行./进行安装;如果解压后的文件包含configure,那就需要对configure文件进行配置(configure文件中配置相关信息见附件)step 6:运行./configure执行相关配置step 7:make命令进行编译step 8:make install命令进行安装yum命令yum命令能将安装软件前所必需的软件包都找出来并关联安装。
下面就yum命令进行举例(在RHEL6.0_64bit的gnome界面上安装kde界面):step 1:将iso镜像文件复制到本地step 2:将iso文件挂载到目录/mnt/iso/1下mount –o loop iso文件/mnt/iso/1(注:因为mount命令是挂载一个分区,而这里的iso镜像只是一个文件,所以这里用-o loop来将iso文件当成一个虚拟分区)ps:如果你的iso文件在你的linux的cdrom中,首先用df –h命令查看iso文件是在哪个目录,比如/etc/sr0或者/etc/sr1),然后使用mount /etc/sr0 /mnt/iso/1进行挂载step 3:安装createrepo这个命令是创建yum源,方便后面的yum命令调用。
linux操作系统中rpm命令参数的使用详解

Linux操作系统中RPM命令参数的使用详解在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。
此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。
由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。
下面就给大家介绍一下它的具体使用方法。
[root@ford /root] # rpm -qa | more1.我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,假设这个文件是:Linux-1.4-6.i368.rpm,我们可以用这条命令查看:rpm -qpi Linux-1.4-6.i368.rpm系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。
2.上面列出的所有文件在安装时不一定全部安装,就像Windows下程序的安装方式分为典型、完全、自定义一样,Linux也会让你选择安装方式,此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分,以方便我们的选择:rpm -qpl Linux-1.4-6.i368.rpm3.选择安装方式后,开始安装。
我们可以用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。
在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,可以在 -ivh后加一参数“-replacepkgs”:rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm4.有时我们卸载某个安装过的软件,只需执行rpm-e <文件名>命令即可。
5.对低版本软件进行升级是提高其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件,只须执行如下命令:rpm -uvh <文件名>,注意:此时的文件名必须是要升级软件的升级补丁6.另外一个安装软件的方法可谓是Linux的独到之处,同时也是RMP强大功能的一个表现:通过FTP站点直接在线安装软件。
Linux-RPM包安装及卸载

RPM包安装及卸载来源: ChinaUnix博客日期:2008.01.07 14:36(共有0条评论) 我要评论RPM包:1.如何安装rpm软件包rmp软件包的安装可以使用程序rpm来完成。
执行下面的命令rpm -i your-package.rpm其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。
安装过程中可能出现下面的警告或者提示:... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是无法正确安装的可以用rpm --force -i 强制安装即可... is needed by ...... is not installed ... 此包需要的一些软件你没有安装可以用rpm --nodeps -i 来忽略此信息也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软件包不能保证完全发挥功能2.如何安装.src.rpm软件包有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。
这类软件包有两种安装方法,方法一:1.执行rpm -i your-package.src.rpm2. cd /usr/src/redhat/SPECS3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录5. ./configure 这一步和编译普通的源码软件一样,可以加上参数6. make7. make install方法二:1.执行rpm -i you-package.src.rpm2. cd /usr/src/redhat/SPECS前两步和方法一相同3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux软件安装之RPM的安装技巧1.怎么安装rpm软件包rmp软件包的安装能使用程式rpm来完成。
执行下面的命令rpm -i your-package.rpm其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。
安装过程中可能出现下面的警告或提示:... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是无法正确安装的能用rpm --force -i 强制安装即可... is needed by ...... is not installed ... 此包需要的一些软件你没有安装能用rpm --nodeps -i 来忽略此信息也就是说,rpm -i --force --nodeps 能忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软件包不能确保完全发挥功能 2.怎么安装.src.rpm软件包有些软件包是以.src.rpm结尾的,这类软件包是包含了原始码的rpm包,在安装时需要进行编译。
这类软件包有两种安装方法,方法一:1.执行rpm -i your-package.src.rpm2. cd /usr/src/redhat/SPECS3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录5. ./configure 这一步和编译普通的源码软件相同,能加上参数6. make7. make install 方法二:1.执行rpm -i you-package.src.rpm2. cd /usr/src/redhat/SPECS前两步和方法一相同3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
执行rpm -i new-package.rpm即可安装完成。
3.怎么卸载rpm软件包使用命令 rpm -e 包名,包名能包含版本号等信息,不过不能有后缀.rpm比如卸载软件包proftpd-1.2.8-1,能使用下列格式:rpm -e proftpd-1.2.8-1rpm -e proftpd-1.2.8rpm -e proftpd-rpm -e proftpd不能是下列格式:rpm -e proftpd-1.2.8-1.i386.rpmrpm -e proftpd-1.2.8-1.i386rpm -e proftpd-1.2rpm -e proftpd-1有时会出现一些错误或警告:... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载能用rpm -e --nodeps强制卸载 4.怎么不安装不过获取rpm包中的文件使用工具rpm2cpio和cpiorpm2cpio xxx.rpm | cpio -virpm2cpio xxx.rpm | cpio -idmvrpm2cpio xxx.rpm | cpio --extract --make-directories参数i和extract相同,表示提取文件。
v表示指示执行进程d和make-directory相同,表示根据包中文件原来的路径建立目录m表示保持文件的更新时间。
5.怎么查看和rpm包相关的文件和其他信息下面所有的例子都假设使用软件包mysql-3.23.54a-111.我的系统中安装了那些rpm软件包rpm -qa 讲列出所有安装过的包如果要查找所有安装过的包含某个字符串sql的软件包rpm -qa |grep sql 2.怎么获得某个软件包的文件全名rpm -q mysql 能获得系统中安装的mysql软件包全名,从中能获得当前软件包的版本等信息。
这个例子中能得到信息mysql-3.23.54a-11 3.一个rpm包中的文件安装到那里去了?rpm -ql 包名注意这里的是不包括.rpm后缀的软件包的名称也就是说只能用mysql或mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。
如果只是想知道可执行程式放到那里去了,也能用which,比如which mysql 4.一个rpm包中包含那些文件一个没有安装过的软件包,使用rpm -qlp ****.rpm一个已安装过的软件包,还能使用rpm -ql ****.rpm 5.怎么获取关于一个软件包的版本,用途等相关信息?一个没有安装过的软件包,使用rpm -qip ****.rpm一个已安装过的软件包,还能使用rpm -qi ****.rpm 6.某个程式是哪个软件包安装的,或哪个软件包包含这个程式rpm -qf `which 程式名` 返回软件包的全名rpm -qif `which 程式名` 返回软件包的有关信息rpm -qlf `which 程式名` 返回软件包的文件列表注意,这里不是引号,而是`,就是键盘左上角的那个键。
也能使用rpm -qilf,同时输出软件包信息和文件列表 7.某个文件是哪个软件包安装的,或哪个软件包包含这个文件注意,前一个问题中的方法,只适用和可执行的程式,而下面的方法,不仅能用于可执行程式,也能用于普通的所有文件。
前提是知道这个文件名。
首先获得这个程式的完整路径,能用whereis或which,然后使用rpm -qf例如:# whereis ftptopftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz# rpm -qf /usr/bin/ftptopproftpd-1.2.8-1# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txtproftpd-1.2.8-1 总结:获得软件包相关的信息用rpm -q,q表示查询query,后面能跟其他选项,比如i 表示info,获得软件包的信息;l 表示list,获得文件列表;a 表示all,在所有包中执行查询;f 表示file,根据文件进行相关的查询;p 表示package,根据软件包进行查询需要的查询条件能使用grep产生,或从"` `"中的命令行产生 6.关于rpm软件包的一些相关知识1.什么是rpmrpm 即RedHat Package Management,是RedHat的发明之一 2.为什么需要rpm在一个操作系统下,需要安装实现各种功能的软件包。
这些软件包一般都有各自的程式,不过同时也有错综复杂的依赖关系。
同时还需要解决软件包的版本,及安装,设置,卸载的自动化问题。
为了解决这些问题,RedHat针对自己的系统提出了一个较好的办法来管理成千上百的软件。
这就是RPM管理系统。
在系统中安装了rpm管理系统以后,只要是符合rpm文件标准的打包的程式都能方便的安装,升级,卸载 3.是不是所有的linux都使用rpm所有系统都需要包管理系统,因此非常多linux都使用rpm系统。
但rpm系统是为RH专门不过TL,Mandrake等系统也都使用rpm。
由于rpm的源程式能在别的系统上进行编译,所以有可能在别的系统上也使用rpm除了rpm,其他一些系统也有自己的软件包管理程式,例如debian的deb包,slakware也都有自己的包管理系统 4.rpm包的文件名为什么那么长rpm包的文件名中包含了这个软件包的版本信息,操作系统信息,硬件需求等等。
比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。
i386表示用于intel x86平台,还可能是sparc等。
5.软件包文件名中的i386,i686是什么意思rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构的信息。
i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32)i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32) noarch指这个软件包于硬件架构无关,能通用。
i686软件包的程式通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在x86机器上都能用。
向前一般不兼容。
不过目前的计算机,奔腾pro以下的CPU已非常少用,通常设置的机器都能使用i686软件包 6.不同操作系统发行的rpm包可否混用?对于已编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。
对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常能在不同系统下安装。
7.使用rpm时遇见的一些特别问题Q 我用rpm -e **.rpm无法删除rpm包A 包名不要包括rpm,rpm -e 包名,能包含版本号等信息,不过不能有后缀.rpm Q 在MS的系统下有没有读RPM 文件的工具?A wincmd with rpm plugins..... Q 是否能通过ftp安装安装升级rpm包?A 能。
rpm -ivh ftp://xxxxxxxx/PATH2SomeRPM Q rpm安装时已有的包版本过高怎么办?A 有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要安装的包依赖的一些文件会未找到。
这时有两种解决办法,第一是在系统文件中找到和需要的文件功能相同或相似的文件,做一个符号链接到需要的目录下。