Linux中的软件包类故障排错
|
副标题[/!--empirenews.page--] 软件包类故障在Linux系统中比较常见,例如:需要编译源码包程序时系统中没有安装gcc编译工具,安装RPM软件包时有未解决的依赖关系,程序库文件或头文件的安装路径不正确等,软件包类故障产生的原因非常多,通常只需要根据相应的错误提示信息,确认安装好编译环境,找到所需要的依赖软件包,纠正库文件或对应的头文件路径即可。 下面主要介绍rpm数据库损坏和找不到“.so”文件的故障解决方法。 1、rpm数据库损坏 rpm数据库损坏的故障并不多见,出现该故障的原因一般是由于经常强制关机,误删除运行中的文件,强制替换一些rpm包文件等。rpm数据库损坏后,在使用rpm工具查询或安装软件时,将无法正常运行。 eg:模拟rpm数据库损坏故障,并验证错误信息。 RPM作为Linux系统中的软件包管理机制,维护着一份独立的文件数据库,用于存储在系统中已安装的rpm包信息。当数据文件损坏时,将导致不能使用rpm命令或yum命令来查询、安装、升级、删除rpm类软件包。解决该故障一般只需要执行"rpm --rebuilddb"命令,重建数据库即可。 Ps:本系统httpd包已经安装!
eg:清除损坏的rpm数据文件,并重建数据库信息。
看图提示可以了吧! 2、缺少*.so类文件 在通过源码编译的方式安装软件包时,程序的可执行文件、函数库、配置文件等一般会默认安装到"/usr/local'目录下的相应位置(前提是你的程序安装在"/usr/local"下喔,比如:/usr/local/mysql/bin、/usr/local/mysql/lib等),以便与系统程序的相关目录区别开来。 *.so文件就如同Windows系统中的.dll文件一样,是库文件。一个程序的正常安装和运行需要特定库文件的支持。由于类似于"/usr/local/mysql/lib"的目录并不包括在Linux系统的默认库文件路径下,当安装其他软件包时,如果需要用到这些目录中的动态链接库文件,将会无法找到,从而出现缺少".so"文件的错误信息。 本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/ 在RHEL5系统中,配置文件“/etc/ld.so.conf”记录了动态链接库的默认搜索路径。当需要添加新的库文件搜索路径时,则必须在该文件中进行相应修改,修改完毕后执行"ldconfig"命令,重新读取新的配置信息。 eg:将"/usr/local/mysql/lib/mysql'目录添加到系统的库文件搜索路径中。 vi /etc/ld.so.conf //在文件末尾添加一行记录 /usr/local/mysql/lib/mysql ldconfig 当安装新的应用程序时,如果提示缺少".so"文件,应首先使用find命令查找系统中是否存在对应的文件,若不存在则表示提供该链接库的依赖软件并没有安装,需要先获取相应的软件包并安装才行。若在系统中已经存在对应的".so"文件,则可以通过上述修改ld.so.conf文件的方法解决库文件搜索的问题。 3、修复文件系统 Linux主机经常因为非正常关机、突然断电、设备数据读写异常等原因导致文件系统的破坏。比较常见的是超级块(super-block)损坏,超级块是文件系统的核心"档案",它记录了该文件系统的类型、大小、空闲磁盘块等信息。当文件系统的超级块数据损坏时,Linux将无法识别该文件系统,也就无法挂载使用。 当通过"/etc/fstab"配置文件自动加载的文件系统出现错误时,Linux系统开机后一般会自动进行检测,并提示用户需要进行文件系统的修复操作,例如:当"/dev/sdb1"分区的超级块出现错误时,启动后系统将提示"Give root password for maintenance" 这时只需要输入root用户的密码,即可进入到一个临时的Shell环境,在这里用户可以对出现错误的文件系统进行修复。修复一般的文件系统错误可以使用fsck命令,结合"-t"选项指定文件系统类型,结合“-y”选择对发现的问题自动回答“yes”。需要注意的是,如果该文件系统遭受破坏的情况很严重,则修复完毕后可能仍然会丢失一些数据,因此请慎重决定是否进行修复。 eg:使用fsck命令修复位于"/dev/sdb1"分区中的ext3文件系统。 fsck -yt ext3 /dev/sdb1 exit //退出临时Shell环境后将自动重启。 (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



