单纯的编译如何破坏了系统?

单纯的编译如何破坏了系统?

我只是想编译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。

相关内容