问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux下软件包类故障排错方案详解

发布网友 发布时间:2023-09-18 20:49

我来回答

1个回答

热心网友 时间:2024-10-02 15:56

软件包类故障在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文件的错误信息。

在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环境后将自动重启。

4、磁盘资料耗尽故障

显而易见,当一个文件系统的磁盘空间被耗尽以后,将无法继续在该分区创建新的文件数据,从而导致故障的出现,例如:当根分区/中的磁盘空间耗尽以后,将可能导致部分程序乃至整个系统无法正常启动或进行,因为一些临时的运行文件将无法建立。

当根分区磁盘空间不足无法启动进入Linux系统时,可以通过RHEL5的光盘进入急救模式,转移或清除掉根分区占用大量空间的文件。过程不再描述。

除此以外,当ext3文件系统中,i节点作为文件的索引节点,决定了该磁盘中文件数据的存储位置。当一个文件系统被创建以后,其i节点数就已经固定下来了,从而在该文件系统中能够使用的文件数量也就固定下来了。如果用户在该分区中创建了巨量的细小文件(耗尽i节点),将可能出现这种情况;虽然该分区中仍然有大量的剩余磁盘空间,但是用户却无法再 建立新的文件。

4.1、模拟i节点耗尽故障

eg:1、以一个20M的ext3文件系统为例(/dev/sdb2),将其挂载到/data目录下。并使用带-i选项的df命令确认该分区的i节点的使用情况。

4.2、编写一个循环创建空文件的脚本程序,运行该脚本直至耗尽sdb2分区中的i节点。

4.3、i节点耗尽以后,再次创建新的文件时,将会出现设备上没有空间的错误信息,但是使用df命令可以查看到该分区中还有可用的剩余空间,只是i节点数已经用完。

4.4、修复i节点耗尽故障

理解i节点耗尽故障的根结以后,问题就好了点了,只要找出该分区中占用大量i节点的细小文件,并进行转移或者删除即可。

rm -rf `find /data -empty -a -type f`

5、无法卸载已挂载的设备

在Linux系统中,通过umount命令卸载光驱等设备时,有时候会出现device is busy的提示信息,而无法卸载。这表示设备正忙,很可能是由于用户或者其他程序正在使用设备的资料而造成的,系统基于保护性考虑,将禁止直接卸载该设备。

eg:当用户的当前功能路径位于光盘中的目录时,将无法卸载该光盘设备。

由于umount命令并不会告知是那个用户、程序正在使用该设备中的资源,因此在当前登录的用户数量较多、进程结构复杂的情况下会很难定位正在使用该目录的进程。使用fuser命令可以帮助解决这个问题

fuser命令用户找出正在使用某个设备或文件/目录的用户、程序等相关信息。通过-m选项可以指定相应的文件或目录,-v选项可以显示详细信息。如果使用-k选项,还可以强制关闭正在使用该文件或目录的进程(当然,也可以使用kill命令终止该进程。)

eg:查看正在使用/media目录的用户、进程等相关信息,然后关闭正在使用该目录的进程。

6、检测硬盘坏道

磁盘坏道分为逻辑坏道和物理坏道两种,前者主要由于软件操作不当造成,可以使用软件修复;而后者是物理性损坏,只能通过更改磁盘分区或扇区占用位置来进行改善,排除掉包含坏块的磁盘空间。当磁盘出现一下现象时,有可能是磁盘出现坏道,需要进行检测和修复。

:读取磁盘中的数据时,磁盘设备发出异常声响。

:访问磁盘中的某个文件时,反复读取且出错,提示文件损坏。

:对于新建立的分区无法完成格式化。

:系统使用该磁盘时频繁死机。

硬盘出现坏道后,如果不及时更换或进行技术出来,坏道就会越来越多,并可能造成频繁死机和数据丢失的后果。所有必要时应该对磁盘进行定期检测,检测是否存在坏道。

在Linux系统中,检测磁盘的坏道情况可以使用badblocks命令进行,在创建文件系统的过程中也可以结合mkfs命令的选项进行检测。使用badblocks命令时,-s选项用户显示进度信息,-v选项用于显示详情。

eg:使用mkfs命令格式化/dev/sdb2分区,并结合-c选项进程坏块检测。

eg:使用badblocks命令检测/dev/sdb2分区中是否存心坏块。

以上为常见问题;欢迎补充~~

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
dell电脑散热是按哪个键 风水中的北方与肾的关系 20分+100分 哈尔滨近期招聘会 哈尔滨信息港的基本信息 哈尔滨信息港基本信息 哈尔滨市最近的招聘信息? 黑龙江省招聘查询入口(龙招港黑龙江招生网2020招聘信息)? 小区车位如何配比 身上红点不痛不痒是怎么回事 万家乐LJSQ20-12UF1保修信息 目标管理是谁提出的 李白张旭贺知章的合称为什么 北翔发动机用于哪些车型上 和李白一起的酒中八仙都是谁 张嘉译哪年被评为国家一级演员 富贵贫贱文言文近义词 河南司考过了,网上也申请了,但是现场确认忘记了,有办法补救吗?_百度... 贫贵富贱的近义词是什么? 学日语、韩语,首先要必须把英语学好吗? 虚胖怎么办? 学韩语之前是不是必须要学英语? 就想学英语要先学26个字母,那学韩语应该先学什么呢? 进sm之前先学韩语还是英语 哮喘怎么治啊?特别是有点虚胖的老年人?有没有秘方啊? 可以一边学韩语一边学英语吗? 学韩语之前 必须要学好英语吗?? 我是学英语还是学韩语 韩语和英语我先学那个好 韩语我自学了一段时间有些基础但英语我是一点... 我在韩国必须开始学韩国语,但是英语也要开始检起来了。两种语言同时学... 梁静茹来过沈阳开个唱么??? 新版的word 行间距怎么改 物料提升机ssd100使用年限 发短信邀请参加活动需不需要说明自己是谁? 给老师发祝福短信用不用署名 林心如曾经是林志颖的女朋友,他们为什么最后选择分手? 林志颖的女友真的是陈若仪么? 林志颖的女友陈若仪的详细资料? 林志颖的女朋友 破坏性创新是企业新增长的关键路径 计划评审技术和关键路线法的区别 刚申请的,为什么第二天就被封了 你认为人出名重不重要? 请问一下昼出耘田的耘的意思是什么? 每天喝少量葡萄酒,对老年人身体有好处么 老年人为什么要多喝葡萄酒 南京,杭州,乌镇,上海,怎么一个顺序才合 从沈阳出发,到南京 杭州 乌镇 上海旅游,怎样安排这四地的顺序较为合理... 我想到上海 杭州西湖 乌镇 南京 转一下有什么建议吗?包括游玩顺序啊,哪 ... 电脑城的散片cpu靠谱吗 怎么才能找回误删的一点资讯新闻