主要记录在应用服务器上,操作系统内核过低(低于3.1不能使用Docker)
问题1:version'GLIBC_2.7'not found ,原因GLIBC版本太低,需升级版本
GLIBC版本太低====》解决方案:升级GLIBC
问题2:*** These critical programs are missing or too old: as ld gcc
升级gcc、as、ld
升级gcc,先升级gcc的三个依赖包
- gmp: 安装包下载路径ftp://ftp.gnu.org/gnu/gmp/
- mpfr:安装包下载路径http://ftp.gnu.org/gnu/mpfr/
- mpc: 安装包下载路径 http://ftp.gnu.org/gnu/mpc/
安装过程基本相同,建立在/usr/local目录下建立单独的升级程序包文件夹,让整个升级过程很清晰
tar -jxvf gmp-5.0.5.tar.bz2
cd gmp-5.0.5
mkdir gmp-build
mkdir /usr/local/gmp-5.0.5
cd gmp-build
../configure --prefix=/usr/local/gmp-5.0.5
make & make check
make install
tar -zxvf mpfr-3.0.1.tar.gz
cd mpfr-3.0.1
mkdir mpfr-build
mkdir /usr/local/mpfr-3.0.1
cd mpfr-build
../configure --prefix=/usr/local/mpfr-3.0.1 --with-gmp=/usr/local/gmp-5.0.5
make & make check
make install
tar -zxvf mpc-1.0.1.tar.gz
cd mpc-1.0.1
mkdir mpc-build
mkdir /usr/local/mpc-1.0.1
cd mpc-build
../configure --prefix=/usr/local/mpc-1.0.1 --with-gmp=/usr/local/gmp-5.0.5 --with-mpfr=/usr/local/mpfr-3.0.1
make & make check
make install
依赖包安装完成后配置环境变量
vim ~/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-6.1.1/lib:/usr/local/mpfr-3.1.5/lib:/usr/local/mpc-1.0.3/lib
source ~/.bash_profile
编译gcc:
cd gcc-4.8.5
mkdir gcc-build
mkdir /usr/local/gcc-4.8.5
cd gcc-build
../configure --prefix=/usr/local/gcc-4.8.5 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.3
make
make install
升级gcc
cd /usr/bin
ln -sf /usr/local/gcc-4.8.5/bin/gcc /usr/bin/gcc
ln -sf gcc cc
ln -sf /usr/local/gcc-4.8.5/bin/g++ /usr/bin/g++
ln -sf /usr/local/gcc-4.8.5/bin/c++ /usr/bin/c++
cp /usr/local/gcc-4.8.5/lib64/libstdc++.so.6.0.20 /usr/lib64
ln -sf /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6
gcc --version
gcc(GCC)4.8.5
完成gcc升级
升级as、ld 这两个均在binutils里,升级binutils即可
tar -zxvf binutils-2.23.tar.gz
cd binutils-2.23
mkdir /usr/local/binutils-2.23
mkdir binutils-build
cd binutils-build
../configure --prefix=/usr/local/binutils-2.23
make && make install
备份
mv /usr/bin/ld /usr/bin/ld_back
mv /usr/bin/as /usr/bin/as_back
创建软链接
ln -s /usr/local/binutils/bin/ld /usr/bin/ld
ln -s /usr/local/binutils/bin/as /usr/bin/as
最后编译glibc
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/local/binutils-2.23.1
ldd --version
ldd(GUN libc) 2.17
更新成功,可以正常import tensorflow了
######
升级过程中,查看了好多博客在安装新的glibc之前删除旧的软链接有可能会导致系统的一些命令使用不了,所以就没使用这种方法,而是直接在编译安装的时候指定了/usr路径,安装完后直接就可以用了。
参考:https://blog.csdn.net/u013305101/article/details/80669974