redhat5.5 安装 glibc2.18 步骤及问题小结
来源:互联网 发布:怎么能开淘宝店铺 编辑:程序博客网 时间:2024/06/07 00:07
安装前准备
- 下载需要的glibc版本(http://ftp.gnu.org/gnu/glibc/)
- 解压下载的文件,同时在该文件的目录下建立一个build目录
安装步骤
进入到之前建立的build目录下
../glibc_2.xxx/configure --prefix=/usr --with-headers=/usr/includemakemake install
本人安装环境介绍
- redhat5.5 内核版本2.6.18
- glibc版本为2.18
问题小结
1. configure 时的错误
1. as 和 ld 版本太低
These critical programs are missing or too old: as ld
原因:as 与 ld 版本太低。
解决方案:as 与 ld都在binutils 库当中,所以下载软件包更新该库即可。
2. linux-kernel-header too old
configure: error: GNU libc requires kernel header files from Linux 2.6.19 or later to be installed before configuring.The kernel header files are found usually in /usr/include/asm and /usr/include/linux; make sure these directories use files from Linux 2.6.19 or later. This check uses <linux/version.h>, so make sure that file was built correctly when installing the kernel header files. To use kernel headers not from /usr/include/linux, use theconfigure option --with-headers.
原因:linux内核版本太低,要求的至少为2.6.19而本人环境为2.6.18,,通过错误的提示可以知道是查看了<\linux/version.h>这个文件中的数据确认该问题。
解决方法:提供一个简单粗暴的办法,骗过编译器即可,就是修改LINUX_VERSION_CODE 为最小版本号对应的值即可((2*2^(16)+6*2^(8)+19) = 132627)。
#define LINUX_VERSION_CODE 132627#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
2. make 时的错误
1. linux/limits.h不存在
fatal error: linux/limits.h: No such file or directory
原因: 就是在/usr/include/linux不存在该文件。是由于没有安装linux-libc-dev.这个博客写的很清楚:
http://blog.csdn.net/u014655590/article/details/38854555
解决方案:安装linux-libc-dev,我是通过去网上下载的.deb文件,通过alien转换为.rpm安装的。
2. maxhostnamelen 未定义
原因: MAXHOSTNAMELEN正常情况下是在 /usr/include/netdb.h 中定义的,但是在我的虚拟机上是没有定义的。但是不知道是不是之前修改了内核版本好的原因,其实2.6.18版本其实是没有定义,所以需要至少2.6.19。
解决方案:修改报错.c文件,在该文件中定义MAXHOSTNAMELEN,在网上百度,一般该值为256。
#define MAXHOSTNAMELEN 256
3. 一些弯路分享
在更新之前百度了如何操作,其中有添加–with-headers = /usr/include/linux。
如果这样添加,后续会出现很多头文件找不到的问题,例如<\linux/errno.h>等,可是该文件时存在的,然后继续百度就会出现有人修改为<\errno.h>就能解决。但是后续会出现一连串的类似的问题。
原因 :其实找不到的头文件就在/usr/include/linux目录下,但是由于开始定义查找的目录就是该目录,之后出现<\linux/errno.h>就会在该目录下的linux目录下查找,明显不存在这样的目录,所以报错。
针对configure中出现的第一个问题,网上也有说可以通过修改configure文件欺骗编译器。(在configure文件中搜索“$AS –version”,然后修改匹配的版本,具体可以百度一下)。
在我的环境中是不能成功的,后续会出现很多关于变量未定义的错误。可能是由于版本问题,定义出现问题。
- redhat5.5 安装 glibc2.18 步骤及问题小结
- RedHat5.5 安装Postgresql步骤
- Redhat5中glibc2.5升级到glibc2.9
- redhat5安装hg步骤
- redhat5上 安装oracle10g 步骤
- centos 6.5 安装mysql-5.7.18-linux-glibc2.5-x86_64
- Redhat5 中文包安装及输入法
- RedHat5.5安装Oracle10g
- Redhat5.4 安装序列号及版本说明
- redhat5.5 上安装svnserve
- U盘安装Redhat5.5
- redhat5.5 下安装tomcat
- VMware安装RedHat5.5注意事项
- vm6.5,redhat5安装oracle11gR2
- redhat5.5 安装 nginx1.9.2
- CentOS6.5下安装mysql-5.7.18-linux-glibc2.5-x86_64
- linux下安装mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
- 在X64 RedHat5 或者 RedHat4 下编译安装PHP出现的各种问题及解决
- swift——复合类型——函数——函数类型
- 数据挖掘十大算法
- C++ 函数
- 动态代理源码解析之JDK
- Java8 实战学习 — Lambda 表达式
- redhat5.5 安装 glibc2.18 步骤及问题小结
- js中substring()与substr()方法的区别
- Hibernate(五):Hibernate映射——一对一单向关联映射
- 欢迎使用CSDN-markdown编辑器
- 仿照JAVA vector模型写一个SuperArray
- 1115: 数字统计
- C++作业6
- Mysql create table failure: ERROR 1005 (HY000): Can't create table 'lams.attendance1' (errno: 121)
- Generate Parentheses