Redhat AS 4 成功升级最新Gcc

好不容易拿到批机器部署Hadoop1.0.1,却发现datanode的tasktracker死活启动不了,java还报了个fatal error,,真莫名其妙。 这里再次佩服google的强大,x度真的啥都找不到。 tasktracker启动失败,最终找到原因: hdfs的部分c底层,是针对gcc4.1构建,而RedHat AS 4系统中,最新的gcc是3.4。 那就动手升级gcc了。但这是个挺苦力的工作,gcc依赖挺多其他包,而且要重新编译。这里先列出gcc4.7依赖的一些包: 1. glibc-devel 在编译gcc过程中,报错,说: /usr/bin/ld: crti.o: No such file: No such file or directory 其实系统中存在这个文件,解决办法是,找到crti.o所属的包: 1)找到crti.o所在: locate crti.o /usr/lib64/crit.o 2)获得该文件所在包: rpm -qf /usr/lib64/crit.o glibc-devel-2.3.4-2.36 3)安装对应包: yum install glibc-devel-2.3.4-2.36 2. 安装xz 解压后,放在/home/hadoop/xz-5.0.3下 ./configure –prefix=/home/hadoop/local make make install 跟着修改 ~/.bashrc:

其中的/usr/newgcc是最后gcc安装的位置,这一次性的先添加到.bashrc。 之后,让设置生效:source ~/.bashrc 测试是否已经正确安装:输入:xz 则会有相关提示。 3. 下载mpc、mpfr、gmp 1)mpfr 2)mpc 3)gmp 一般的操作时,分别编译这三个库,之后再编译gcc,但发现gcc官网有个偷懒的方法,就是把这些库解压后,分别改名为:gmp、mpc、mpfr后,mv到gcc源目录下,那么gcc在编译过程中,就会一同编译这3个库,原文:

4. 之后可以编译安装gcc了 1)./configure –prefix=/usr/newgcc –enable-shared –enable-threads=posix –enable-checking –with-zlib=/home/hadoop/local/bin –enable-__cxa_atexit –disable-libunwind-exceptions –enable-java-awt=gtk –build=x86_64-redhat-linux –enable-languages=c,c++ 这里的build参数,而非host参数,若是host则会报错,原因不明。 2)make 3)make install 之后输入:gcc -v

说明已经安装成功。 PS:为了不同登录用户都能使用gcc,则需要修改对应用户home下的.bashrc 附上另外一位仁兄的文章,对本人帮助很大:

享受每一刻的感觉,欣赏每一处的风景,这就是人生。

Redhat AS 4 成功升级最新Gcc

相关文章:

你感兴趣的文章:

标签云: