返回顶部
首页 > 资讯 > 操作系统 >Linux中如何实现软件包类故障排错
  • 909
分享到

Linux中如何实现软件包类故障排错

2023-06-12 21:06:22 909人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关linux中如何实现软件包类故障排错,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。软件包类故障在Linux系统中比较常见,例如:需要编译源码包程序时系统中没有安装GCc编译工具

这篇文章将为大家详细讲解有关linux中如何实现软件包类故障排错,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

软件包类故障在Linux系统中比较常见,例如:需要编译源码包程序时系统中没有安装GCc编译工具,安装RPM软件包时有未解决的依赖关系,程序库文件或头文件的安装路径不正确等,软件包类故障产生的原因非常多,通常只需要根据相应的错误提示信息,确认安装好编译环境,找到所需要的依赖软件包,纠正库文件或对应的头文件路径即可。

下面主要介绍rpm数据库损坏和找不到“.so”文件的故障解决方法。

1、rpm数据库损坏

rpm数据库损坏的故障并不多见,出现该故障的原因一般是由于经常强制关机,误删除运行中的文件,强制替换一些rpm包文件等。rpm数据库损坏后,在使用rpm工具查询或安装软件时,将无法正常运行。

eg:模拟rpm数据库损坏故障,并验证错误信息。

RPM作为Linux系统中的软件包管理机制,维护着一份独立的文件数据库,用于存储在系统中已安装的rpm包信息。当数据文件损坏时,将导致不能使用rpm命令或yum命令来查询、安装、升级、删除rpm类软件包。解决该故障一般只需要执行"rpm --rebuilddb"命令,重建数据库即可。     

Ps:本系统Httpd包已经安装!

Linux中如何实现软件包类故障排错

eg:清除损坏的rpm数据文件,并重建数据库信息。

Linux中如何实现软件包类故障排错

看图提示可以了吧!

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节点),将可能出现这种情况;虽然该分区中仍然有大量的剩余磁盘空间,但是用户却无法再 建立新的文件。

1、模拟i节点耗尽故障

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

Linux中如何实现软件包类故障排错

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

Linux中如何实现软件包类故障排错

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

Linux中如何实现软件包类故障排错

4、修复i节点耗尽故障

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

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

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

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

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

Linux中如何实现软件包类故障排错

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

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

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

Linux中如何实现软件包类故障排错

6、检测硬盘坏道

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

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

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

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

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

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

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

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

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

关于“Linux中如何实现软件包类故障排错”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Linux中如何实现软件包类故障排错

本文链接: https://lsjlt.com/news/262788.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux中如何实现软件包类故障排错
    这篇文章将为大家详细讲解有关Linux中如何实现软件包类故障排错,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。软件包类故障在Linux系统中比较常见,例如:需要编译源码包程序时系统中没有安装gcc编译工具...
    99+
    2023-06-12
  • 如何进行软件防火墙故障的发现与排除
    如何进行软件防火墙故障的发现与排除,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。以下的文章主要向大家讲述的是软件防火墙故障发现和排除的实际操作方案,Windows XP SP2...
    99+
    2023-06-17
  • kubernetes如何实现Service中的故障排查
    这篇文章主要为大家展示了“kubernetes如何实现Service中的故障排查”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“kubernetes如何实现Service中的故障排查”这篇文章吧。...
    99+
    2023-06-04
  • 如何实现在Linux中将应用程序打包为Snap软件包格式
    这篇文章主要讲解了“如何实现在Linux中将应用程序打包为Snap软件包格式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现在Linux中将应用程序打包为Snap软件包格式”吧!在 L...
    99+
    2023-06-12
  • linux如何升级列表中的软件包
    ...
    99+
    2024-04-02
  • Linux中如何安装和卸载rpm软件包
    这篇文章主要介绍Linux中如何安装和卸载rpm软件包,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux上安装和卸载rpm软件包的方法如下所示:1.如何安装rpm软件包rmp软件包的安装可以使用程序rpm来完成...
    99+
    2023-06-09
  • linux如何在rpm仓库中搜寻软件包
    ...
    99+
    2024-04-02
  • Linux中如何进行NFS服务器故障排除
    今天就跟大家聊聊有关Linux中如何进行NFS服务器故障排除,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Red Hat Enterprise Linux 5.0服务器中,如果NF...
    99+
    2023-06-17
  • 如何实现linux系统软件安装
    小编今天带大家了解如何实现linux系统软件安装,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“如何实现linux系统软件安装”的知识...
    99+
    2023-06-28
  • Linux中如何列出系统中安装的软件包
    在Linux中,可以使用以下命令来列出系统中安装的软件包: 使用dpkg命令列出Debian或Ubuntu系统中安装的软件包: ...
    99+
    2024-03-13
    Linux
  • CentOS系统上如何实现软件包管理
    这篇文章主要介绍了CentOS系统上如何实现软件包管理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   &n...
    99+
    2024-04-02
  • Java如何实现将类文件打包为jar包
    目录将类文件打包为jar包1.写类文件2.编译3.测试4.打jar包jar包应该怎么打?1.首先确保你的项目2.选中你的项目,点右键3.选择runnable jar file4.如下...
    99+
    2024-04-02
  • Linux中如何检查是否安装过某软件包
    小编给大家分享一下Linux中如何检查是否安装过某软件包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux系统的安装软件方式非常多,所以到现在还没有一个通用...
    99+
    2023-06-12
  • linux如何从下载的软件包中清理缓存
    ...
    99+
    2024-04-02
  • Linux下如何实现网络故障诊断
    这篇文章将为大家详细讲解有关Linux下如何实现网络故障诊断,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。网卡故障可以分为硬件故障和软件故障,判断硬件故障最简单的方法是把该网卡插到其它计算机上使用,如果还...
    99+
    2023-06-12
  • 在Linux中如何轻松删除源安装的软件包
    第1步:安装Stow 在这个例子中,我们使用的是CentOS,因此我们需要扩展的EPEL库。您可以使用以下命令安装它们: yum install epel-release 然后,下面这段命令: yum install s...
    99+
    2022-06-04
    linux 删除源安装的软件包 linux 删除软件包
  • Linux中如何查看Deb和RPM软件包更新日志
    这篇文章将为大家详细讲解有关Linux中如何查看Deb和RPM软件包更新日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当一个程序或库打包成Deb或RPM软件包后会有一些元数据文件包含在其中,其中之一就...
    99+
    2023-06-28
  • Python如何实现在PyPI上发布自定义软件包
    本篇内容介绍了“Python如何实现在PyPI上发布自定义软件包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 引言在Python中我们...
    99+
    2023-07-02
  • Python如何实现简易信息分类存储软件
    Python如何实现简易信息分类存储软件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。时间紧任务重,女神提出的要求有模棱两可,只能自己考虑各种情况,除了用python还有谁...
    99+
    2023-06-22
  • linux中如何使用yum命令查看已安装的软件包
    这篇文章主要为大家展示了“linux中如何使用yum命令查看已安装的软件包”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中如何使用yum命令查看已安装的软件包”这篇文章吧。yum是一个...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作