课件第6章cj linux的包管理_第1页
课件第6章cj linux的包管理_第2页
课件第6章cj linux的包管理_第3页
课件第6章cj linux的包管理_第4页
课件第6章cj linux的包管理_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1在一台计算机上,首先要装的第一个软件就是操作系统,然后还要在操作系统的平台上安装很多的应用软件,这样才能丰富计算机的功能。在windows下,这些应用软件通常都会提供安装软件,如腾迅QQ,VC+等,我们要使用这些应用软件,可以先从网上下载安装软件或购买其安装盘,然后执行其中的setup或install程序,把他们安装到系统中就可使用了。在linux上能见到各种包管理系统来安装、管理和删除软件用的命令行工具。每个主要的linux发行版都利用包管理系统来控制安装应用软件和库。包管理系统利用一个数据库来记录:linux系统上已安装了什么软件包每个包安装了什么文件每个已安装软件包的版本Linux中广

2、泛使用的两个主要包管理系统基础工具是dpkg和rpm。第六章 Linux 的包管理2基于debian的发行版,比如Ubuntu和linux Mint,在它们包管理系统工具的底层用的是dpkg命令。这个命令会直接和linux系统上的包管理系统交互,用来安装、管理和删除软件包。基于redhat的发行版,比如fedora、openSUSE以及Mandriva,在它们包管理系统工具的底层用的是rpm命令。这两个命令是它们各自包管理系统的核心。Linux发行版在这两个基础命令之上,还构建了其它专门的包管理系统前端工具来方便使用。基于debian的包管理系统工具是以dpkg命令为核心,主要常见的包管理系统

3、前端工具有: (1) apt-get (2)apt-cache (3)aptitude与debain 类似,基于redhat的也有几种不同可用的前端工具。常见的有以下3种: (1)yum:在RedHat 和fedora中使用 (2)urpm:在Mandriva中使用 (3)zypper:在openSUSE中使用。3 通常Linux应用软件的安装方式: 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。通常是源代码包. 2) rpm包,如software-1.2.3-1.i386.rpm或software-1.2.3-1.i386.sr

4、c.rpm 。它是Redhat Linux提供的一种包封装格式,同时也被其他发行版采用,是linux下标准的包安装形式。 3)YUM管理工具。YUM是命令行的RPM包管理工具。尽管RPM有许多优点,但同时它也有明显的缺点软件包依赖性。安装这些互有依赖性的软件包是很繁琐的事,这时可以用YUM管理工具来解决。 而且,大多数Linux应用软件包的命名也有一定的规律,它遵循: 名称-版本-修正版-类型 例461 包管理概述 rpm是一个开放的软件包管理器,是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。 当要安装、删除或升级RPM软件包时,只要使用简短的命令就可以完成。包管

5、理器维护一个所有已安装的RPM软件包和文件的数据库,因此,用户可以在系统上进行RPM软件包的查询和校验工作。在RPM软件包的升级中,包管理器处理配置文件时非常谨慎,因此用户决不会丢失所定制的配置 这是用普通压缩包,如.tar.gz文件所无法达到的。由于安装、删除、或升级某个RPM软件包时,包管理器要对用户的系统做适当的配置,所以RPM软件包的安装、删除或更新只有root权限的用户才能使用;对于查询功能任何用户都可以操作。62 包管理的特色(略)563 命令行下的包管理在命令行下使用rpm命令进行包管理。RPM提供以下五种基本操作以实现用户对软件包的管理:安装-解开被压缩的软件包,并安装软件到计

6、算机磁盘上。查询-通过RPM数据库查询软件包的相关信息。校验-校验软件包中程序的正确性。升级-用新版本程序替换软件包中的旧版本程序。删除-清除通过RPM安装的软件,即卸载软件包。rpm i ; rpm q; rpm V; rpm U; rpm e;6631 安装软件包从网络上可以搜索到大量应用程序的RPM软件包,大多数RPM软件包的命名有一定的规律,一般有类似linuxconf-1.34r3-1.i386.rpm 或linuxconf-gui-1.34r3-1.i386.rpm的文件名;前者是工作在字符界面下的软件,而后者是工作在图形界面下。这些RPM软件包的文件名一般包括以下几个部分:软件包

7、的名称,如linuxconf。软件包的版本号,如1.34r3。发行号,如1。硬件平台,如i386、i586等。扩展名,一般就是rpm。此外,网络上还有一种源代码软件包,即SRPM软件包,其软件包名中带有src字样。这种软件包是不带编译后的可执行文件,需要用户自己编译。以下分别介绍这两种软件包的安装方法。76311 RPM软件包的安装通常安装一个RPM软件包的命令格式是: rpm -i|-install install-options PACKAGE_FILE .其中,-i或-install是必需的命令选项、install-options是可选的命令选项,参数PACKAGE_FILE .是要安装

8、的软件包文件名列表。安装、升级与删除选项(install/upgrade/erase option)说明:选项说明-aid当需要时,添加建议的软件包以便处理。-allfiles安装或升级软件包中所有的文件,不管文件是否存在。-allmatches 删除所有指定的软件包。-badreloc发生错误时,重新配置文件。-excludepath OLDPATH忽略在指定目录OLDPATH里的所有文件。-excludedocs安装软件包时不安装任何文档(包括man手册页和文本信息文档)。-force强制更换软件包或文件。与使用命令选项replacepkgs、 -replacefiles和oldpacka

9、ge一样。8-h或-hash软件包安装或升级时输出“#”显示进度;经常与-v选项一起使用。-ignoresize安装前不检查磁盘空间是否足够。-ignorearch即使二进制包适用的结构格式与主机不匹配,仍然允许安装和升级软件包。-ignoreos即使二进制包适用的操作系统与主机不匹配,仍然允许安装和升级软件包。-includedocs安装软件包时,安装所有的文档。这是默认设置。-justdb只是更新数据库,不改变任何文件。-nodigest当读取包时不校验包或标题摘要。-nosignature当读取包时不校验包或标题签名。-nodeps当安装/升级/删除软件包时不做依赖性检查。-nosugg

10、est不提示丢失包的依赖关系。-noorder不重新编排软件包的安装顺序,以便满足它们彼此间的依赖关系。-nopostun不执行任何安装脚本(script)文件。该选项与noscripts、-nopre、-nopost、-nopreun选项等价。-notriggerpostun不执行软件包内的任何脚本(script)文件。该选项与notriggerin、-notriggerun、notriggers选项等价。-oldpackage允许升级中用旧包替换新包。-percent安装或升级时显示完成进度的百分比。-prefix NEWPATH如果重新配置文件,就把文件放在指定的目录NEWPATH之下。

11、-relocate OLDPATH=NEWPATH将原来放在旧目录OLDPATH下的文件改放到新目录NEWPATH下。-repackage在软件包删除前重新打包文件。-replacefiles强行替换软件包中的文件。-replacepkgs强行替换软件包。-test仅仅是测试,并不真的安装/升级/删除软件包。9软件包常用的安装方法示例:rootlocalhost root# rpm -ivh linuxconf-gui-1.34r3-1.i386.rpmwarning: linuxconf-gui-1.34r3-1.i386.rpm: V3 DSA signature: NOKEY, key

12、ID 687255b5Preparing. # 100%1:linuxconf-gui # 100%rootlocalhost root#10在命令中使用-v选项输出安装详细信息,用-h选项以输出“#”符号显示安装进度。由于该软件包没有签名,所以安装中出现警告信息;如果要消除显示警告信息可以通过增加-nosignature选项。命令执行中输出的显示信息“Preparing.”表示正在对软件包进行预处理,主要是对软件包的依赖性进行检查。虽然rpm命令的安装选项很多,但是常用的主要就是v和h选项。11 由于用户事先可能并不知道系统中哪些包已经安装、哪些包没有安装,所以软件包在实际安装过程中会出现一

13、些常见的错误:1、软件包已经安装如果用户安装的软件包已经被安装过,则会出现以下信息:rootlocalhost root# rpm -ivh linuxconf-gui-1.34r3-1.i386.rpmwarning: linuxconf-gui-1.34r3-1.i386.rpm: V3 DSA signature: NOKEY, key ID 687255b5Preparing. # 100% package linuxconf-gui-1.34r3-1 is already installedrootlocalhost root#12从输出的信息可以看到,经过预处理后rpm判断出该软件

14、包已经安装过。如果用户要坚持重新安装,则可以使用 -force或-replacepkgs选项,强制进行重新安装,例如:rootlocalhost root# rpm -ivh force nosignature linuxconf-gui-1.34r3-1.i386.rpmPreparing. # 100% 1:linuxconf-gui # 100%rootlocalhost root#采用nosignature选项后不再进行包的签名检查,所以没有显示警告信息;采用force选项后将忽略该软件包已经安装的信息,强制进行安装。132、文件冲突如果用户要安装的软件包中某个文件已经在安装其他软件包

15、时被安装,就会出现文件冲突的信息,这时安装失败。例如:rootlocalhost root# rpm -ivh xmms-1.2.8-1.i386.rpmPreparing. # 100% file /usr/bin/wmxmms from install of xmms-1.2.8-1 conflicts with file from package xmms-1.2.7-21.p file /usr/bin/xmms from install of xmms-1.2.8-1 conflicts with file from package xmms-1.2.7-21.perror: xmm

16、s-1.2.8-1.i386.rpm cannot be installedrootlocalhost root#这表示新安装的软件包xmms-1.2.8-1与系统已经安装的软件包xmms-1.2.7-21.p中的wmxmms和xmms文件冲突,新的软件包不能安装。如果用户希望忽略这个错误信息并继续安装时,可以采用强制替换软件包中文件的replacefiles或-force选项。143、依赖关系检查失败在执行rpm命令安装软件包时,默认会自动检查软件包的依赖关系;即要安装的软件包如果依赖其他软件包,而其他软件包还没有安装时,会出现依赖关系检查失败的信息,当然安装也会终止。例如:rootloca

17、lhost mnt# rpm -ivh xmms-1.2.8-1.i386.rpmerror: Failed dependencies: xmms = 1.2.7 is needed by (installed) xmms-devel-1.2.7-21.pYou have new mail in /var/spool/mail/rootrootlocalhost mnt#这表示要安装的软件包xmms-1.2.8-1.i386.rpm依赖xmms-devel-1.2.7-21.p软件包,因此解决依赖关系检查失败引起的问题需要先安装xmms-devel-1.2.7-21.p软件包。安装选项-nod

18、eps可以要求rpm命令不做依赖性检查,因此用户可以使用该选项进行强制安装,但是最好不要这样做,因为忽略了依赖关系检查后即使软件包安装了也不一定能正常运行。156312安装源代码软件包 前面所介绍的RPM软件包是指包内已经带有可执行程序的软件包,安装后即可运行。现在许多网站除了提供这种软件包外也提供源代码软件包,即SRPM软件包,其软件包名中带有src字样。用户可以根据自己的需要从相关的网站下载RPM或SRPM软件包。与RPM软件包安装方式相比,使用源代码软件包(SRPM软件包)进行安装相对会比较复杂,因为需要由用户自己编译源代码生成可执行文件。 在Linux系统中,有些软件只能以SRPM软件

19、包的形式提供,如Linux系统内核和某些应用程序源代码。使用源代码软件包安装软件是Linux系统下进行软件安装的重要手段,也是使用Linux系统的最主要的优势之一。对于专业用户而言使用源代码软件包安装软件,不仅能按照用户的需要选择安装方式进行安装,而且能够深入了解源代码学习到更多的知识。16下面简要介绍SRPM软件包的安装方法:第一,将SRPM软件包导入系统。下载后,以超级用户身份执行 rpm ivh PACKAGE_FILE 命令,将源代码软件包导入系统。如果是RPM包,则该命令执行后会将包内的可执行程序安装到Linux系统的某个bin或sbin目录下;而如果是SRPM包,则在/usr/sr

20、c/redhat/SOURCES目录下导入一个包含软件包名称的压缩文件,形如package_name.tar.gz等。17第二,将压缩文件解压缩。源代码软件包导入后的压缩文件通常以.tar.gz做为扩展名,也有以tar.Z、tar.bz2或.tgz做为扩展名的。不同的扩展名表示压缩时所用的命令不同,当然解压缩的命令也不相同,用户既可以在命令行下解压缩也可以在图形方式下解压缩,有关如何解压缩的内容请参阅第四章的相关章节。18第三,编译源代码当解压缩成功后,会建立一个目录,目录名一般就是软件包名。用cd命令进入到对应的目录中。在编译之前最好阅读Readme文件和Install文件。尽管许多源代码软

21、件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的信息。例如,安装该软件包是否需要其他软件或程序库的支持;软件包中是否含有可以自动安装的脚本程序(.sh)等。在安装前阅读这些说明文件,有助于安装成功和节约时间。19如果目录中已经有Makefile文件,则用户只要执行make命令就可以完成安装;如果目录中没有Makefile文件,则一般有一个可执行的configure脚本文件,执行它会自动检查编译器及编译该软件的条件是否满足,如果检查通过,则生成Makefile文件。再执行make和make install命令即可完成源代码软件包的安装。否则,输出错误信息且运行终止。示例:20参

22、考示例:安装bluefish-0.11-1.fr.src.rpm源代码软件包。Bluefish是Linux系统下所见即所得的HTML编辑器。安装具体方法如下:rootlocalhost root# rpm ivh bluefish-0.11-1.fr.src.rpm *解包*rootlocalhost root# cd /usr/src/redhat/SOURCES *切换目录*rootlocalhost SOURCES# tar jxvf bluefish-0.11.tar.bz2 *解压缩*rootlocalhost SOURCES# cd bluefish-0.11 *切换目录*root

23、localhost bluefish-0.11# ./configure *生成Makefile文件*rootlocalhost bluefish-0.11# make *编译源代码*rootlocalhost bluefish-0.11# make install *安装可执行文件*rootlocalhost bluefish-0.11# make clean *删除临时文件*以上的解压缩和从tar包中还原文件操作,在图形界面下用软件打包器也可以一步完成并且更方便、速度更快。如果是*.tar.gz压缩包,则使用tar zxvf *.tar.gz解压缩,当然同样可以在图形界面下用软件打包器解压

24、缩。 有些源代码软件包在编译安装后可以用make uninstall命令卸载。如果不提供此功能,则该软件的卸载必须手动删除。21在执行configure脚本文件时常见的错误、判断方法和解决措施是:1、没有安装C或C+编译器判断方法:执行命令gcc(C+则为g+),看是否提 示找不到该命令。解决措施:将Red Hat Linux9.0第二张安装光盘挂载 (mount)到/mnt目录,然后进入/mnt/RedHat/RPMS目录,执行命令:#rpm -ivh gcc*2、没有安装make工具判断方法:执行命令make,看是否提示找不到该命令。解决措施:将Red Hat Linux9.0第一张安装光

25、盘挂载 (mount)到/mnt目录,然后进入/mnt/RedHat/RPMS目录,执行命令:#rpm -ivh make*223、没有安装autoconf工具判断方法:执行命令autoconf,看是否提示找不到该 命令。解决措施:将Red Hat Linux9.0第二张安装光盘挂载 (mount)到/mnt目录,然后进入/mnt/RedHat/RPMS目录,执行命令:#rpm -ivh autoconf*4、缺少某些链接库判断方法:在make时,提示缺少某些链接库文件。解决措施:从网络上下载并安装包含这些链接库文件的包。这些错误是在安装Linux系统时没有全部安装或没有选中软件开发包造成的。

26、除了采用命令方式解决这些问题外,如果用户已经安装了图形方式下的软件包管理工具,则也可以在图形方式下添加这些软件包。23632 软件包查询软件包查询实际上就是查询RPM所维护的数据库,通常查询一个RPM软件包的命令格式是:rpm -q|-query query-options PACKAGE_NAME .其中,-q或-query是必需的命令选项、query-options是可选的命令选项,参数PACKAGE_NAME.是软件包名列表,该参数是可选的;用户查询指定软件包的信息时只要输入软件包名不要带版本号和发行号,另外软件包名不支持通配符。24查询选项(query options)说明:查询选项选

27、项说明-c或-configfiles package_name列出指定软件包的所有配置文件。-d或-docfiles package_name列出指定软件包的所有文档文件,通常是手册页。-dump package_name列出指定软件包中每个文件的校验信息。-l或-list package_name列出指定软件包中所有的文件。-queryformat=QUERYFORMATPackage_name按指定的格式查询。格式QUERYFORMAT有“name”、“version”和“description”三种。该选项要与-i选项一起使用。-s或-state package_name显示指定软件包中

28、每个文件的状态。-a或-all查询系统中所有的软件包。通常交给grep处理-f或-file file_name查询拥有指定文件的软件包。文件名必须带完整的路径。-g或-group group_name查询位于指定组群的软件包。-p或-package packagefile_name查询指定软件包文件的包名称、版本号和发行号。-specfile packagefile_name查询指定的软件包文件。-whatrequires package_name查询指定软件包所需要的依赖关系。-whatprovides package_name查询指定软件包所提供的依赖关系。25软件包常用的查询方法参考示例

29、1:查询软件包名为linuxconf-gui的包名称、版本号和发行号。rootlocalhost root# rpm -q linuxconf-guilinuxconf-gui-1.34r3-1rootlocalhost root参考示例2:查询软件包linuxconf-gui和xmms所需要的依赖关系。rootlocalhost mnt# rpm -q -whatrequires linuxconf-gui xmmsno package requires otlocalhost mnt#

30、 从显示的结果可以看到,软件包linuxconf-gui没有需要的依赖关系;软件包xmms需要依赖其他两个xmms-devel-1.2.7-21.p和xmms-skins-1.2.7-21.p软件包。26参考示例3:查询系统中所有软件包的基本信息。rootlocalhost mnt# rpm -qa执行该命令后将显示系统中所有已经安装的软件包名称、版本号和发行号信息。参考示例4:查询软件包kernel-ntfs-2.4.20-8.i686.rpm中的所有文件。rootlocalhost mnt# rpm -ql kernel-ntfs 已安装 或 rpm -qpl kernel-ntfs-2.

31、4.20-8.i686.rpm 用包名,可未安装/lib/modules/2.4.20-8/kernel/fs/ntfs/lib/modules/2.4.20-8/kernel/fs/ntfs/ntfs.orootlocalhost mnt#该软件包是为了在Linux系统下安装Windows 系统的NTFS而发行的补丁软件包。查询时只要使用软件包名称即可。参考示例5: rpm -qf 列出一个文件属于那个包. rpm qf /sbin/initrpm qf /etc/inittab27参考示例6:查询软件包gcc的详细信息并找出其源码包。rootlocalhost root# rpm -qi

32、gcc|grep RPM例:查询系统中是否已安装vsftp软件包?使用rpm q vsftp,思路可以,但这种做法,包名(很容易出错)要写对,否则找不到28633 软件包校验*软件包校验是检查软件包中的所有文件是否与系统中所安装的一致。软件包校验就是根据RPM所维护的数据库对文件大小、存取权限和属主属性等进行校验。当用户安装了新程序后,如果怀疑某些文件被破坏时,可以使用软件包校验操作。通常校验一个RPM软件包的命令格式是:rpm -V|-verify verify-options PACKAGE_NAME.其中,-V或verify是必需的命令选项、verify-options是可选的命令选项,

33、参数PACKAGE_NAME.是软件包名列表,该参数是可选的;软件包名的使用规则与软件包查询操作是相同的。29校验选项(verify options)说明:校验选项选项说明-nomd5 package_name 对指定的软件包不使用MD5编码校验文件的大小与正确性。-nofiles package_name 对指定的软件包不校验软件包中文件的属性。-nodeps package_name 对指定的软件包不校验软件包的依赖关系。-noscript package_name 对指定的软件包不执行校验Scripts文件。-a或-all 校验系统中所有的软件包。-f或-file file_name校验

34、拥有指定文件的软件包。文件名必须带完整的路径。-g或-group group_name校验位于指定组群的软件包。-p或-package packagefile_name校验指定软件包文件大小、属性等。-specfile packagefile_name校验指定的软件包文件。-whatrequires package_name校验指定软件包所需要的依赖关系。-whatprovides package_name校验指定软件包所提供的依赖关系。30软件包常用的校验方法参考示例1:校验指定的linuxconf-gui软件包。rootlocalhost root# rpm -V linuxconf-gu

35、irootlocalhost root参考示例2:校验指定文件/bin/rpm的软件包。rootlocalhost root# rpm Vf /bin/rpmrootlocalhost root31参考示例3:校验指定软件包文件大小、属性等。rootlocalhost root# rpm -Vp RealPlayerOne-20040517.i586.rpmS.5.T/usr/local/RealPlayer/realplayrootlocalhost root从上面的参考示例可见,如果校验正常则没有任何信息输出,如参考示例1和2;如果校验中有发现问题则rpm命令就会显示错误信息,如参考示例3

36、。错误信息的格式先是8位长度的字符串,如果被校验的文件是配置文件则紧跟一个标志“c”,接着是文件名。8位字符的每一个用来表示被校验文件与RPM数据库中一种属性的比较结果。错误信息中输出的每个字符含义见表5-5。32错误信息中输出的字符含义:输出字符表示含义.表示该属性测试通过。5表示MD5校验码测试失败。S表示文件大小测试失败。L表示符号链接测试失败。T表示文件修改日期测试失败。D表示设备测试失败。U表示用户测试失败。G表示用户组群测试失败。M模式e(包括文件权限和文件类型)测试失败。33634 软件包升级软件包的升级操作与软件包的安装操作非常类似。通常升级一个RPM软件包的命令格式是:rpm

37、 -U|-upgrade install-options PACKAGE_FILE .或rpm -F|-freshen install-options PACKAGE_FILE .其中,-U或upgrade和-F或-freshen是必需的命令选项、install-options是可选的命令选项,与安装操作时的命令选项是一样的(见表5-2)。参数PACKAGE_FILE .是要升级的软件包文件名列表。这两种命令用法之间的区别只是,-U选项将升级当前指定的软件包,如果这个包还没有安装,就安装它;如果已经安装,则对它升级。-F选项只是对已经安装的软件包进行升级(即刷新)。在具体应用中,-U选项比较常

38、用,尤其是在命令行中包含一系列RPM软件包的时候。这样自动地使未安装的包被安装,而已安装的包被升级。34在升级软件包时,rpm命令将自动删除旧版本的软件包。如果用户对旧版本的软件包做过配置,则rpm命令能自动处理配置文件,即将原有的配置文件更名保存;用户在升级完成后可以查看新、旧配置文件,比对它们之间的不同并进行修改,以保证升级后的软件能正常地运行。如果用户下载的软件包版本比已经安装的软件包版本还旧,则在非特别指定的情况下rpm命令不会执行“升级”操作;除非用户在升级命令中采用oldpackage选项,则rpm命令将用旧版本的软件包替换新版本的软件包。35软件包常用的升级方法参考示例1:升级指

39、定的linuxconf-gui软件包。rootlocalhost root# rpm -Uvh linuxconf-gui-1.34r3-1.i386.rpmwarning: linuxconf-gui-1.34r3-1.i386.rpm: V3 DSA signature: NOKEY, key ID 687255b5Preparing. # 100% 1:linuxconf-gui # 100%rootlocalhost root#36参考示例2:仅仅测试linuxconf-gui软件包并不真正升级。rootlocalhost root# rpm -Uvh -test linuxconf-

40、gui-1.34r3-1.i386.rpmwarning: linuxconf-gui-1.34r3-1.i386.rpm: V3 DSA signature: NOKEY, key ID 687255b5Preparing. # 100%rootlocalhost root#增加test选项后,rpm命令并不安装或升级软件包,只是进行测试操作。这个测试输出信息表示该软件包安装没有问题(只是没有签名的警告);如果测试结果存在文件冲突或依赖关系检查失败则会输出相应的信息。37635 软件包删除(卸载)当所安装的软件包不再使用时,为了节省磁盘空间可以将已安装的软件包删除(卸载)。删除RPM软件包的

41、格式是:rpm -e|-erase -allmatches -nodeps -noscripts -notriggers -repackage -test PACKAGE_NAME .其中,参数PACKAGE_NAME .是软件包名列表,不是软件包文件名列表,-e或-erase是必需的命令选项,其他的为可选的命令选项,含义参见表5-2。38参考示例1:删除linuxconf-gui-1.34r3-1.i386.rpm软件包。rootlocalhost root# rpm -e linuxconf-guirootlocalhost root#注意:这里使用的是软件包名,而不是软件包文件名。有时在

42、删除软件包时,会有错误提示信息,这一般是系统中还有其他的软件包要依赖当前正要删除的软件包。参考示例2:删除guile-1.6.0-4.i386.rpm软件包。rootlocalhost root# rpm -e guileerror: Failed dependencies: libguile.so.12 is needed by (installed) gnome-games-2.2.0-3 libguile.so.12 is needed by (installed) g-wrap-1.3.4-3 libguile.so.12 is needed by (installed) gnucas

43、h-1.8.1-3 libqthreads.so.12 is needed by (installed) gnome-games-2.2.0-3 libqthreads.so.12 is needed by (installed) g-wrap-1.3.4-339 libqthreads.so.12 is needed by (installed) gnucash-1.8.1-3 guile is needed by (installed) g-wrap-1.3.4-3 guile = 1.3 is needed by (installed) gnumeric-1.0.12-3 guile =

44、 1.6.0 is needed by (installed) guile-devel-1.6.0-4 /usr/bin/guile is needed by (installed) guile-devel-1.6.0-4 /usr/bin/guile is needed by (installed) g-wrap-devel-1.3.4-3rootlocalhost root#在这种情况下,虽然用户可以使用-nodeps选项,忽略依赖关系继续删除,但是最好不要这样做,否则该软件包删除后其他的软件包也不能运行。一般在删除一个软件包前,可以在命令中先使用test选项以检查该软件包与其他软件包之间

45、的依赖关系,在没有错误信息输出时再实际进行删除操作。40636 数据库维护*在Linux系统中之所以可以完成对RPM软件包的一系列管理,是因为系统中维护着一个RPM软件包的数据库。有时执行rpm命令不能实现软件包的安装、升级、查询、验证和删除就是由于该数据库存在问题而引起的。维护RPM数据库的命令格式是:rpm -initdb|-rebuilddb -v -dbpath DIRECTORY -root DIRECTORY其中,-initdb或rebuilddb为必需的命令选项,其他为可选的命令选项。当使用initdb选项时,在系统中建立一个新的RPM数据库;使用rebuilddb选项时,重建包

46、括所有已经安装软件包的数据库。41可选命令选项的说明参考示例1:在/root/zxj目录下建立一个新的RPM数据库。rootlocalhost root# rpm -initdb -v -dbpath /root/zxj进入zxj目录检查RPM数据库建立情况:rootlocalhost root# cd zxjrootlocalhost zxj# ls_db.001 _db.002 _db.003 Packagesrootlocalhost zxj#从检查结果可以看到,新数据库已经建立。注意:选项dbpath所带的目录名参数必须是绝对路径名,否则不会在指定的目录中建立RPM数据库。可选选项选项

47、说明-v显示命令执行的详细信息。-dbpath DIRECTORY指定要存放RPM数据库的路径目录名。-root DIRECTORY指定要作为根目录的目录。42参考示例2:重建所有已经安装软件包的数据库。rootlocalhost root# rpm rebuilddb这个命令执行时要检查系统中所有已经安装的软件包,所以花费的时间是比较长的。另外,在执行rpm命令时,不要再执行重建数据库命令,否则系统会显示“设备或资源忙”错误信息。4364 图形方式下的RPM包管理 在Red Hat Linux8.0以后的发行版本中图形化的软件包管理工具只有“添加/删除应用程序”,它是“开始”、“系统设置”菜

48、单下的一个菜单项;它的主要功能是添加或删除安装光盘上的软件包,也可以安装用户下载的软件包,但是不能删除、查询和校验用户下载的软件包;如果用户要在图形界面下完成这些操作,则需要从网络下载RPM软件包管理工具,常用工具软件的有:linuxconf、Kpackage和GnoRPM软件。linuxconf是功能强大、综合性的管理软件,软件包管理只是它其中的一项功能;而Kpackage和GnoRPM分别为KDE界面和GNOME界面的专用包管理软件。它们都可以对系统中所有软件包实施管理。44641“添加/删除应用程序”软件的使用当运行“添加/删除应用程序”软件时,系统显示的窗口如图6-1所示。它划分“桌面”、“应用程序”、“服务器”、“开发”和“系统”五大类,每一大类中又分为若干小类,例如,“桌面”分为“X 窗口系统”、“GNOM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论