安装更新upgrade导致ubuntu崩溃

安装更新导致ubuntu崩溃

记录一些ubuntu崩溃的过程。
目前只有一个,以后遇到都放在这里,以提醒自己。

前言

如果从10000年看现在的linux,不是说不完美,而是糟透了。

linux的版本号,本质是glibc的版本的号。可是,linux还存在许多不能动的东西!

例如kernel,例如,本文中提到的一些东西:uuid! font

所以,一个经验是,永远也不要用upgrade指令。

今天我就掉这个坑里了。因为以为只更新一个模块,结果,整个更新了。

ubuntu 可以说是版本管理最差的一个,但也是人们最喜欢的一个发行版。

所以,有必要,记一下这些我们踩过的坑。

10000年后人类,可以看看他们的前辈是生活在一个什么样的上下文中。

特别是,linux体系,为了解决版本不能对齐的问题,不是去解决问题,而是发明新的轮子来重复这一问题,最著名的,当然就是KVM的代表作:docker .

uuid编不过,导致的崩溃

正在编kernel-shark,需要qt6,

装好qt6后,cmake过程有错,但我没在意,可是链接时果然出错了。

注意,本文,只是把问题放在这,不是解决这个问题,因为我马上要重装机器了!

复制代码
ubuntu2204vm:/data/shark/kernel-shark/build$ cmake ..
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done

 project: Kernel Shark: (version: 2.3.1)

-- Found TraceEvent: /usr/local/lib64/libtraceevent.so
-- Found TraceFS: /usr/local/lib64/libtracefs.so
-- Found TraceCmd: /usr/local/lib64/libtracecmd.so
-- Found JSONC: /usr/lib/x86_64-linux-gnu/libjson-c.so
-- Found Doxygen: /usr/bin/doxygen (found version "1.9.1") found components: doxygen dot
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'glut'
--   No package 'glut' found
-- Found GLUT: /usr/lib/x86_64-linux-gnu/libglut.so
fc-list: /usr/local/lib/libuuid.so.1: no version information available (required by /lib/x86_64-linux-gnu/libfontconfig.so.1)

make

复制代码
[ 39%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsDualMarker.cpp.o
[ 40%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsWidgetsLib.cpp.o
[ 41%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsTraceGraph.cpp.o
[ 42%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsTraceViewer.cpp.o
[ 43%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsMainWindow.cpp.o
[ 43%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsPluginsGUI.cpp.o
[ 44%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsCaptureDialog.cpp.o
[ 45%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsQuickContextMenu.cpp.o
[ 46%] Building CXX object src/CMakeFiles/kshark-gui.dir/KsAdvFilteringDialog.cpp.o
[ 47%] Linking CXX shared library ../../lib/libkshark-gui.so.2.3.1
[ 47%] Built target kshark-gui
[ 48%] Building CXX object src/CMakeFiles/kernelshark.dir/kernelshark.cpp.o
[ 49%] Linking CXX executable ../../bin/kernelshark
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so.1: undefined reference to `uuid_generate_random@UUID_1.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so.1: undefined reference to `uuid_copy@UUID_1.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so.1: undefined reference to `uuid_parse@UUID_1.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so.1: undefined reference to `uuid_unparse@UUID_1.0'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/kernelshark.dir/build.make:116: ../bin/kernelshark] Error 1
make[1]: *** [CMakeFiles/Makefile2:274: src/CMakeFiles/kernelshark.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

然后,做了许多,无法解决

网上查了一下,

sudo apt-get update

sudo apt-get upgrade libfontconfig1

然后就出了严重问题。

这个upgrade几乎把整个ubuntu全面升级到2404去了。

然后,就全线崩溃了。

因为,uuid体系,全面不认之前的体系了。。。

包括硬盘相关的操作,也不能执行的,因为硬盘的guid,工具无法与kernel沟通了!

服了。

然后,我的计划,一边是重装系统,一边,还是想办法在windows下来编。

以前我在风河时,一直不懂为什么我维护的gcc,gdb,binutils这些toolchain,一定要伴随一套cygwin的版本,有一次我按发布手册删除了那部分,客户不干了。老板找我好一顿确认,虽然我是按手册来的,但客户说一直都有。

那时我才明白,为什么国外的人,为什么基本都在cygwin干活,他们是贼精啊。

这个在管理学上,也是有个说法的。就是要想信那些处于冲突焦点处的第三方。而不要信双方的信誓旦旦的誓言。

相关推荐
晋阳十二夜1 小时前
【压力测试之_Jmeter链接Oracle数据库链接】
数据库·oracle·压力测试
GDAL3 小时前
Node.js v22.5+ 官方 SQLite 模块全解析:从入门到实战
数据库·sqlite·node.js
DCTANT4 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
好奇的菜鸟5 小时前
如何在 Ubuntu 24.04 (Noble) 上使用阿里源
linux·运维·ubuntu
AI、少年郎6 小时前
Oracle 进阶语法实战:从多维分析到数据清洗的深度应用(第四课)
数据库·oracle
赤橙红的黄6 小时前
自定义线程池-实现任务0丢失的处理策略
数据库·spring
DataGear6 小时前
如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板
javascript·数据库·sql·信息可视化·数据分析·echarts·数据可视化
weixin_438335406 小时前
分布式锁实现方式:基于Redis的分布式锁实现(Spring Boot + Redis)
数据库·redis·分布式
码不停蹄的玄黓7 小时前
MySQL Undo Log 深度解析:事务回滚与MVCC的核心功臣
数据库·mysql·undo log·回滚日志
Qdgr_7 小时前
价值实证:数字化转型标杆案例深度解析
大数据·数据库·人工智能