当前位置: 首页 > news >正文

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 i386dpkg: 错误: 无法移除体系结构 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
#更新源 更新软件

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • uniapp uni-table合并单元格
  • unity3d入门教程四
  • Nginx怎么重新编译添加模块
  • 深入理解 Milvus:新一代向量数据库的基础技术与实战指南
  • 北斗卫星系统信号介绍
  • NVM (Node Version Manager) 使用教程
  • AB 1756-L62 与 AB 5069 通过串口通信
  • 从C语言过渡到C++
  • Kubernetes精讲之网络通信与调度
  • jmeter元件+取样器(十)
  • 心觉:收钱就像喝水一样简单,是如何做到的?
  • 【MySQL】Ubuntu22.04中MySQL-V8安装和修改root密码
  • 基于sklearn的机器学习 — KNN
  • Redis单机安装
  • OAExploit一款基于OA产品的一键扫描工具
  • [LeetCode] Wiggle Sort
  • [笔记] php常见简单功能及函数
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • ES6简单总结(搭配简单的讲解和小案例)
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • javascript从右向左截取指定位数字符的3种方法
  • node-glob通配符
  • SpiderData 2019年2月25日 DApp数据排行榜
  • supervisor 永不挂掉的进程 安装以及使用
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 复杂数据处理
  • 关于 Cirru Editor 存储格式
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • # Redis 入门到精通(一)数据类型(4)
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #HarmonyOS:Web组件的使用
  • #Z0458. 树的中心2
  • #单片机(TB6600驱动42步进电机)
  • (13)Hive调优——动态分区导致的小文件问题
  • (4)Elastix图像配准:3D图像
  • (C++17) std算法之执行策略 execution
  • (ros//EnvironmentVariables)ros环境变量
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)Linux整合apache和tomcat构建Web服务器
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net的socket示例