LoginSignup
2
3

More than 5 years have passed since last update.

TensorflowをCentOS7にオフライン環境でインストールする

Last updated at Posted at 2017-12-27

上記の公式ページを参考にして、すんなりいけると思っていたのですが、意外と苦戦したのでやり方を書きます。
基本的にはインターネットにつながる環境からパッケージをダウンロードしてきて
インターネットにつながらない環境に持ってくるという作業になります。

環境

CentOS Linux release 7.3.1611

事前準備

いくつか必要なパッケージがあるのでインストールします。
すでにあるものは飛ばして大丈夫です。

JDK

後ほど出てくるbazelのインストールに必要となります。

公式から落としてきます。
インストール方法はググれば色々出てくるので省略します。

Anaconda

python、jupyter、numpyなどが入ってます。

上記サイトからダウンロードします。

インストールはbashコマンドをたたくだけです。

$ bash Anaconda2-5.0.1-Linux-x86_64.sh

.bashrcにインストールしたパスをexportしましょう。

.bashrc
export PATH="<インストールパス>/bin:$PATH"

bazel

Tensorflowのインストールに必要になります。

上記サイトから
bazel-0.5.4-without-jdk-installer-linux-x86_64.sh
をダウンロードします。
もしかしたらJDKはインストールしなくてもこちらでjdkありのソースを落としても良かったかもしれません。
筆者はTensorflow1.4をインストールする予定だったのでbazelのバージョンは0.5.4を採用しました。
適宜バージョンはご自身の環境に合わせてインストールしてください。
どのバージョンをインストールするかは下記ページで確認できます。

インストールはbashコマンドを実行するだけです。

$ bash bazel-0.5.4-without-jdk-installer-linux-x86_64.sh

Tensorflowのインストール

ここからが本番です。
まずは、公式にのっとって、configureします。

$ cd tensorflow
$ ./configure

色々聞かれますが必要に応じてyes/noを選択してください。
公式通り進むと下記コマンドを実行するように聞かれます。

$ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

ここでこけます。
内部でインターネットにつなげていろいろパッケージをインストールしようとするためです。

ダウンロード先を管理しているファイルはtensorflowディレクトリの以下にあります。
tensorflow/workspace.bzl

ここのURLを無理やり書き換える操作を行います。

protobuf_archiveを例に記述します。
インターネットにつなげる環境からまずパッケージをダウンロードします。

適当なディレクトリにおいて、以下コマンドを実行します。

$ python -m SimpleHTTPServer 8000

tensorflow/workspace.bzlの2番目以降のURLを書き換えます。
ここで1番目のURLを書き換えるとエラーになってしまいますので、必ず2番目以降を書き換えてください。

変更前

tf_http_archive(
    name = "protobuf_archive",
    urls = [
        "https://mirror.bazel.build/github.com/google/protobuf/archive/b04e5cba356212e4e8c66c61bbe0c3a20537c5b9.tar.gz",
        "https://github.com/google/protobuf/archive/b04e5cba356212e4e8c66c61bbe0c3a20537c5b9.tar.gz",
    ],

変更後

tf_http_archive(
    name = "protobuf_archive",
    urls = [
        "https://mirror.bazel.build/github.com/google/protobuf/archive/b04e5cba356212e4e8c66c61bbe0c3a20537c5b9.tar.gz",
        "http://localhost:8000/b04e5cba356212e4e8c66c61bbe0c3a20537c5b9.tar.gz",
    ],

これを面倒ですが全ファイル分行います。
たまに存在しないファイルもあるのでそれは無視して大丈夫です。

これで、ビルドが成功するので公式通り下記コマンドを実行します。

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

最後に、インストールを行います。

$ pip install /tmp/tensorflow_pkg/tensorflow-1.4.0-py2-none-any.whl

ファイル名はインストールした内容によって異なるので各自書き換えてください。
ここでまたしてもこけます。理由は前と同じです。

足りないライブラリは各自でダウンロードしてインストールしてください。
筆者がインストールしたのは以下です。
これもAnacondaやTensorflowのバージョンによっては異なるかもしれません。

Markdown-2.6.10.zip
absl-py-0.1.7.tar.gz
backports.weakref-1.0.post1-py2.py3-none-any.whl
bleach-1.5.0-py2.py3-none-any.whl
html5lib-0.9999999-py2-none-any.whl
mock-2.0.0-py2.py3-none-any.whl
pbr-3.1.1-py2.py3-none-any.whl
protobuf-3.5.1-py2.py3-none-any.whl
tensorflow_tensorboard-0.4.0rc3-py2-none-any.whl

依存関係にあるライブラリもインストールしました。
.whlファイルはpip install *.whlでインストールできます。
tar.gz.zipで圧縮されているファイルは解凍後、
python setup.py installを実行することでインストールされます。

全てインストールした後に再度pip installを実行すると成功です!

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3