centos 删除 glibc(centos添加用户)
大家好,感谢邀请,今天来为大家分享一下centos 删除 glibc的问题,以及和centos添加用户的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
Centos65升级glibc的详细步骤
场景需求
注意更新系统库存在一定的风险,请谨慎操作
默认的Centos6.5 glibc版本最高为2.12,而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持,因此在不升级系统的前提下,需要主动更新系统glibc库.一般遇到错误libc.so.6: version GLIBC_2.14 not found时表示需要对glibc进行升级了.
glibc版本
查看系统glibc库版本可使用如下命令:
$ strings/lib64/libc.so.6|grep GLIBC_Centos6.5输出如下glibc版本列表,从此图可以看出系统最高支持glibc的2.12版本:
另外,执行$ ll/lib64/libc**可以看到此时的libc.so.6是libc-2.12.so的别名,如下图所示:
glibc安装
首先,点击此处下载glibc点击下载,得到glibc-2.14.tar.gz使用如下命令解压glibc-2.14.tar.gz:
$ tar-xzvf glibc-2.14.tar.gz当前目录下得到目录glibc-2.14,执行$cd glibc-2.14命令进入目录,依次执行如下命令编译安装glibc-2.14:
$ mkdir build//在glibc-2.14目录下建立build文件夹$ cd build//进入build目录$../configure--prefix=/opt/glibc-2.14//配置glibc并设置当前glibc-2.14安装目录$ make&& make install//编译安装glibc-2.14库glibc软链
安装完成后,建立软链指向glibc-2.14,执行如下命令:
$ rm-rf/lib64/libc.so.6//先删除先前的libc.so.6软链$ ln-s/opt/glibc-2.14/lib/libc-2.14.so/lib64/libc.so.6注意
删除libc.so.6之后可能导致系统命令不可用的情况,可使用如下方法解决:
$ LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln-s/opt/glibc-2.14/lib/libc-2.14.so/lib64/libc.so.6如果上述更新失败可使用如下命令还原:
$ LD_PRELOAD=/lib64/libc-2.12.so ln-s/lib64/libc-2.12.so/lib64/libc.so.6// libc-2.12.so此项是系统升级前的版本此时查看系统glibc版本如下图所示:
可以看到当前glibc最高版本为2.14, libc.so.6软链指向如下图所示:
Centos更新lib库[踩坑记录]
在搭建Centos7 64位服务器环境时,遇到两个主要问题:/lib/libstdc++.so.6与ImportError:/lib64/libc.so.6,均与lib库版本不匹配有关。本文详细记录了解决过程,避免同类问题。
问题一涉及libstdc++.so.6缺少对应的GLIBCXX版本。通过命令查看,缺失内容为GLIBCXX_3.4.20。解决步骤包括下载对应版本libstdc++.so.6.0.24,并确保根据系统架构(64位或32位)正确升级库。初次尝试时,容易忽视系统架构导致升级失败。为避免64位与32位版本不匹配的问题,应使用正确的后缀(如.x86_64)进行安装。
问题二与libc.so.6版本不匹配有关。通过命令查看libc版本,确认已安装glibc_2.18,问题解决步骤包括进行编译安装。在编译过程中可能出现LD_LIBRARY_PATH相关问题,解决方法是删除该变量内容,确保编译安装顺利完成后添加。
为加速pip安装其他包,建议使用国内镜像源(如豆瓣)。
解决这两个问题后,Centos7 64位服务器搭建环境顺利完成,避免了因lib库版本不匹配导致的问题。通过记录和分享这些步骤,希望对遇到类似问题的开发者提供帮助。
Docker 基础镜像
buster现在更常见,未来 bullseye会越来越多。一般情况下,其它几个都不是我们的第一选择。
Alpine是众多 Linux发行版中的一员,和 CentOS、Ubuntu、Archlinux之类一样,只是一个发行版的名字,号称小巧安全,有自己的包管理工具 apk。
Alpine非常非常小:100M vs 5M!
官方 Alpine镜像的文档:
但是 Alpine的小是有代价的,在不轻易间可能会给你造成麻烦!
Alpine Linux除了插件了一些不必要的软件之外,特别重要的是,它使用了 musl libc代替了大名鼎鼎的 glibc。
musl libc含有和 glibc一样的标准功能,但是问题是 glibc还有标准功能之外的扩展功能,由于 glibc的历史地位和市场占有率,导致 glibc的扩展功能实际上的使用也很广泛!有不少软件的编译、安装和运行都用到了 glibc的扩展功能,因此这些软件在使用了 glibc的基础颈项上就能运行,在使用了 musl libc的 alpine上则不行。
另外,Alpine并没有像 Red Hat或 Canonical之类的大公司为其提供维护支持,软件包的数量也比这些发行版少很多(如果只看开箱即用的默认软件仓库,Alpine只有 10000个软件包,而 Ubuntu、Debian和 Fedora的软件包数量均大于 50000。)
如果实在不想折腾,可以选择一个折衷的镜像 xxx:slim。slim镜像一般都基于 Debian和 glibc,删除了许多非必需的软件包,优化了体积。如果构建过程中需要编译器,那么 slim镜像不适合,除此之外大多数情况下还是可以使用 slim作为基础镜像的。