Unix/Arch Linux

Arch Linux AUR tensorflow 설치

ForceCore 2016. 10. 1. 06:34

https://aur.archlinux.org/packages/python-tensorflow/


하... 힘들다. 컴파일 기다리기.

우선 yaourt를 안 쓰길 권장한다. 왜냐? 도중에 에러가나면 makepkg를 다시 해야 하거든.

... Dependency를 다 수동으로 설치하길 권장한다.

얘네들도 컴파일하는데 오지게 오래 걸리기 때문이다.


bazel, protobuf 모두 오래걸린다.


그리고 본게임인 python-tensorflow 패키지는 컴파일 시간도 오래 걸리고, AUR에 제시된 컴파일 방법도 버그가 있어서 아래와 같이 고쳐야 한다.


https://aur.archlinux.org/packages/python-tensorflow/

2016-05-26 05:46

이 때 된 PKGBUILD 를 기준으로 하면,


diff --git a/PKGBUILD b/PKGBUILD
index 2b0bb75..adc3173 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -27,9 +27,13 @@ _build_opts=''
 
prepare() {
   cd ${srcdir}
-   ln -s tensorflow-${pkgver} tensorflow
+   if [ ! -L tensorflow ] ; then
+       ln -s tensorflow-${pkgver} tensorflow
+   fi
   cd tensorflow/google
-   git clone https://github.com/google/protobuf/
+   if [ ! -d protobuf ] ; then
+       git clone https://github.com/google/protobuf/
+   fi
   cd protobuf
   git reset --hard ${protobuf_commit}
 
@@ -55,6 +59,7 @@ build() {
   cd "$srcdir/tensorflow"
   ./configure
   bazel build -c opt ${_build_opts} //tensorflow/tools/pip_package:build_pip_package
+   cp -a bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/__main__/* bazel-
bin/tensorflow/tools/pip_package/build_pip_package.runfiles/
   bazel-bin/tensorflow/tools/pip_package/build_pip_package $srcdir/tmp
}

이런 차이가 있다... 위의 if문은 뭐냐면, 빌드가 실패했을 때를 대비해서 clone, soft link 작업을 못 하게 하는 것이다. 그래야 실패를 해도 makepkg를 하면 다시 하던 데부터 빌드가 되는 것이다.


아래의 cp -a 는 AUR에 접속해보면 있는 코멘트를 보고 넣었다... 저거 안 해서 빌드가 실패함.


cp: cannot stat 'bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/tensorflow': No such file or directory

cp: cannot stat 'bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/external': No such file or directory

==> ERROR: A failure occurred in build().

Aborting...

==> ERROR: Makepkg was unable to build .

이런 비슷한 에러가 날 것이다.