Linux软件包循环依赖解决 彻底删除i386架构 更新软件源

0.问题

之前为了wine和intel核显驱动加了32位的库,现在每次apt upgrade更新都被循环依赖弄得不堪其扰,apt --fix-broken install解决缺失都循环报错寸步难行,忍无可忍、

而且一看全是i386的依赖,这32位我不用也罢!全给我死!!!

(写博客的时候已经解决了,bash里日志已经被刷没,所以图是网上找的一张一样情况的,意会一下)

 

1.解决循环依赖 

 使用dpkg --purge --force-all 命令删除所有冲突软件包

        比如我显示libegl1-mesa-dev冲突,那就按照提示把出问题的包干了(你清楚并确认你到底在干什么要干什么的前提下)循环多次,直到最后没有一个报错

dpkg --purge --force-all <软件包>

2.0 删除i386架构先行踩坑(可跳过)

尝试直接删除 i386架构,报错

dpkg --remove-architecture i386

    dpkg: 错误: 无法移除体系结构 i386 ,当前它仍被数据库使用。

匹配386包删除,报错无法删除基础软件包

apt-get remove --purge `dpkg --get-selections | awk '/i386/{print $1}'`


【警告】:下列基础软件包将被卸载。
请勿尝试,除非您确实知道您在做什么!
  libgcc-s1:i386 gcc-14-base:i386 (是由于 libgcc-s1:i386) libc6:i386 (是由于 libgcc-s1:i386)
升级了 0 个软件包,新安装了 0 个软件包,要卸载 254 个软件包,有 29 个软件包未被升级。
有 10 个软件包没有被完全安装或卸载。
解压缩后将会空出 1,350 MB 的空间。
E: 不允许移除系统必需的关键软件包。这么做可能损坏系统。

​​​​​​​

2.1 删除i386架构

既然系统打死不让删除三个基础软件包,那就修改awk,排除匹配这三个基础软件包

(你的冲突基础包可能不一样,所以下面会解释命令的作用,方便你按照自己需求修改

apt-get remove --purge `dpkg --get-selections | awk '/i386/{print $1}' | awk '!/libgcc-s1/{print $1}' | awk '!/libc6/{print $1}' | awk '!/gcc-14-base/{print $1}'`

# 先查询dpkg包, | 管道符号交给awk筛选
# awk '/i386/{print $1}' 筛选包含i386, | 管道符号再次交给下一级awk筛选
# awk '!/gcc-14-base/{print $1}' 筛选不包含gcc-14-base

# 由于dpkg查询与筛选都写在 `  ` 命令执行区域内,所以刷选出的软件包最后交给最前的 apt-get remove --purge 做删除

删除普通i386包后 使用dpkg强力删除剩余的三个基础软件包

dpkg --get-selections | awk '/i386/{print $1}' #查找还有哪些386包

dpkg --purge --force-all libgcc-s1:i386
dpkg --purge --force-all gcc-14-base:i386
dpkg --purge --force-all libc6:i386

现在就可以删除386了

dpkg --remove-architecture i386

3. 更改软件源

更改软件源文件配置添加阿里云源

讨厌的循环依赖和i386都让他爪巴了,顺便更新一下软件源,因为我发现很多包都不太齐拉不了

原先软件源存在/etc/apt/sources.list,Ubuntu新版本现已更换新路径为/etc/apt/sources.list.d/ubuntu.sources

vim /etc/apt/sources.list.d/ubuntu.sources

    替换 http://archive.ubuntu.com/   →   https://mirrors.aliyun.com/

(这里我直接复制了第一段到第三段,修改了URL) 

进行软件更新

apt autoremove
#删除不用包

apt update
apt upgrade
#更新源 更新软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值