查看“Centos7 升级 Glibc-2.28”的源代码
←
Centos7 升级 Glibc-2.28
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==安装 glibc-2.28== # 下载并解压 glibc-2.28 $ wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz $ tar -xzvf glibc-2.28.tar.gz $ cd glibc-2.28 # 创建临时文件 $ mkdir build && cd build $ ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin # 这一步时, 发生了错误, 提示大致为 These critical programs are missing or too old: make compiler ==升级gcc与make== 安装GLIBC所需的依赖 可以在 glibc 目录下的INSTALL中找到, 该版本需要 GCC 4.9 以上 及 make 4.0 以上 ===升级gcc=== 1、wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.0/gcc-4.9.0.tar.bz2 2、下载好之后,解压文件:tar -jxvf gcc-4.9.0.tar.bz2 3、解压完成,进入文件目录:cd gcc-4.9.0 4、利用源码包里自带的工具下载所需要的依赖项:./contrib/download_prerequisites //注意路径 5、创建编译输出目录(自定):mkdir build 6、进入输出目录:cd build; 7、生成Makefile:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib 8、编译:make -j4 //选项 -j4 是多核编译 9、编译完成后,安装:make install 10、检查一下是否安装成功:gcc -v //查看gcc版本 ====问题1:内存不足==== 1.查看系统是否已经设置了swap交换文件(交换分区) swapon -s 如果什么也没有就退出了,表面没有设置任何交换文件(分区)。 2.查看内存大小 free -m 看到内存大小,来确定交换文件的大小,建议值是内存的2-4倍。当然这只是建议值,你可以根据情况来选择。 3.查看磁盘大小 df -h 看看磁盘容量,来确定到底设置多大的交换文件比较好。 4.创建交换文件 dd if=/dev/zero of=/swapfile bs=4096 count=512k 5.设置文件的权限 6.设置交换文件,将swapfile指定为交换文件 mkswap /swapfile 7.启动交换文件 swapon /swapfile 8.查看交换文件设置情况 swapon -s 9.再使用free确认一遍 free 10.如果不再需要了,可以关闭 swapoff /swapfile ===升级 make=== $ wget https://ftp.gnu.org/gnu/make/make-4.3.tar.gz $ tar -xzvf make-4.3.tar.gz $ cd make-4.3/ # 安装到指定目录 $ ./configure --prefix=/usr/local/make $ make $ make install # 创建软链接 $ cd /usr/bin/ $ mv make make.bak # backup $ ln -sv /usr/local/make/bin/make /usr/bin/make ==继续编译 glibc== # 进入之前的 `~/glibc-2.28/build`目录下 $ cd /root/glibc-2.28/build $ ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin $ make $ make install # 查询 $ strings /lib64/libc.so.6 | grep GLIBC ... GLIBC_2.22 GLIBC_2.23 GLIBC_2.24 GLIBC_2.25 GLIBC_2.26 GLIBC_2.27 GLIBC_2.28 GLIBC_PRIVATE ... ====问题2:/usr/bin/ld: cannot find -lnss_test2==== #add $name ne “nss_test2” vim glibc-2.28/scripts/test-installation.pl next if ($build_mathvec == 0 && $name eq "mvec"); if ($name ne "nss_ldap" && $name ne "db1" && $name ne "thread_db" && $name ne "nss_test1" && $name ne "nss_test2" && $name ne "libgcc_s") { ====问题3:undefined reference to ‘_nsl_default_nss@GLIBC_PRIVATE’==== #add --enable-obsolete-nsl ../configure --prefix=/root/glibc_build --with-headers=/usr/include --with-binutils=/usr/bin --enable-obsolete-nsl
返回至“
Centos7 升级 Glibc-2.28
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息