Gnu库不是一个简单的单独的库文件,实际上是一堆的库,包括C库,math库,threading库,DNS解析库。
安装glibc唯一正确的方式是先把这个库安装到一个临时地址,比如/tmp/glibc,使用makeinstallDESTDIR=/tmp/glibc,然后将这个目录下面的东西复制到一个initialrootdisk中,然后启动这个rootdisk,再将东西复制到系统里面,然后pivot到这个系统里面去。只有这个方式才是安装glibc的正确方式。
但是注意现在没有哪个发行版使用这种方式来安装。因为这些发行版都会要求安装了新版本的glibc之后重新启动系统,当然这个其实只有在你需要所有进程都使用新安装的glibc时才需要(因为老的进程总是只能使用老版本的库)。现在的发现版都会用一个包管理器(dpkg,rpm)来将新版本的库文件解压到系统中,实际上这个操作是很危险的,因为都后面某个时候,系统中就会同时有新的库了老的库了,这个可能导致新的进程无法起来。实际上各个包管理工具也无法很好的处理这个问题。比如说rpm必须采取一些措施来保证安装glibc的时候不会有新的进程起来(使用了一个内建的lua解释器运行脚本来保证安装新版本glibc的时候rpm本身还是使用的一个一致的老版本库)
当你在系统上反复构建并测试新的coreruntime的时候需要特别注意。如果你不将使用老库的进程杀掉,可能一会儿之后会发现自己的磁盘不够用了。因为就算你使用rm命令删除了这个文件,但是因为使用了这个文件的进程还存在,这些文件实际上还是没有被删除的(通过lsof看一看其状态为deleted)





