安装更新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干活,他们是贼精啊。

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

相关推荐
超级土豆粉30 分钟前
从0到1写一个适用于Node.js的User Agent生成库
linux·ubuntu·node.js
秃头摸鱼侠44 分钟前
MySQL查询语句(续)
数据库·mysql
MuYiLuck1 小时前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机1 小时前
6. MySQL基本查询
数据库·mysql
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩2 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(一)
数据库·swiftui·swift
Ares-Wang2 小时前
负载均衡LB》》HAproxy
运维·数据库·负载均衡
AI.NET 极客圈2 小时前
.NET 原生驾驭 AI 新基建实战系列(四):Qdrant ── 实时高效的向量搜索利器
数据库·人工智能·.net