[问题解决]apt update出现“Segmentation faultsts”问题解决

问题描述

今天要在Ubuntu20.04下安装软件包时候提示“Segmentation faultsts”导致无法继续更新,尝试发现主要就是在使用命令apt-get installapt-get update就报错,尝试了如下几种方式,全部都无效:

  • 方式1:删除所有已经下载但尚未安装的软件包
sudo apt-get clean 
  • 方式2:重新安装依赖库,这条命令结果就是又报错
sudo apt-get install -f
  • 方式3:使用strace诊断 来诊断问题,结果输出内容太多,没有头绪
sudo strace -f apt-get update >log.strace-aptget 2>&1
  • 方式4:网上说的最多的,删除缓存的bin,运行后问题依旧
sudo rm -rf /var/cache/apt/*.bin

问题解决

以上方式都不行,只能从系统日志看看有没有问题:

 dmesg | grep segfault
 
 输出内容如下:
 (base) aic@aic-System-Product-Name:/usr/lib/x86_64-linux-gnu$ dmesg | grep segfault
[   57.808496] apt-get[2179]: segfault at 7f09eda731cc ip 00007f09ef664f85 sp 00007fff4441e350 error 4 in libapt-pkg.so.6.0.0[7f09ef53a000+14a000]
[  163.003989] apt[2771]: segfault at 7f990d2d01cc ip 00007f990eec1f85 sp 00007fff01751ec0 error 4 in libapt-pkg.so.6.0.0[7f990ed97000+14a000]
[  262.289911] check-new-relea[3560]: segfault at 7f2180f631cc ip 00007f2182362f85 sp 00007fff584d78f0 error 4 in libapt-pkg.so.6.0.0[7f2182238000+14a000]
[  304.464952] apt[4176]: segfault at 7f2fb591b1cc ip 00007f2fb750cf85 sp 00007ffcd2918360 error 4 in libapt-pkg.so.6.0.0[7f2fb73e2000+14a000]

怀疑是libapt-pkg.so.6.0.0出问题了,该文件在/usr/lib/x86_64-linux-gnu下面,切进去看,

(base) aic@aic-System-Product-Name:/usr/lib/x86_64-linux-gnu$ ls -al libapt-pkg*
lrwxrwxrwx 1 root root      19 Dec  7  2020 libapt-pkg.so.6.0 -> libapt-pkg.so.6.0.0
-rw-r--r-- 1 root root 1936856 Dec  7  2020 libapt-pkg.so.6.0.0

就是个符号链接指向而已。

刚开始想得太简单,直接从别人正常的Ubuntu20.04下拷贝了一个libapt-pkg.so.6.0.0过来替换,问题依旧没有解决。于是去网上搜一下有没有安装包。

先查看一下apt版本

apt  --version

输出:
apt 2.0.09 (amd64)

于是去官网上下载deb包:https://pkgs.org/download/apt

官网上没有这个版本,只有2.02和2.10的

image-20241022162216728

刚开始下了2.0.10的,dpkg -i 安装报错,提示缺少依赖

又下载了2.0.2的,安装成功。安装后sudo apt-get clean 一下,然后update就没有问题了,但是安装软件提示apt版本太低,这个时候根据提示升级就可以了,没有再报错。

以往遇到问题先想着搜答案,结果绕了一圈都没有解决,最后还是从日志中发现蛛丝马迹,可见日志查看的重要性,毕竟每个人的电脑问题不一样,即使表现出来的错误相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值