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

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

相关推荐
建投数据28 分钟前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi1 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀1 小时前
Redis梳理
数据库·redis·缓存
独行soc1 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天2 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺2 小时前
分布式系统架构:服务容错
数据库·架构
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain4 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship4 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站4 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle