glibc需要怎么安装

云计算分享者 2024-02-23 03:32:31
https://sourceware.org/glibc/wiki/FAQ Gnu库不是一个简单的单独的库文件,实际上是一堆的库,包括C库,math库,threading库,DNS解析库。 安装glibc唯一正确的方式是先把这个库安装到一个临时地址,比如/tmp/glibc,使用make install DESTDIR=/tmp/glibc,然后将这个目录下面的东西复制到一个initial root disk中,然后启动这个root disk,再将东西复制到系统里面,然后pivot 到这个系统里面去。只有这个方式才是安装glibc的正确方式。 但是注意现在没有哪个发行版使用这种方式来安装。因为这些发行版都会要求安装了新版本的glibc之后重新启动系统,当然这个其实只有在你需要所有进程都使用新安装的glibc时才需要(因为老的进程总是只能使用老版本的库)。 现在的发现版都会用一个包管理器(dpkg,rpm)来将新版本的库文件解压到系统中,实际上这个操作是很危险的,因为都后面某个时候,系统中就会同时有新的库了老的库了,这个可能导致新的进程无法起来。实际上各个包管理工具也无法很好的处理这个问题。比如说rpm必须采取一些措施来保证安装glibc的时候不会有新的进程起来(使用了一个内建的lua解释器运行脚本来保证安装新版本glibc的时候rpm本身还是使用的一个一致的老版本库) 总结起来就是,最好的安装glibc的方法就是从另外一个系统拷贝文件到自己的系统,这个一般就是一个initail root disk。其次的是一个静态链接或者仔细设计的应用可以在复制这些新的文件的过程中保证不会启动新的进程(因为这些进程可能会用到不完整的,混合的,包含新旧版本的库)。第二种方式在那种有很高负载的系统上仍然可能有问题。 当你在系统上反复构建并测试新的core runtime的时候需要特别注意。如果你不将使用老库的进程杀掉,可能一会儿之后会发现自己的磁盘不够用了。因为就算你使用rm命令删除了这个文件,但是因为使用了这个文件的进程还存在,这些文件实际上还是没有被删除的(通过lsof看一看其状态为deleted)
0 阅读:1

云计算分享者

简介:感谢大家的关注