歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Redhat AS 4 成功升級最新Gcc

Redhat AS 4 成功升級最新Gcc

日期:2017/2/28 15:48:41   编辑:Linux教程

好不容易拿到批機器部署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 http://tukaani.org/xz/xz-5.0.3.tar.gz
解壓後,放在/home/hadoop/xz-5.0.3下
./configure --prefix=/home/hadoop/local
make
make install
跟著修改 ~/.bashrc:

  1. export PATH=/usr/newgcc/bin:/home/hadoop/local/bin:$PATH
  2. export LD_LIBRARY_PATH=/usr/newgcc/lib64:/home/hadoop/local/lib:$LD_LIBRARY_PATH
  3. export LD_LIBRARY_PATH=/usr/newgcc/lib:/home/hadoop/local/lib:$LD_LIBRARY_PATH

其中的/usr/newgcc是最後gcc安裝的位置,這一次性的先添加到.bashrc。
之後,讓設置生效:source ~/.bashrc
測試是否已經正確安裝:輸入:xz
則會有相關提示。


3. 下載mpc、mpfr、gmp
1)mpfr http://www.mpfr.org/
2)mpc http://www.multiprecision.org/
3)gmp http://ftp.tsukuba.wide.ad.jp/software/gmp/gmp-5.0.0.tar.bz2

一般的操作時,分別編譯這三個庫,之後再編譯gcc,但發現gcc官網有個偷懶的方法,就是把這些庫解壓後,分別改名為:gmp、mpc、mpfr後,mv到gcc源目錄下,那麼gcc在編譯過程中,就會一同編譯這3個庫,原文: http://gcc.gnu.org/install/prerequisites.html

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

  1. Using built-in specs.
  2. COLLECT_GCC=gcc
  3. COLLECT_LTO_WRAPPER=/usr/newgcc/libexec/gcc/x86_64-redhat-linux/4.7.0/lto-wrapper
  4. Target: x86_64-redhat-linux
  5. Configured with: ./configure --prefix=/usr/newgcc --enable-shared --enable-threads=posix --with-gmp=/home/hadoop/local/ --with-mpfr=/home/hadoop/local --with-mpc=/home/hadoop/local/ --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++
  6. Thread model: posix
  7. gcc version 4.7.0 (GCC)

說明已經安裝成功。

PS:為了不同登錄用戶都能使用gcc,則需要修改對應用戶home下的.bashrc

附上另外一位仁兄的文章,對本人幫助很大: http://www.linuxidc.com/Linux/2012-06/62591.htm

Copyright © Linux教程網 All Rights Reserved