我只是想编译glibc 版本 2.31,首先通过运行以下命令安装依赖项:
然后按照说明执行 glibc这里:
mkdir /home/machine/Desktop/glibc-build
然后将其更改为当前目录:
cd /home/machine/Desktop/glibc-build
然后从源目录执行配置:
/home/machine/Desktop/glib-xxx/./configure --prefix=/usr
其中一位用户甚至提到
glibc IS YOUR operating system
但这样做确实破坏了我的系统。首先,我丢失了典型的 Linux 终端命令,例如,ls
在重新启动系统后,我得到了:
kernel panic - not syncing: Attempted to kill init! exit code 0x00007f00
问题单纯的编译怎么会破坏我的系统?据我所知,/lib/
当我试图在 中编译 Ubuntu 时,它的 glibc 驻留在 中/usr/
,那么,不替换系统 glibc 怎么会破坏我的系统呢?另外,我的笔记本电脑没有显示完整的错误转储,因此,有没有办法在启动期间读取完整的终端输出,因为我无法再访问/var/
了?
我的系统使用的是 Ubuntu 18.04.6 LTS
答案1
第一的,编译glibc 没有破坏您的系统。 安装glibc 位于现有 glibc 之上。
在许多现代系统上,/usr/lib
和/lib
已经合并,即使不是这样,许多库也在 /usr/lib 中而不是在 /lib 中。
如果您要编译自定义 glibc,则应将其安装在类似目录/opt/myglibc/
(或主目录中的目录)中或将其定位到 chroot 环境中,而不是安装在系统目录中。将其安装在 /usr/local/ 中甚至不安全,因为除非您编辑系统 ld.so 配置以删除 /usr/local/lib,否则这也可能覆盖默认 glibc。