关于Linux系统中Python核心包的重要性和恢复误卸载软件的方法

(首发地址:学习日记 https://www.learndiary.com/2024/04/dont-remove-system-python/)

大家好,我是来自淘宝网“学习日记小店”的 learndiary,专注于提供 Linux 相关的技术服务。昨日,一位使用 Ubuntu 20.04 的客户遇到了由于 Python 版本问题引发的系统故障。他在处理 Conda 环境中 Python 版本冲突时错误地认为问题与系统自带的 Python 有关,进而尝试卸载系统级别的 Python。然而,在卸载过程中,尽管他卸载中途中断了操作,仍然导致系统在重启后无法登录图形桌面。本文基于“通义千问”归纳视频字幕生成文本修改。视频演示:【关于Linux系统中Python核心包的重要性和恢复误卸载软件的方法】 https://www.bilibili.com/video/BV1wJ4m1L7ZC/

关于Linux系统中Python核心包的重要性和恢复误卸载软件的方法

这种情况并非罕见,事实上,我之前也遇到过几起因卸载系统 Python 而引起的诸多问题。在这里,我要特别提醒Linux初学者们:Linux 系统自带的 Python 千万不要卸载,因为它扮演着极其关键的角色,作为众多系统软件和服务的核心依赖包。

这位客户在卸载系统 Python 时,连带着移除了数百个依赖 Python 运行的软件包,其中包括 Nvidia 驱动、ROS(Robot Operating System)软件以及部分图形桌面组件。面对这种状况,解决办法相对直接但也需要细心操作——重新安装所有因误操作而被卸载的软件包,以及恢复系统默认的 Python 版本。

为了精准还原卸载的软件列表,我们需要查看系统安装软件包的日志,从中提取出纯净的软件包名。日志文件中可能会包含括号、逗号等特殊字符,因此,我们可以使用sed命令来清理这些额外内容。例如,把包管理日志文件 /var/log/apt/history.log 中需要的软件包列表复制到文件 history_part.log 中,通过执行命令 cat history_part.log | sed 's/\ ([^)]\+)//g;s/,//g' ,可以从历史日志中提取出不含括号和逗号的干净软件包列表。

之后,只需在得到的软件包列表前添加命令 sudo apt install,即可批量重新安装所有被错误卸载的软件包以及系统 Python 本身,从而修复问题。

总结经验教训,不论何时何地,都切勿卸载 Linux 系统中的 Python 核心包。对于不确定是否应当卸载的软件包,在基于Debian的系统如Ubuntu中,可以使用 sudo apt remove [软件包名] -s 命令进行模拟卸载,以便预览该操作可能导致的连锁卸载效果。比如,运行 sudo apt remove python3 -s 将会展示如果不加限制地卸载python3会导致哪些相关软件包一同被卸载。

最后,不同 Linux 系统中依赖 Python 的软件包虽然不尽相同,但基本原则是一致的:保护系统 Python 包不受影响至关重要。希望大家能从这次案例中吸取教训,谨慎对待系统核心组件的管理操作。感谢大家的关注,今天的分享就到这里,期待我们在下一次的学习交流中再见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于UML的系统分析与设计

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。 毕业设计是实现本科教学培…

Php_Code_challenge16

题目: 答案: 解析: 所以科学计数法绕过即可。

爬虫 知识点2

article_url url_tag[href]article_response requests.get(article_url, headersheaders)article_soup BeautifulSoup(article_response.content, "html.parser")print(index)(1)article_url url_tag[‘href’] 这行代码从一个名为url_tag…

Go 源码之切片 Slice

目录 Go 源码之切片 Slice一、总结二、源码(一)数据结构(二)创建Slice(三)append-扩容-growslice(四)切片深拷贝 Go 源码之切片 Slice go源码之Slice - Jxy 博客 一、总结 slice是…

python pip使用国内镜像

让PIP源使用国内镜像,提升下载速度和安装成功率。 对于Python开发用户来讲,PIP安装软件包是家常便饭。但国外的源下载速度实在太慢,浪费时间。而且经常出现下载后安装出错问题。所以把PIP安装源替换成国内镜像,可以大幅提升下载速…

Division(UVA 725)

网址如下: Division - UVA 725 - Virtual Judge (vjudge.net) (第三方网站) 考完CSP认证之后动力就有点不足,之后还有一个蓝桥杯,虽然说考的还行,混了个370,但是昨天一天都不怎么想敲代码 昨…

macOS Sonoma 14.4 23E214 VMware系统包下载地址,简单便捷,导入即可用!

这回分享的是VMware虚拟机macOS 14.4版本的系统包,这种系统包是已经在VMware虚拟机中安装好了的macOS系统。省去了繁琐的安装步骤与稍微漫长的等待时间。此次更新的包为诗林工作室制作的最新一个VMware系统包版本。分享给那些想快速体验macOS 14版本的朋友。 使用方…

C++ AVL树(旋转)

我们之前学习了搜索二叉树,我们知道普通的搜索二叉树会有特殊情况出现使得二叉树的两枝极其不平衡形成我们通俗说的歪脖子树: 这样的树一定会使得我们的增删查的效率变低;为了避免这种极端的情况出现,在1962年有两位伟大的俄罗斯数…

Unix消息队列实例

我们创建三个文件&#xff0c;一个recieve.c和pa.c,pb.c 。用recieve.c来监听pa.c和pb.c发送的消息&#xff1a; recieve.c代码&#xff1a; #include<t_stdio.h>#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #include <str…

数据库理论

什么是表空间 表空间是数据库的逻辑划分&#xff0c;一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表&#xff0c; 所以称作表空间。Oracle数据库中至少存在一个表空间&#xff0c;即SYSTEM的表空间。表空间不足怎么办 先查看Oracle数…

计算机断层扫描采集软件

计算机断层扫描采集软件&#xff0c;通过x采集2D和3D投影&#xff0c;利用投影可以进行体积的重建&#xff0c;软件还集成了CNC和x射线球管控制功能&#xff0c; 用PDM进程数据管理器对数据和进程进行管理&#xff0c;并对外提供与数据通信的接口 PDM通信基于AMQP&#xff0c…

Apple Vision Pro 的组成结构

Apple Vision Pro的组成结构相当复杂且精密,下面我将为您详细介绍其主要组成部分: 3D层压抛光玻璃面板与铝合金框架:Vision Pro的正面设计独特,类似于一副滑雪镜。它采用一块弧形的3D层压抛光玻璃面板,与定制的铝合金框架紧密结合。这个框架在用户的脸周围轻轻弯曲,以更好…

EasyExcel 复杂表头的导出(动态表头和静态表头)

问题&#xff1a;如图&#xff0c;1部分的表头是动态的根据日期变化&#xff0c;2部分是数据库对应的字段&#xff0c;静态不变的&#xff1b; 解决方案&#xff1a;如果不看1的部分&#xff0c;2部分内容可以根据实体类注解的方式导出&#xff0c;那么我们是不是可以先将动态表…

Centos7 安装 Oracle19c

下载oracle预安装包 wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm 下载19c安装包 https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c 选择…

Oracle 数据库工作中常用知识点:sql语法与常用函数

.to_date()函数 to_date函数是Oracle特有的函数&#xff0c;该函数用来做日期转换。 举例&#xff1a; SELECT TO_DATE(‘2006-05-01 19:25:34’, ‘YYYY-MM-DD HH24:MI:SS’) FROM DUAL   日期格式&#xff1a;     YYYY、YYY、YY 分别代表4位、3位、2位的数字年    …

RESTfull接口访问Elasticsearch

【数据库的健康值】 curl -X GET "ip:9200/_cat/health" 【查看所有索引】 curl -X GET "ip:9200/_cat/indices?v" 【查看索引index_name】 curl -X GET "ip:9200/索引?pretty" 【创建索引/文档】 PUT "ip:9200/索引/文档id" {请…

Java中的原型模式

Java中的原型模式是一种创建型设计模式&#xff0c;它通过复制已有对象来创建新的对象&#xff0c;而不是每次都创建一个新的实例。这个模式适用于那些创建新对象的成本较大或者需要保持对象属性一致性的场景。在Java中&#xff0c;通常通过实现Cloneable接口并重写Object类中的…

计算机网络-HTTP相关知识-HTTPS基础

HTTP与HTTPS的区别&#xff1a; HTTPS在TCP和HTTP网络层之间加入了SSL/TLS安全协议层。这个安全协议层可以对数据进行加密&#xff0c;确保数据在传输过程中的安全。HTTPS在TCP三次握手之后&#xff0c;还需进行SSL/TLS的握手过程。这个握手过程主要是为了在客户端和服务器之间…

超声波清洗机是干什么用的?2024年有用的超声波清洗机推荐

随着科技的不断进步&#xff0c;超声波清洗机已经成为了家庭和专业场所不可或缺的高效清洁工具。它利用超声波波动产生的微小气泡来清洁物品表面及细缝中的污渍&#xff0c;实现深层次的清洁效果。特别是对于眼镜这样的精密物品&#xff0c;定期进行深度清洁不仅能够确保视觉的…

【算法刷题day10】Leetcode:232.用栈实现队列、225. 用队列实现栈

文章目录 Leetcode 232.用栈实现队列解题思路代码总结 Leetcode 225. 用队列实现栈解题思路代码总结 stack、queue和deque对比 草稿图网站 java的Deque Leetcode 232.用栈实现队列 题目&#xff1a;232.用栈实现队列 解析&#xff1a;代码随想录解析 解题思路 一个栈负责进&a…