CentOS 6.9에 Tensorflow를 설치하는 데 큰 문제가 있습니다.
Anaconda3(물론 Python 3의 경우 정확히 Python 3.5.3)를 사용하여 CentOS에 Tensorflow를 설치하는 방법에 대한 지침을 따라해 보았습니다. Tensorflow를 제외한 대부분의 패키지는 올바르게 설치되었습니다. 일부 패키지를 설치하기 위해 GCC 버전을 4.4.7에서 6.3.0으로 업그레이드해야 했지만 Python 화면에는 여전히 4.4.7이 표시됩니다.
어쨌든 지침에 따라 Tensorflow를 설치했는데 다음 메시지가 표시되므로 사용할 수 없습니다 ImportError: /lib64/libc.so.6: version 'GLIBC_2.14' not found (required by /home/k/anaconda3/envs/h/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so)
.
그래서 GLIBC를 2.14보다 최신 버전으로 업그레이드하려고 했고, binutils 2.20이 최신 GLIBC 파일 중 하나의 구성을 실행하지 않기 때문에 binutils를 2.25로 업그레이드했습니다. 그러나 오래된 Linux 버전인 GLIBC를 구성하는 데 또 다른 문제가 발생했습니다. Linux 3.2.0이 필요하며 Linux 2.6이 있습니다.
이것이 나의 제약입니다.
- Linux 버전을 변경할 수 없습니다. 서버 시스템이고 CentOS 6.9 Linux를 사용해야 합니다.
제가 여러분에게 묻고 싶은 질문은 다음과 같습니다.
분명히 CUDA 8.0은 5.3.1 이후의 GCC 버전을 지원하지 않기 때문에 내 GCC 버전을 6.3.0에서 5.0~5.2 사이로 변경하고 싶은 유혹을 받습니다. 를 입력하면
gcc --version
GCC 버전 6.3.0이 표시되지만 Python 3을 입력하면 가 표시됩니다[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
. 나는 무엇을 해야 합니까?내 플랫폼에서 Tensorflow를 실행할 수 있도록 GLIBC를 업그레이드하고 싶습니다. 재정의해야 할 GLIBC 버전은 GLIBC_2.14라고 생각하지만 이것이 Tensorflow를 실행하기에 충분한지 확실하지 않습니다. 내 서버에서 Tensorflow를 실행할 수 있도록 GLIBC를 업그레이드하도록 도와주세요.
위 작업을 수행하려면 어떤 binutil 패키지가 필요합니까? 최신 binutils 패키지를 얻기 위해 devtools-4-binutils를 다운로드했는데 최신 패키지가 Linux 2.6 버전과 동기화되지 않을까 걱정됩니다.
이 방법이 모두 작동하지 않으면 GCC를 공장 버전 4.4.7로 다시 설정하고 binutils를 2.20으로 다시 설정하는 방법을 알려주실 수 있나요? 내 컴퓨터에 적용한 모든 수정 사항을 취소할 수 있다면 GCC 버전 < 5.3.1을 설치하고 Tensorflow 설치를 위해 최신 GLIBC를 구성할 수 있을 것이라고 믿습니다.
답변1
기본 pip 패키지와 glibc를 사용하여 CentOS6용으로 빌드하는 데 몇 가지 근본적인 문제가 있었기 때문에 CentOS 6에서 작동하도록 소스에서 tensorflow pip 패키지를 다시 빌드해야 했습니다. 이를 바탕으로 제가 작성한 메모는 다음과 같습니다. (참고로 저는 한 달 전에 이 일을 했습니다)
bazel-4.5-dist.zip을 다운로드하고 아래 단계에 따라 설치하세요. 2017-09-04 기준으로 최신 버전의 bazel을 실행할 수 없습니다.
~$ cd ~$ wget https://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-dist.zip ~$ cd /usr/src ~$ mkdir bazel-0.4.5-dist.zip ~$ cd bazel-0.4.5-dist ~# mv ~/bazel-0.4.5-dist.zip ./ ~# unzip bazel-0.4.5-dist.zip ~# ./compile.sh
devtoolset-6 대신 devtoolset-2를 활성화하려면 ~/.bashrc를 수정하세요. Tensorflow는 최신 gcc로 구축되지 않으며 최대 gcc 4까지만 구축됩니다.
~/.bashrc에서
source /opt/rh/devtoolset-2/enable #source /opt/rh/devtoolset-6/enable
tensorflow를 /usr/src에 복제합니다.
~$ cd /usr/src ~# git clone https://github.com/tensorflow/tensorflow
텐서플로우 구성
~$ cd tensorflow ~# ./configure
CUDA를 제외한 모든 지원 옵션에 대해 아니요를 선택합니다. 다른 모든 것은 기본값이어야 합니다
/usr/src/tensorflow/third_party/gpus/crosstool로 이동하십시오. CROSSTOOL_clang.tpl 및 CROSSTOOL_nvcc.tpl을 수정하십시오. "Toolchain" 섹션에 다음 행을 추가하십시오.
linker_flag : "-B/opt/rh/devtoolset-2/root/usr/bin"
텐서플로우 빌드
~$ cd /usr/src/tensorflow ~# bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
pip 패키지 생성
~# bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
사용자 정의 pip 패키지 설치
~# sudo pip install /tmp/tensorflow_pkg/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl