apt-get update失败处理

本文介绍了解决Ubuntu系统中使用sudo apt-get update命令时出现的appstreamcli双释放或损坏错误的方法。通过卸载libappstream3库,可以有效解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在Ubuntu上面执行sudo apt-get update时出现如下提示:
*** Error in `appstreamcli': double free or corruption (fasttop): 0x000000000237b000 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7f3639377725]
/lib/x86_64-linux-gnu/libc.so.6(+0x7ff4a)[0x7f363937ff4a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f3639383abc]
/usr/lib/x86_64-linux-gnu/libappstream.so.3(as_component_complete+0x439)[0x7f36396fbd19]
/usr/lib/x86_64-linux-gnu/libappstream.so.3(as_data_pool_update+0x44a)[0x7f36396fcf0a]
/usr/lib/x86_64-linux-gnu/libappstream.so.3(as_cache_builder_refresh+0x1c2)[0x7f36396f2272]
appstreamcli(ascli_refresh_cache+0x12e)[0x4049de]
appstreamcli(as_client_run+0x6fb)[0x403ceb]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f3639320830]
appstreamcli(_start+0x29)[0x403519]
======= Memory map: ========
00400000-00408000 r-xp 00000000 08:01 45088818                           /usr/bin/appstreamcli
00607000-00608000 r--p 00007000 08:01 45088818                           /usr/bin/appstreamcli
00608000-00609000 rw-p 00008000 08:01 45088818                           /usr/bin/appstreamcli
0197f000-034dc000 rw-p 00000000 00:00 0                                  [heap]
7f362c000000-7f362c021000 rw-p 00000000 00:00 0

*****

7ffeed1eb000-7ffeed1ed000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted (core dumped)
正在读取软件包列表... 完成
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'
E: Sub-process returned an error code


该问题需要执行如下命令才能解决:
sudo apt-get purge libappstream3
执行完后再次执行sudo apt-get update命令就正常了。

参考网址:https://askubuntu.com/questions/943463/library-corruption-error-during-apt-get-update
### 解决 Ubuntu `apt-get update` 命令执行失败的方法 当遇到 `apt-get update` 执行失败的情况时,可以尝试多种方法来解决问题。 #### 方法一:清理 APT 缓存并重新配置软件包 有时缓存中的损坏文件可能会导致更新失败。可以通过清除APT缓存来解决这个问题[^3]: ```bash sudo apt clean sudo rm -rf /var/lib/apt/lists/* sudo mkdir -p /var/lib/apt/lists/partial/ ``` 之后再次运行 `sudo apt-get update` 来查看是否恢复正常工作。 #### 方法二:修复 dpkg 数据库错误 如果是因为 `/var/lib/dpkg/info` 文件夹下的某些脚本存在问题而引起的安装或更新失败,则可考虑重命名有问题的 `.postinst` 脚本文件以便跳过它们的执行: ```bash cd /var/lib/dpkg/info sudo mv package_name.postinst package_name.postinst.bak ``` 这里的 `package_name` 需要替换为实际引起问题的具体软件包名称。 #### 方法三:检查网络连接状况 确保当前计算机能够正常访问互联网,并且DNS解析功能完好无损。对于企业内部环境来说,还需要确认代理设置正确与否。可通过 ping 或者 curl 测试外部站点连通性: ```bash ping www.google.com curl http://archive.ubuntu.com/ubuntu ``` #### 方法四:修改源列表地址 部分情况下官方镜像站可能出现暂时性的服务中断现象,这时可以选择切换到其他更稳定的国内镜像源服务器,比如阿里云、网易等提供的Ubuntu镜像站点[^4]。编辑 `/etc/apt/sources.list` 文件并将默认源替换成新的镜像源即可。 ```bash sudo nano /etc/apt/sources.list ``` 将原有条目改为如下形式(以阿里云为例): ``` deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse ... ``` 完成更改保存退出后记得再做一次 `apt-get update` 操作验证效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值