您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > Linux操作系统-第九章-软件包管理
第九章软件包管理主要内容RPM概述RPM的使用RPM的使用技巧RedHat软件包管理器学习目标掌握rpm命令的使用方法9.1RPM概述RPM最早是由RedHat公司提出的软件包管理标准,后来随着版本的升级又融入了许多其他的优秀特性,成为了Linux中公认的软件包管理标准。RPM最初的全称是RedHatPackageManager。现在是RPMPackageManager的缩写。RPM由RPM社区负责维护,可以登录到RPM的官方站点()查询最新的信息。为什么需要rpm?在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的程序,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,以及安装,配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统以后,只要是符合rpm文件标准的打包的程序都可以方便的安装,升级,卸载。9.1RPM概述RPM的优点•易于安装、升级便利•丰富的软件包查询功能•软件包内容校验功能•支持多种硬件平台9.1RPM概述RPM的五大功能•安装——将软件从包中解出来,并且安装到硬盘。•卸载——将软件从硬盘清除。•升级——替换软件的旧版本。•查询——查询软件包的信息。•验证——检验系统中的软件与包中软件的区别。9.1RPM概述RPM包的名称格式:name-version-release.type.rpm如:bind-9.2.1-16.i386.rpm•name为软件的名称•version为软件的版本号•release为软件的修正版本号•type为包的类型i[3456]86:表示在Intelx86计算机平台上编译的sparc:表示在sparc计算机平台上编译的alpha:表示在alpha计算机平台上编译的src:表示软件源代码•rpm(src.rpm)为文件扩展名9.1RPM概述从何处获得RPM软件包•从发行套件的CD中查找•从软件的主站点查找下载•从查找下载•从查找下载RPM预设安装的路径一般来说,由于RPM有数据库来记录包相关的信息,所以RPM类型的包所拥有的文件都放置在系统预设放置的目录底下:•/etc一些设定文件放置的目录,例如/etc/crontab•/usr/bin一些可执行档案•/usr/lib一些程序使用的动态函数库•/usr/share/doc一些基本的软件使用手册与说明文件•/usr/share/man一些manpage文件9.2RPM的使用9.2.1.RPM软件包的安装与卸载1.安装软件包•格式:#rpm-i包文件名•举例:#rpm-icvs-1.11.2-10.i386.rpm在安装时添加v和h的参数,可以使我们对安装与卸除的过程了解更加详细。前者会说明执行步骤,后者会显示一个百分比的进度条。#rpm-ivhrp-pppoe-3.1-5.i386.rpmPreparing...#########[100%]1:rppppoe#########[100%]如果要安装两个以上的包时,可以这样:#rpm-ivha.i386.rpmb.i386.rpm*.rpm#后面可以接多个包!也可以直接由网络上面安装,例如:#rpm-ivh安装过程中可能出现下面的警告或者提示:...conflictwith...可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这种情况下是无法正确安装的,可以用rpm--force-i强制安装。...isneededby......isnotinstalled...此包需要的一些软件你没有安装可以用rpm--nodeps-i来忽略此信息。也就是说,rpm-i--force--nodeps可以忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软件包不能保证完全发挥功能。2.升级软件包无论系统是否有安装过某rpm包或其旧版本,安装或更新指定的rpm包。•格式:#rpm-Uvh包文件名•举例:#rpm-Uvhcvs-1.12.2-10.i386.rpm3.更新软件包仅在系统已安装某rpm包的旧版本rpm包时,更新rpm包,否则不安装。•格式:#rpm-F包文件名•举例:#rpm-Fcvs-1.11.2-10.i386.rpm4.卸载软件包•格式:#rpm-e包名•举例:#rpm-ecvs问题:我用rpm-e**.rpm无法删除rpm包。解答:包名不要包括rpm,rpm-e包名,可以包含版本号等信息,但是不可以有缀.rpm。9.2.2查询软件包1.查询已安装的软件包•查询系统中安装的所有RPM软件包$rpm–qa•查询指定的软件包在系统中是否安装$rpm-q包名•查询系统的某个文件属于哪一个包所有$rpm–qf文件名•查询系统中已安装指定的软件包的描述信息$rpm-qi包名•查询指定的软件包中所包含的文件列表$rpm-ql包名查询软件包举例•查询cvs软件包在系统中是否安装$rpm–qcvs•查询系统中已安装的cvs软件包的描述信息$rpm–qicvs•查询系统中已安装的cvs软件包里所包含的文件$rpm–qlcvs•查询系统中文件/etc/passwd所属的软件包$rpm–qf/etc/passwd2.查询未安装的软件包rpm–qip包文件名假设发现了一个新的koulesRPM,但不知道它是做什么的,可以键入如下命令:rpm-qipkoules-1.2-2.i386.rpmrpm–qlp包文件名现在您想了解koules的RPM包在系统里安装了哪些文件,您可以键入:rpm-qlpkoules-1.2-2.i386.rpm输出结果为:/usr/man/man6/koules.6/usr/lib/games/kouleslib/end.raw……………………………………/usr/games/koules9.2.3RPM包的校验与检查rpm-V可以让用户很方便地检查,与安装的时候相比,某RPM包中的文件是否发生了什么变化。1.验证已安装的软件包rpm–Va校验所有已安装的软件包rpm–V包名校验指定的软件包rpm–Vp包文件名校验与指定的包对比是否有改变rpm–Vf文件名校验指定的文件是否有改变校验软件包举例:•验证cvs软件包#rpm–Vcvs•验证cvs-1.11.2-10.i386.rpm包文件#rpm–Vpcvs-1.11.2-10.i386.rpm•验证所有已安装的软件包#rpm–Va•验证包含文件/etc/passwd的软件包#rpm–Vf/etc/passwd在使用rpm-V时,出错提示符号分别表示某部分未通过校验S文件大小M文件权限与类型5MD5求和D设备文件的主、从号码L符号连接文件找不到连接对象U文件的所属用户G文件的所属组T更改时间#rpm-Vlogrotate..5....Tc/etc/logrotate.conf至于那个c代表的是“Configfile”的意思,也就是文件的类型,文件类型有底下这几类:•c:配置文件(configfile)•d:数据文件(documentation)•g:鬼文件,通常是该文件不被某个包所包含,较少发生!(ghostfile)•l:授权文件(licensefile)•r:自述文件(readme)经过验证的功能,就可以知道那个文件被更动过。如果该文件的变更是“预期中的”,那么就没有什么大问题,但是如果该文件是“非预期的”,那么就要注意了,要查一下是否被入侵了。9.3RPM的使用技巧如果误删了一些文件,但不能肯定到底都删除了那些文件,怎么办?可以键入:rpm-Varpm会在屏幕上显示出文件删除的情况。若发现一些文件丢失了或已被损坏,就可以重新安装或先卸载再安装该软件包。9.3RPM的使用技巧如果碰到了一个自己不认识的文件,要想查处它属于哪个软件包,可以输入以下命令rpm-qf/usr/X11R6/bin/xjewel输出的结果会是:xjewel-1.6-19.3RPM的使用技巧如果发生综合以上两个例子的情况,如文件/usr/bin/paste出了问题。你想知道哪个软件包中包含该文件,这时可以简单的键入:rpm-Vf/usr/bin/paste9.4RedHat软件包管理器在主菜单中选择“系统设置”,选择“添加/删除应用程序”小结RPM概述RPM的使用RedHat软件包管理器
本文标题:Linux操作系统-第九章-软件包管理
链接地址:https://www.777doc.com/doc-5098957 .html