centos6.5安裝tensorflow

操作系統版本centos 6.5

gcc版本:4.4.7

glibc版本:2.12

python版本:2.7.3

tensorflow:1.4.0    需要glibc GLIBC_2.17、CXXABI_1.3.7、GLIBCXX_3.4.19

yum install gcc

python get-pip.py

zipimport.ZipImportError: can't decompress data; zlib not available

yum install zlib-devel    #重新編譯python,問題解決

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

yum install openssl-devel    ##重新編譯python,問題解決

#安裝python

cd Python-2.7.13

./configure --prefix=/data/machine/python --enable-unicode=ucs4

make && make install

chown -R machine.machine /data/machine/python

#安裝pip

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

#安裝tensorflow

pip install tensorflow

#pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow


#查找需要更新的版本

cd /data/machine/python/lib/python2.7/site-packages/tensorflow

find ./ -name *.so |xargs ldd

./libtensorflow_framework.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by ./libtensorflow_framework.so)

./libtensorflow_framework.so: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.7' not found (required by ./libtensorflow_framework.so)

統計發現

/lib64/libc.so.6                GLIBC_2.17

/usr/lib64/libstdc++.so.6    CXXABI_1.3.7、GLIBCXX_3.4.19

#升級glibc

#glibc升級採用編輯完成後,只更新libc.so.6。存在如下文件。故採用全新升級glibc文件

ls: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument

tar xf glibc-2.17.tar.gz

cd glibc-2.17

mkdir build

cd build

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make

make install    #建議不採用ssh執行,通過不依賴操作系統的方式執行;更新的部分庫文件,ssh也依賴

#升級gcc

tar xf gcc-4.8.1.tar.gz

cd gcc-4.8.1

./contrib/download_prerequisites

#建立build_gcc_4.8.1目錄,這個目錄和gcc-4.8.1平行

cd ..

mkdir build_gcc_4.8.1

cd build_gcc_4.8.1

#執行編譯過程

../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j23


find ./ -name libstdc++.so.6.0.18

將找到的libstdc++.so.6.0.18,拷貝到/usr/lib64/

chmod 755 /usr/lib64/libstdc++.so.6.0.18


更新連接文件

rm -rf /usr/lib64/libstdc++.so.6

LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.13 ln -s /usr/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6

#LD_PRELOAD,是個環境變量,用於動態庫的加載,動態庫加載的優先級最高,一般情況下,其加載順序爲LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib

ls     #測試命令是否正常,如果存在問題,採用如下辦法回退

回退辦法

rm -rf /usr/lib64/libstdc++.so.6

LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.13 ln -s /usr/lib64/libstdc++.so.6.0.13 /usr/lib64/libstdc++.so.6


參考文章:

http://www.tensorfly.cn/tfdoc/get_started/introduction.html

http://blog.csdn.net/u013735511/article/details/76147138

https://github.com/qiwsir/ITArticles/blob/master/Linux/upgrade_gcc_on_Centos.md


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章