2018年07月30日

「Ubuntu 18.04 LTS 日本語 Remix」に「TensorFlow」をソースからインストールする

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10) + 1TB 5400rpm HDD (Ubuntu18.04)
--

ここでは、「Python 3.6」仮想環境にGPU版「TensorFlow」をソースからインストールするものとして、インストールまえに必要になる準備作業について記述します。
CPU版「TensorFlow」をインストールする場合は、GPUサポートのために必要になる「CUDA」関連の部分、および「GCC 4.8」設定の部分は無視してください。

・Google製ビルドツール「Bazel」インストール
「TensorFlow」をビルドするためには、「Bazel」というビルドツールを使います。
Install TensorFlow From Souces」ページ下のほうにある動作検証環境一覧表によると、「tensorflow_gpu-1.8.0」については、「Bazel 0.9.0」と記載されています。
ここでは、「Bazel 0.11.1」がインストールされているものとします。

・「python3-numpy」「python3-dev」「python3-pip」「python3-wheel」インストール
「TensorFlow」をソースからインストールするさい、必要になる「Python 3」パッケージをあらかじめインストールしておきます。

$ sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel


・GPUサポート
Install TensorFlow From Souces」ページ下のほうにある動作検証環境一覧表によると、「tensorflow_gpu-1.8.0」については、「CUDA 9」「cuDNN 7」と記載されています。
ここでは、「CUDA 9.0」+「cuDNN 7.0」が「/usr/local/cuda-9.0」ディレクトリへ、「NCCL 2.1」が「/usr/local/nccl-2.1」ディレクトリへ、「TensorRT 3.0.4」が「/usr/local/TensorRT-3.0.4」ディレクトリへインストールされ、そこへのパスがとおっているものとします。
「CUPTI」は「CUDA 9.0 Toolkit」にふくまれているため、あらためてインストールする必要はありませんが、パスをとおしておく必要はあります。

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/extras/CUPTI/lib64


・「GCC 4.8」準備
Install TensorFlow From Souces」ページ下のほうにある動作検証環境一覧表によると、「tensorflow_gpu-1.8.0」については、「GCC 4.8」と記載されています。
Ubuntu18.04標準の「gcc-7」では、GPU版「TensorFlow」をソースからビルドすることはできず、かわりに「gcc-4.8」を使う必要があります。
そのため、「gcc-4.8」「g++-4.8」をインストールのうえ「update-alternatives」コマンドを使って「gcc-7」「g++-7」より優先順位をあげて、一時的に自動モードで「gcc-4.8」「g++-4.8」が使われるように設定します。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70

$ sudo apt-get install gcc-4.8 g++-4.8

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 80
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 80


なお「gcc-4.8」でビルドするさいには、エディタで「/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h」ファイルをひらいて、以下の二行を追加しておきます。

#define _GLIBCXX_USE_C99 1
#define _GLIBCXX_USE_C99_MATH 1


上記はGPU版「TensorFlow」をソースからインストールするさいに必要な特殊設定なので、GPU版「TensorFlow」のインストール作業が終わったら「gcc-4.8」「g++-4.8」の優先順位をさげて、自動モードでシステム標準の「gcc-7」「g++-7」が使われるように設定をもどしておきます。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 48


「GCC 5」以降のバージョンでGPU版「TensorFlow」をソースからインストールする場合は、「bazel build --config=opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=cuda」などのように、「--cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"」を追加してビルドする必要があります。
これによって、「GCC 5」以降でパッケージをビルドするさいに、古いABIを使う「GCC 4」でビルドされたバイナリとの互換性をたもつことができます。

最終的に、「TensorFlow」をソースからインストールするためにととのえた環境は、以下のようになっています。

・Ubuntu 18.04 LTS 日本語 Remix
・CUDA 9.0 -> /usr/local/cuda-9.0
・cuDNN 7.0.5 -> /usr/lcoal/cuda-9.0
・NCCL 2.1.15 -> /usr/local/nccl-2.1
・Bazel 0.11.1
・TensorFlow 1.8.0 -> 「1.9.0」以降のバージョンをビルドするには「Bazel 0.13」以降が必要になるため、ここでは「Bazel 0.11」と互換性のある「1.8.0」を使う。
・GCC 4.8

2. 「TensorFlow」ソース取得
ここでは、「~/tensorflow」ディレクトリにソースを取得するものとして、インストール作業をすすめていきます。
「TensorFlow」の最新バージョンは「1.9.0」ですが、今回は互換性の観点から「1.8.0」を採用することにして、以下のコマンドを実行します。

$ cd
$ git clone https://github.com/tensorflow/tensorflow
$ cd tensorflow
$ git checkout v1.8.0
$ git submodule update --init --recursive


3. 「TensorFlow」環境設定
まずは、「TensorFlow」をインストールする環境にあわせて設定していきます。

$ ./configure


Pythonのバージョン「/usr/bin/python3.6」とライブラリのパスを指定したあと、たくさん質問がつづきますが、以下の項目だけはしっかりと確認してください。

・CPU版:「jemalloc」と「XLA」を有効化する。
・GPU版:「CUDA」サポートを有効化し、「CUDA 9.0 /usr/local/cuda-9.0」「cuDNN 7.0 /usr/local/cuda-9.0」「NCCL 2.1 /usr/local/nccl-2.1」「TensorRT 3.0.4 /usr/local/TensorRT-3.0.4」のバージョンとパスを指定する。

4. pipパッケージ作成
「TensorFlow」環境設定が終わったら、環境にあった「TensorFlow」をインストールするためのpipパッケージを作成していきます。
あらかじめインストールしておいた「Bazel 0.11.1」を使って、ソースからビルドしていきますが、GPUサポートの有無によって指定するオプションがかわってきます。

・CPU版
Intel MKL-DNNサポートなし
$ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

Intel MKL-DNNサポートあり
$ bazel build --config=mkl --config=opt //tensorflow/tools/pip_package:build_pip_package


・GPU版
$ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package


上記「bazel build」コマンドによって、「~/tensorflow/bazel-bin/tensorflow/tools/pip_package/」ディレクトリ以下に「build_pip_package」スクリプトが生成しています。
つづいて、以下のコマンドを実行することで、「/tmp/tensorflow_pkg」以下に.whlファイルを出力することができます。
「/tmp/tensorflow_pkg」は、「~/worktable」など、すきなディレクトリに変更してかまいません。

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


上記コマンドを実行した結果として、「/tmp/tensorflow_pkg」ディレクトリ以下に、pipパッケージ「tensorflow-1.8.0-cp36-cp36m-linux_x86_64.whl」が生成します。

5. pipパッケージのインストール
Install TensorFlow on Ubuntu」で推奨されている手順にしたがって、Python環境管理ツール「Virtualenv」を利用して「Ptyhon 3.6」仮想環境を作成し、そのなかに「TensorFlow」をインストールしていきます。
ここでは、「~/virtualenv」ディレクトリ以下に、「Python 3.6」仮想環境「py3」を作成します。

$ sudo apt-get install python3-pip python3-dev python-virtualenv
$ sudo pip install -U pip
$ mkdir ~/virtualenv
$ cd ~/virtualenv
$ virtualenv --system-site-packages -p /usr/bin/python3.6 py3


作成した仮想環境「py3」を有効化し、「TensorFlow」ソースから生成したpipパッケージをインストールします。

$ source py3/bin/activate
(py3) $ pip update -U pip
(py3) $ pip install /tmp/tensorflow_pkg/tensorflow-1.8.0-cp36-cp36m-linux_x86_64.whl


6. 「TensorFlow」インストールの検証
ここで、「TensorFlow」が正しくインストールされているかどうか、検証しておきます。
「~/virtualenv」ディレクトリへ移動し、「TensorFlow」をインストールした「Python 3.6」仮想環境「py3」を有効化したうえで、「Python 3.6」シェルをひらきます。

$ cd ~/virtualenv
$ source py3/bin/activate
(py3) $ python


「Python 3.6」シェルで以下のようなコマンドをたたいていき、「Hello, TensorFlow!」と出力されれば、「TensorFlow」のインストールは正常に完了しています。

# Python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))


7. pipパッケージのアンインストール、および仮想環境の削除
仮想環境「py3」にインストールした「TensorFlow」pipパッケージをアンインストールするには、仮想環境「py3」が有効化された状態で、以下のコマンドを実行します。

(py3) $ pip uninstall tensorflow


この仮想環境「py3」じたいが不要になった場合は、仮想環境「py3」を無効化したうえで、「~/virtualenv」ディレクトリ以下の「py3」ディレクトリをそのまま削除してしまいます。

(py3) $ deactivate
$ rm -r ~/virtualenv/py3



参考ウェブページ一覧表(順不同)

https://www.tensorflow.org/
https://www.tensorflow.org/install/
https://www.tensorflow.org/install/install_linux
https://www.tensorflow.org/install/install_sources
https://github.com/tensorflow/tensorflow
posted by hatakazu at 22:24| Comment(0) | Linuxとか | 更新情報をチェックする

2018年07月23日

「Ubuntu 18.04 LTS 日本語 Remix」に「TensorFlow」バイナリをインストールする

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10) + 1TB 5400rpm HDD (Ubuntu18.04)
--

ここでは、「Python 3.6」仮想環境にGPU版「TensorFlow」をバイナリインストールするものとして、インストールまえに必要になる準備作業について記述します。
CPU版「TensorFlow」をインストールする場合は、GPUサポートのために必要になる「CUDA」関連の部分は無視してください。

・「python3-pip」「python3-dev」インストール
「TensorFlow」バイナリをインストールするさい、必要になる「Python 3」パッケージをあらかじめインストールしておきます。

$ sudo apt-get install python3-pip python3-dev


・GPUサポート
ここでは、「CUDA 9.0」+「cuDNN 7.0」が「/usr/local/cuda-9.0」ディレクトリへインストールされ、そこへのパスがとおっているものとします。
「CUPTI」は「CUDA 9.0 Toolkit」にふくまれているため、あらためてインストールする必要はありませんが、パスをとおしておく必要はあります。

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/extras/CUPTI/lib64


2. 「TensorFlow」pipパッケージのインストール
Install TensorFlow on Ubuntu」で推奨されている手順にしたがって、Python環境管理ツール「Virtualenv」を利用して「Ptyhon 3.6」仮想環境を作成し、そのなかに「TensorFlow」をインストールしていきます。
ここでは、「~/virtualenv」ディレクトリ以下に、「Python 3.6」仮想環境「py3」を作成します。

$ sudo apt-get install python3-pip python3-dev python-virtualenv
$ sudo pip install -U pip
$ mkdir ~/virtualenv
$ cd ~/virtualenv
$ virtualenv --system-site-packages -p /usr/bin/python3.6 py3


作成した仮想環境「py3」を有効化し、必要におうじて「pip」を最新のものに更新しておきます。

$ source py3/bin/activate
(py3) $ pip update -U pip


必要な仕様におうじて、該当する「TensorFlow」pipパッケージをインストールします。

・CPU版「TensorFlow」インストールのためのpipコマンド

(py3) $ pip install -U tensorflow

もしくは、バージョンなどを指定するさいは、該当するリモートURLを使います。
(py3) $ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl


・GPU版「TensorFlow」インストールのためのpipコマンド

(py3) $ pip install -U tensorflow-gpu

もしくは、バージョンなどを指定するさいは、該当するリモートURLを使います。
(py3) $ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.9.0-cp36-cp36m-linux_x86_64.whl


3. 「TensorFlow」インストールの検証
ここで、「TensorFlow」が正しくインストールされているかどうか、検証しておきます。
「~/virtualenv」ディレクトリへ移動し、「TensorFlow」をインストールした「Python 3.6」仮想環境「py3」を有効化したうえで、「Python 3.6」シェルをひらきます。

$ cd ~/virtualenv
$ source py3/bin/activate
(py3) $ python


「Python 3.6」シェルで以下のようなコマンドをたたいていき、「Hello, TensorFlow!」と出力されれば、「TensorFlow」のインストールは正常に完了しています。

# Python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))


4. pipパッケージのアンインストール、および仮想環境の削除
仮想環境「py3」にインストールした「TensorFlow」pipパッケージをアンインストールするには、仮想環境「py3」が有効化された状態で、以下のコマンドを実行します。

(py3) $ pip uninstall tensorflow


この仮想環境「py3」じたいが不要になった場合は、仮想環境「py3」を無効化したうえで、「~/virtualenv」ディレクトリ以下の「py3」ディレクトリをそのまま削除してしまいます。

(py3) $ deactivate
$ rm -r ~/virtualenv/py3



参考ウェブページ一覧表(順不同)

https://www.tensorflow.org/
https://www.tensorflow.org/install/
https://www.tensorflow.org/install/install_linux
https://www.tensorflow.org/install/install_sources
https://github.com/tensorflow/tensorflow
posted by hatakazu at 21:28| Comment(0) | Linuxとか | 更新情報をチェックする

2018年07月21日

「Ubuntu 18.04 LTS 日本語 Remix」に「CUDA 9.0」+「cuDNN 7.0」をインストールする

コンピュータ囲碁プログラムのFacebook「ELF OpenGo」やTencent「PhoenixGo」を動かしてみたくて、そのためにわざわざ外部GPU搭載のラップトップを購入したようなものなので、なんとか「Ubuntu 18.04 LTS 日本語 Remix」上に「CUDA」環境を構築してみたいと思っています。
そのうえで、GPU版「PyTorch」やGPU版「TensorFlow」を導入して、最終的にはFacebook「ELF OpenGo」やTencent「PhoenixGo」を動かすことをめざします。

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10 Home 64bit) + 1TB 5400rpm HDD (Ubuntu 18.04 LTS 日本語 Remix)
--

2. 構築すべき「CUDA」環境
まずは目標設定ですが、最終的には「ELF OpenGo」と「PhoenixGo」を動かしたいわけなので、それらが動作する「CUDA」環境を構築するということになります。
まず、「ELF Opengo」GitHubレポジトリの記載によれば、「ELF OpenGo」は以下の条件で動いていたようです。

・Ubuntu 18.04
・Python 3.6
・GCC 7.3
・CUDA 9.0
・CUDNN 7.0
・NCCL 2.1.2

とりあえずこれで動いたというだけで、人手不足のため互換性の検証はしていないそうなので、じっさいにはもっとゆるやかな条件で動作するはずではあります。
でもまあ基本的に、「Ubuntu 18.04」に「CUDA 9.0」+「cuDNN 7.0」+「NCCL 2.1」をインストールして、Facebookが開発している機械学習フレームワーク「PyTorch」のGPU版を導入する、という方針でいきたいと思います。
「PyTorch」はいろいろな方法でインストールできますが、「ELF OpenGo」を動かすためにはソースからインストールする必要がある可能性もあり、ソースからのインストールにさいして推奨されている「Anaconda」環境をあらかじめ構築しておきます。

それに対して、「PhoenixGo」GitHubレポジトリのほうでは、以下のようにしか書かれていません。

・GCC with C++11 support
・Bazel (0.11.1 is known-good)
・(Optional) CUDA and cuDNN (for GPU support)
・(Optional) TensorRT (for accelerating computation on GPU, 3.0.4 is known-good)

Windowsバイナリのインストールは「CUDA 9.0」+「cuDNN 7.1.4」を前提としていたのですが、現時点ではとりあえず、互換性の高そうな「CUDA 9.0」+「cuDNN 7.0」のほうでいってみたいと思います。
オプションで「TensorRT 3.0.4」をためしてみるとしても、「CUDA 9.0」+「cuDNN 7.0」環境はサポートされているようなので。
「PhoenixGo」のほうは、Google開発の機械学習フレームワーク「TensorFlow」で動いているため、おなじくGoogle開発のビルドツール「Bazel」をあらかじめインストールしておきます。

いずれ試行錯誤することになるとは思いますが、とりあえず以下の構成を基本に、作業をはじめてみることにしました。

・Ubuntu 18.04 LTS
・CUDA 9.0
・cuDNN 7.0.5
・NCCL 2.1.15
・PyTorch 0.4.0(ソースからインストール)
・Anaconda3 5.2.0
・TensorFlow 1.8.0(ソースからインストール)
・Bazel 0.11.1
・TensorRT 3.0.4(オプション)

3. NVIDIA製GPU「GeForce MX150」ドライバのインストール
今回作業するコンピュータはNVIDIA製GPU「GeForce MX150」を搭載しているので、まずはこのGPUに対応する最新のドライバをインストールします。
じっさいの作業はむずかしくありませんが、基本的な考えかたを学ぶうえで、「Ubuntu 16.04 LTSにNVIDIA製ドライバーをインストールする3つの方法」がたいへん参考になりました。
「Ubuntu 18.04 LTS 日本語 Remix」で「GeForce MX150」用ドライバをインストールするには、「ソフトウェアとアップデート」を起動し、「追加のドライバー」タブを開きます。
すこし時間がかかって、使用できるドライバの一覧が表示されます。
型式が「NVIDIA Corporation: GP108M [GeForce MX150]」と表示されているのを確認して、「NVIDIA driver metapackageをnvidia-driver-390から使用します(プロプライエタリ、検証済み)」ボタンにチェックをいれます。
その状態で「変更の適用」をクリックすると、インストール処理がはじまりますが、終わるまでじゃっかん時間がかかります。
インストール処理が終わったら、システムを再起動すると、標準の「Nouveau」ドライバではなくNVIDIA製「nvidia-390」ドライバで立ちあがります。
ターミナルをひらいて、「$ nvidia-smi」コマンドをたたいてみて、ドライバのバージョンやGPUの型式が正しく表示されることを確認しておきます。

$ nvidia-smi


デスクトップ関連の設定は、「$ nvidia-settings」コマンドを使って、グラフィカルにおこなうことができます。

$ nvidia-settings


設定内容は「⁠~/.nvidia-settings-rc」に保存され、ログインのたびに「/etc/xdg/autostart/nvidia-settings-autostart.desktop」がこの設定内容を読みこんで、反映させる仕組みです。
NVIDIA製「nvidia-390」ドライバのドキュメント類は、「⁠/usr/share/doc/nvidia-driver-390/index.html」に保管されています。
インストールしたNVIDIA製ドライバのバージョンは、以下のコマンドで確認できます。

$ cat /proc/driver/nvidia/version


4. 「CUDA 9.0」インストールまえの準備作業
「CUDA 9.0」をインストールする方法はいくつかありますが、最終的には、NVIDIAウェブサイトからUbuntu17.04用runファイルをダウンロードしてインストールすることにしました。
「$ sudo apt install nvidia-cuda-toolkit」コマンドでUbuntuパッケージをインストールすると「CUDA 9.1」がはいってしまうし、ライブラリの格納箇所がNVIDIAの標準とはちがうので、ほかと連携させるさいパスの管理に手間がかかりそうな気がします。
それではということで、NVIDIA配布のUbuntu17.04用debファイル「cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64-deb」をためしてみようと思ったら、Ubuntu18.04ではパッケージの整合性がとれないということで、インストールできませんでした。
そのため、「CUDA Toolkit 9.0 Downloads」ページからUbuntu17.04用runファイル「cuda_9.0.176_384.81_linux-run」をダウンロードして、手動で「CUDA 9.0」をインストールすることにしました。
やってみてからの感想ですが、いろいろなところで互換性の問題がおこりやすい「CUDA」関連ライブラリについては、結果的にrunファイルでインストールして手動でバージョンを管理するのが一番いいと思います。
パッケージの競合という問題がないので、複数のバージョンをインストールしたうえで、パスとショートカットでバージョンを切りかえて使う、ということができるのもおおきなメリットといえます。
GPUドライバのみ別途Ubuntuパッケージで管理したうえで、ツールキットをrunファイルからインストールするだけなら、すべての処理をグラフィカルログイン状態で完了でき、システムに致命的なダメージをあたえかねないむずかしいプロセスもありません。

NVIDIA CUDA Installation Guide for Linux」ページの指示にしたがって、「CUDA 9.0」をインストールするまえに必要な確認作業、準備作業をおこないます。

「CUDA 9.0」に対応したGPUの確認。
$ lspci | grep -i nvidia
01:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX150] (rev a1)


Linux OSの対応状況確認。「Ubuntu 18.04 LTS」は対応していませんが、気にせずこのまますすめます。
$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"
NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
username@machine_name:~$ gcc --version
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


コンパイラの存在およびバージョンを確認。「CUDA 9.0」は「gcc-7」と互換性がないので、インストールまえにすこし工夫する必要があります。
$ gcc --version
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Linuxカーネルのバージョン確認。
$ uname -r
4.15.0-23-generic


Linuxカーネルのヘッダと開発キットをインストール。
$ sudo apt-get install linux-headers-$(uname -r)


「CUDA 9.0」と互換性のない「gcc-7」を標準とするUbuntu18.04では、ここで互換性のある「gcc-5」もしくは「gcc-4.8」をインストールし、「update-alternatives」コマンドで標準の「gcc-7」よりも優先順位をあげて、一時的に自動モードで「gcc-5」もしくは「gcc-4.8」が使われるように設定しておきます。
「CUDA 9.0」は基本的に「gcc-5」で動作しますが、GPU版「TensorFlow」をソースからインストールする場合や、GPU版「PyTorch」をソースからインストールする場合など、「gcc-4.8」が必要になるケースもあるようです。
そのため、ここでは「gcc-4.8」「g++-4.8」をインストールのうえ「update-alternatives」コマンドを使って優先順位をあげて、一時的に自動モードで「gcc-4.8」「g++-4.8」が使われるように設定します。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70

$ sudo apt-get install gcc-4.8 g++-4.8

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 80
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 80


なお「gcc-4.8」でビルドするさいには、エディタで「/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h」ファイルをひらいて、以下の二行を追加しておきます。

#define _GLIBCXX_USE_C99 1
#define _GLIBCXX_USE_C99_MATH 1


こうした「gcc-4.8」が必要なインストール作業が終わったら、かならず「gcc-4.8」「g++-4.8」の優先順位をさげて、自動モードでシステム標準の「gcc-7」「g++-7」が使われるように設定をもどしておきます。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 48


5. 「CUDA 9.0」のインストール
CUDA Toolkit 9.0 Downloads」ページで「Linux」「x86_64」「Ubuntu」「17.04」「runfile (local)」を選択し、「Download Installers for Linux Ubuntu 17.04 x86_64」タブを開きます。
「Base Installer」「Patch 1 (Released Jan 25, 2018)」「Patch 2 (Released Mar 5, 2018)」「Patch 3 (Released Jun 7, 2018)」それぞれの「Download」ボタンを押して、「cuda_9.0.176_384.81_linux.run」「cuda_9.0.176.1_linux.run」「cuda_9.0.176.2_linux.run」「cuda_9.0.176.3_linux.run」をダウンロードします。
ファイルをダウンロードしたディレクトリへ移動し、ベースインストーラのrunファイルに実行権限を付与してから、「sudo」で実行します。
長い使用許諾書を「Enter」キーを押して全部表示してから「accept」し、「You are attempting to install on an unsupported configuration. Do you wish to continue?」には「yes」と、「Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?」にはかならず「no」と回答します。
「Install the CUDA 9.0 Toolkit?」に「yes」と回答し、「/usr/local/cuda-9.0」にライブラリをインストールのうえ「/usr/local/cuda」からシンボリックリンクをはり、動作確認のためのサンプルファイルは「~/NVIDIA_CUDA-9.0_Samples」にコピーする設定にします。

$ chmod +x cuda_9.0.176_384.81_linux.run
$ sudo ./cuda_9.0.176_384.81_linux.run

「gcc7」+「g++7」環境でかまわずインストールするなら、「--override」オプションをつけて、「$ sudo ./cuda_9.0.176_384.81_linux.run --override」とします。


Do you accept the previously read EULA?
accept/decline/quit: accept

You are attempting to install on an unsupported configuration. Do you wish to continue?
(y)es/(n)o [ default is no ]: yes

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: no

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: yes

Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: yes

Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: yes

Enter CUDA Samples Location
[ default is /home/username ]:

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...


ベースインストーラのインストール処理が終わったら、パッチをあてていきます。
「CUDA 9.0 Toolkit」をインストールしたディレクトリ「/usr/local/cuda-9.0」をターゲットに、パッチファイルを実行するだけです。

$ chmod +x cuda_9.0.176.1_linux.run cuda_9.0.176.2_linux.run cuda_9.0.176.3_linux.run
$ sudo ./cuda_9.0.176.1_linux.run
$ sudo ./cuda_9.0.176.2_linux.run
$ sudo ./cuda_9.0.176.3_linux.run


ここまでの作業が終わったら、「~/.bashrc」に以下二行を追加して、パスをとおしておきます。

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


あるいは、以下のようなかたちで「CUDA_HOME」変数を使ってもO.K.です。

export CUDA_HOME="/usr/local/cuda-9.0"
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
export CPATH="$CUDA_HOME/include:$CPATH"


いったんターミナルを閉じるか、「$ source ~/.bachrc」コマンドを実行して、パスの変更を反映させます。
いくつかライブラリがたりない(「libGLU.so」「libX11.so」「libXi.so」「libXmu.so」「libGL.so」など)ことがあるので、必要な場合はあとで該当パッケージをインストールし、パスのとおった「/usr/lib」からライブラリファイルへシンボリックリンクをはっておけば問題ありません。

$ sudo apt install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev


ここまででインストール作業は完了です。
以下のコマンドを実行して、インストールした「CUDA 9.0」のバージョンが正しく表示されることを確認します。

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176


問題なければ、サンプルのビルドを実行します。
自動モードで「gcc-4.8」を使うよう、「update-alternatives」コマンドを使って、「gcc-4.8」「g++4.8」の優先順位をあげておきます。

$ cd ~/NVIDIA_CUDA-9.0_Samples
$ make


ビルド処理が終わったら、「~/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release/」以下に「deviceQuery」が生成するので、それを実行してみます。

$ ~/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release/deviceQuery


デバイスが検出され、「Result = PASS」と表示されていれば、インストールは正常に完了しています。

NVIDIA公式インストール手順書にも記載がありますが、「CUDA Toolkit 9.0」をrunfileを使ってインストールしたときは、以下のスクリプトを実行することでアンインストールできます。

$ sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl


なお、今回のインストール方法では必要ありませんが、NVIDIA製ドライバをrunfileを使ってインストールしたときのアンインストールコマンドは以下のとおりです。

$ sudo /usr/bin/nvidia-uninstall


6. 「cuDNN 7.0.5」のインストール
基本的には、NVIDIA公式の「cuDNN Installation Guide」の指示にしたがって、インストール作業をすすめていきます。
まず「cuDNN Download」ページへいき、必要におうじてログインしたうえで、「I Agree To the Terms of the cuDNN Software License Agreement」にチェックをいれます。
ここで「Archived cuDNN Releases」をクリックして、「cuDNN Archive」ページへ飛び、「Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0」をクリックしてタブをひらきます。
一覧表のなかから「cuDNN v7.0.5 Library for Linux」をクリックして、「cudnn-9.0-linux-x64-v7.tgz」をダウンロードします。
ダウンロードしたディレクトリへ移動してファイルを解凍のうえ、「CUDA 9.0」ライブラリをインストールした「/usr/local/cuda-9.0」ディレクトリ以下に配置し、読み込み権限をあたえておきます。

$ tar -zxvf cudnn-9.0-linux-x64-v7.tgz
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.0.5
cuda/lib64/libcudnn_static.a
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/
$ sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*


「cuDNN 7.1.4」が必要な場合は、「cuDNN Download」ページへいき、必要におうじてログインしたうえで、「I Agree To the Terms of the cuDNN Software License Agreement」にチェックをいれます。
「Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0」をクリックしてタブをひらいたら、「cuDNN v7.1.4 Library for Linux」をクリックして、「cudnn-9.0-linux-x64-v7.1.tgz」をダウンロードします。
以下の作業は、バージョンにかかわらず共通です。

$ tar -zxvf cudnn-9.0-linux-x64-v7.1.tgz
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.1.4
cuda/lib64/libcudnn_static.a
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/
$ sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*


「cuDNN」ライブラリの配置が完了したら、以下のコマンドで正しく配置されているかどうか確認します。

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"


インストールしたバージョンが正しく表示されれば、問題ありません。
最後に、debian packageからサンプルを抽出、ビルドしてみます。
自動モードで「gcc-4.8」を使うよう、「update-alternatives」コマンドを使って、「gcc-4.8」「g++-4.8」の優先順位をあげておきます。
ビルド処理が終わったら、「~/cudnn_samples_v6/mnistCUDNN」以下に「mnistCUDNN」が生成するので、それを実行してみます。

$ dpkg-deb -x libcudnn7-doc_7.0.5.15-1+cuda9.0_amd64.deb ./
$ cp -r /usr/src/cudnn_samples_v7/ ~/
$ cd ~/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN
.....
Test passed!


「Test passed!」と表示が出れば、「cuDNN 7.0」のインストール作業は完了しています。

7. 「NCCL 2.1.15」のインストール
「NCCL 2.1」をインストールするには、NVIDIA公式のNCCL 2.1.15 Installation Guideにしたがって、作業をすすめます。
「NCCL 2.2」を使いたい場合は、NCCL 2.2.13 Installation Guideのほうを参照します。

まず「NVIDIA Collective Communications Library (NCCL) Download Page」へいき、必要におうじてログインしたうえで、「I Agree To the Terms of the Software License Agreement」にチェックをいれます。
「Download NCCL v2.1.15, for CUDA 9.0, March 8, 2018」をクリックしてタブをひらき、「NCCL 2.1.15 O/S agnostic and CUDA 9」をクリックして、「nccl_2.1.15-1cuda9.0_x86_64.txz」をダウンロードします。
ダウンロードしたディレクトリに移動したら、ファイルを解凍のうえ、「/usr/local/nccl-2.1」ディレクトリ以下へ配置します。

$ tar xvf nccl_2.1.15-1+cuda9.0_x86_64.txz
$ sudo cp -r nccl_2.1.15-1+cuda9.0_x86_64 /usr/local/nccl-2.1


最後に、「.bashrc」に以下の行を追加し、「/usr/local/nccl-2.1」へパスをとおしておきます。

export NCCL_ROOT="/usr/local/nccl-2.1"
export CPATH=$NCCL_ROOT/include:$CPATH
export LD_LIBRARY_PATH=$NCCL_ROOT/lib/:$LD_LIBRARY_PATH
export LIBRARY_PATH=$NCCL_ROOT/lib/:$LIBRARY_PATH


いったんターミナルを閉じるか、「$ source ~/.bachrc」コマンドを実行して、パスの変更を反映させます。

8. 「TensorRT 3.0.4」インストール
「PhoenixGo」では、オプションとして「TensorRT」がサポートされており、バージョンとしては「TensorRT 3.0.4」が推奨されています。
NVIDIA TensorRT 3.x Download」ページへいき、必要におうじてログインしたうえで、「I Agree To the Terms of the Software License Agreement」にチェックをいれます。
「Tar File Install Packages」リストのなかの「TensorRT 3.0.4 for Ubuntu 16.04 and CUDA 9.0 tar package」をクリックして、「TensorRT-3.0.4.Ubuntu-16.04.3.x86_64.cuda-9.0.cudnn7.0-tar.gz」ファイルをダウンロードします。
ダウンロードしたディレクトリへ移動して、ファイルを解凍のうえ、適当なディレクトリ(ここでは「/usr/local/TensorRT-3.0.4」)に配置します。

tar xzvf TensorRT-3.0.4.Ubuntu-16.04.3.x86_64.cuda-9.0.cudnn7.0.tar.gz
sudo mv TensorRT-3.0.4 /usr/local


「.bashrc」に以下の行を追加し、「TensorRT-3.0.4」ディレクトリへパスをとおしておきます。

export LD_LIBRARY_PATH=/usr/local/TensorRT-3.0.4/lib:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


あとは、NVIDIA公式の「TensorRT 3.0.4 Installation Guide」の手順どおり、「Python TensorRT」パッケージと「Python UFF」パッケージをインストールします。

9. 「CUPTI」パス登録
「CUPTI」は「CUDA 9.0 Toolkit」にふくまれているため、あらためてインストールする必要はありませんが、パスをとおしておく必要はあります。
「.bashrc」に以下の一行を追加し、いったんターミナルを閉じるか「$ source ~/.bachrc」コマンドを実行するかして、パスの変更を反映させます。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64


以上で、「Ubuntu 18.04 TLS」上に「CUDA」環境を構築する作業は完了し、GPU版「TensorFlow」やGPU版「PyTorch」を導入する準備がととのったことになります。


参考ウェブページ一覧表(順不同)

https://docs.nvidia.com/cuda/archive/9.0/
https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html
https://docs.nvidia.com/cuda/index.html
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
https://medium.com/@taylordenouden/installing-tensorflow-gpu-on-ubuntu-18-04-89a142325138
https://carterturn.com/h/Guides/NVIDIA%20CUDA%209.1%20with%20GCC%207.2
https://devtalk.nvidia.com/default/topic/1032269/cuda-9-gcc-7-compatibility-with-nvcc/
https://medium.com/@Inoryy/compiling-pytorch-4-0-on-ubuntu-17-10-with-cuda-9-0-and-python-3-6-6769a0df56d5
https://github.com/nathtest/Tutorial-Ubuntu-18.04-Install-Nvidia-driver-and-CUDA-and-CUDNN-and-build-Tensorflow-for-gpu
https://stackoverflow.com/questions/50213089/linking-error-with-gcc-g-7-3-0-on-ubuntu-18-04/50232797
https://deepinsider.jp/tutor/prepareenv/gpuubuntu
posted by hatakazu at 10:55| Comment(0) | Linuxとか | 更新情報をチェックする

2018年07月20日

Google開発のビルドツール「Bazel」のインストールと使いかた

「TensorFlow」をソースからインストールする場合、ビルドツールとしてGoogleが開発した「Bazel」を使用する必要があります。
hatakazuが動かしたいと思っているコンピュータ囲碁プログラム「AQ」と「PhoenixGo」も、「TensorFlow」フレームワークにもとづいているので、ソースから「Bazel」を使ってビルドすることになっています。
そういうわけで、あらかじめ「Bazel」をインストールしておくことにしました。

Bazel: プロジェクトページGitHubレポジトリインストール手順

ここでは、「Ubuntu 18.04 LTS 日本語 Remix」に「Bazel」をインストールする方法と、基本的な使いかたについて記述していきます。

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10) + 1TB 5400rpm HDD (Ubuntu18.04)
--

「Bazel」を動かすために必要になるライブラリを、あらかじめインストールしておきます。

$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python


なお、「Bazel」の動作には「JDK 8」が要求されますが、「Bazel」標準インストールパッケージには必要な「JDK」ライブラリがふくまれています。
そのため、「JDK 8」がインストールされているかどうか、互換性のあるバージョンかどうか、などを気にする必要はありません。

2. 「Bazel」インストールファイルのダウンロード
「Bazel」をインストールするには、いくつかの方法がありますが、ここでは推奨されているバイナリからのインストールをおこないます。
「Bazel」の最新バージョンは「0.15.0」ですが、「Bazel」の場合はバージョンが完全に上位互換にはなってないようで、過去のバージョンでしかビルドできないというケースもよくあるそうです。
そのため、ここでは「PhoenixGo」GitHubレポジトリにて動作確認ずみとされている、「0.11.1」をインストールすることにします。
「Bazel」GitHubレポジトリ」から「Releases」へすすみ、「0.11.1」ページをひらきます。
そこで、64bit Linux用の「bazel-0.11.1-installer-linux-x86_64.sh」をクリックして、該当するインストールスクリプト「bazel-0.11.1-installer-linux-x86_64.sh」をダウンロードします。

3. 「Bazel」のインストール
ファイルをダウンロードしたディレクトリへ移動し、ダウンロードしたファイルに実行権限を付与したうえで、コマンドラインから実行します。
そのさい、「Install Bazel on Ubunt」ページで推奨されているとおり、「--user」フラグをつけてユーザ環境へインストールするものとします。

$ chmod +x bazel-0.11.1-installer-linux-x86_64.sh
$ ./bazel-0.11.1-installer-linux-x86_64.sh --user


インストールが完了したら、「~/.bashrc」に以下の行を追加します。

export PATH="$PATH:$HOME/bin"


いったんターミナルを閉じてからあらためて開き(もしくは「$ source ~/.bashrc」コマンドを実行)、以下のコマンドを実行して、「Bazel」のバージョンが正しく表示されることを確認します。

$ bazel version
Build label: 0.11.1
.....


4. 「Bazel」によるビルド方法

基本的には、以下のコマンドによって、ビルドプロセスを走らせます。

$ bazel build


「--config=opt (-march=native by default)」「--config=monolithic」「--config=cuda」など、必要におうじてオプションを指定します。
おなじソースツリー内で、たとえばGPUバージョンとCPUバージョンなどの設定を切りかえる場合、「$ bazel clean」を実行してから「$ bazel build」へすすむ必要があります。
「Bazel」がビルド作業にもちいるRAM容量を限定するために、「--local_resources 2048,.5,1.0」などのオプションを指定することもできます。

Build Tutorial - C++
C++ and Bazel
User Manual

「GCC 5」以降のシステムでGPU対応「TensorFlow」をソースからインストールする場合など、「bazel build --config=opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=cuda」などのように、「--cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"」を追加してビルドする必要があります。
これによって、「GCC 5」以降でパッケージをビルドするさいに、古いABIを使う「GCC 4」でビルドされたバイナリとの互換性をたもつことができます。


5. 「Bazel」のアンインストール
Bazelをアンインストールするには、「~/.bazel」「~/.bazelrc」「~/.cache/bazel」を手動で削除します。

$ rm -rf ~/.bazel
$ rm -rf ~/.bazelrc
$ rm -rf ~/.cache/bazel


「~/bin」に「~/.bazel/bin/bazel」へのショートカットを作成した場合は、これも手動で削除します。

$ rm ~/bin/bazel



参考ウェブページ一覧表(順不同)

https://www.tensorflow.org/install/install_sources
posted by hatakazu at 21:03| Comment(0) | Linuxとか | 更新情報をチェックする

2018年07月18日

仮想環境管理ツール「Virtualenv」を導入する

「TensorFlow」や「PyTorch」などの機械学習フレームワークを動かすにあたって、Pythonのバージョンなどにおうじて仮想環境を構築し、それぞれの仮想環境内部で各種設定をおこなうのが一般的です。
hatakazuもこの方法を使っていますが、その理由は単純に「よくわからないでいじっているのでかならず問題が発生するが、そうしたときに仮想環境ごと削除してあらたな仮想環境を構築しなおすことで、かんたんにやりなおすことができるから」です。
仮想環境の管理によく使われるのは、「Virtualenv」と「Anaconda」だと思います。

Virtualenv: プロジェクトページGitHubレポジトリ
Anaconda: ホームページダウンロードページANACONDA CLOUD

これら(とくに「Anaconda」)を「仮想環境管理ツール」と呼ぶのが正しいのかどうか、よくわからないところはありますが、とりあえずhatakazuにとって役にたつ部分(複数の仮想環境を構築してそれぞれ独立の環境設定で作業できるようにする機能)についてのみまとめておきます。
ここでは、「Ubuntu 18.04 LTS 日本語 Remix」上に「Virtualenv」を導入し、仮想環境を管理する方法を記述します。

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10) + 1TB 5400rpm HDD (Ubuntu18.04)
--

2. 「Virtualenv」インストール
いまのところ、基本的にはシステムが「Python 3.6」ベースなので、「python3」系の「Virtualenv」を導入していきます。

$ sudo apt install python3-pip python3-dev python-virtualenv


上記のコマンドにより、「python3」系の必要なパッケージがすべてインストールされ、「Virtualenv」を動かすための準備がととのいました。

3. 「Vertualenv」仮想環境の管理
「Vertualenv」仮想環境を管理するために、「~/virtualenv」ディレクトリを作成し、そのなかに仮想環境「environment_name」を構築していきます。

$ mkdir ~/virtualenv
$ cd ~/virtualenv
$ virtualenv --system-site-packages -p python3 environment_name
「--system-site-packages」を指定しないと、デフォルトの「--no-site-packages」が適用され、システム環境にインストールされたパッケージを使わない仮想環境が作成されます。


作成した仮想環境「environment_name」を有効化する場合は、以下のコマンドを使います。

$ source ~/virtualenv/environment_name/bin/activate
(environment_name) $ <- プロンプトに「(environment_name)」と追加され、「Virtuelenv」の「environment_name」環境にいることがわかる。


現在の仮想環境を無効化し、システム環境に戻る。

(environment_name) $ deactivate
$ <- プロンプトから「(environment_name)」が消え、通常のシステム環境にもどったことがわかる。


不要になった仮想環境を削除するには、該当の仮想環境を無効化したうえで、仮想環境名のディレクトリごと削除します。

$ rm -rf ~/virtualenv/environment_name


4. 「pip」コマンドの整理

「pip」じたいのアップデート。
$ pip install -U pip

現在の環境にインストールされているパッケージのリスト。
$ pip list

更新可能なパッケージをマークしてパッケージリストを表示。
$ pip list -o

パッケージをインストールする。
$ pip install package_name

パッケージをアンインストールする。
$ pip uninstall package_name

パッケージをアップデートする。
$ pip install -U package_name

パッケージをインストールしないでダウンロードだけする。
$ pip install package_name -d target_directory

ダウンロードしておいたパッケージをインストールする。
$ pip install /target_directory/package_name

インストールされているパッケージの情報を表示する。
$ pip show package_name


5. 「Virtualenv」のアンインストール
通常のパッケージとおなじく、以下の「apt」コマンドでかんたんにアンインストールできます。

$ sudo apt remove python-virtualenv
$ sudo apt autoremove



参考ウェブページ一覧表(順不同)

https://virtualenv.pypa.io/en/stable/
https://github.com/pypa/virtualenv
posted by hatakazu at 21:49| Comment(0) | Linuxとか | 更新情報をチェックする

2018年07月17日

仮想環境管理ツール「Anaconda」を導入する

「TensorFlow」や「PyTorch」などの機械学習フレームワークを動かすにあたって、Pythonのバージョンなどにおうじて仮想環境を構築し、それぞれの仮想環境内部で各種設定をおこなうのが一般的です。
hatakazuもこの方法を使っていますが、その理由は単純に「よくわからないでいじっているのでかならず問題が発生するが、そうしたときに仮想環境ごと削除してあらたな仮想環境を構築しなおすことで、かんたんにやりなおすことができるから」です。
仮想環境の管理によく使われるのは、「Virtualenv」と「Anaconda」だと思います。

Virtualenv: プロジェクトページGitHubレポジトリ
Anaconda: ホームページダウンロードページANACONDA CLOUD

これら(とくに「Anaconda」)を「仮想環境管理ツール」と呼ぶのが正しいのかどうか、よくわからないところはありますが、とりあえずhatakazuにとって役にたつ部分(複数の仮想環境を構築してそれぞれ独立の環境設定で作業できるようにする機能)についてのみまとめておきます。
ここでは、「Ubuntu 18.04 LTS 日本語 Remix」上に「Anaconda」を導入し、仮想環境を管理する方法を記述します。

1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10) + 1TB 5400rpm HDD (Ubuntu18.04)
--

2. 「Anaconda」インストールファイルのダウンロード
「Anaconda」をインストールするには、いくつかの方法がありますが、ここでは推奨されているバイナリからのインストールをおこないます。
「Anaconda」の最新バージョンは「5.2.0」です。
Home - Anaconda」から「Download」ボタンを押して「Downloads Anaconda」ページへすすみ、「「Python 3.6 version」用「64-Bit (x86) Linux Installer」」をクリックして、該当するインストールスクリプト「Anaconda3-5.2.0-Linux-x86_64.sh」をダウンロードします。

3. 「Anaconda」のインストール
ファイルをダウンロードしたディレクトリへ移動し、ダウンロードしたファイルに実行権限を付与したうえで、コマンドラインから実行します。
そのさい、「Installing on Linux」ページで推奨されているとおり、ユーザ環境へインストールするものとします。

$ chmod +x Anaconda3-5.2.0-Linux-x86_64.sh
$ bash ./Anaconda3-5.2.0-Linux-x86_64.sh


ライセンス条項への同意を求められるので、全文を表示してから「yes」と回答します。
インストール先は、ユーザ環境へインストールする場合は標準で「/home/username/anaconda3」になっているので、そのまま「Enter」キーを押します。
途中で「~/.bashrcにPATHを追加するかどうか」確認を求められるので、そこは確実に「No」と回答します。

Do you accept the license terms? [yes|no]
[no] >>> yes

Anaconda3 will now be installed into this location:
/home/username/anaconda3

- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below

[/home/username/anaconda3] >>>
PREFIX=/home/username/anaconda3
.....
installation finished.
Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/username/.bashrc ? [yes|no]
[no] >>> no

You may wish to edit your .bashrc to prepend the Anaconda3 install location to PATH:

export PATH=/home/username/anaconda3/bin:$PATH

Thank you for installing Anaconda3!

===========================================================================

Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
>>> no


インストールが完了したら、「~/.bashrc」に以下の行を追加します。

. /home/username/anaconda3/etc/profile.d/conda.sh
かつては、「~/.bashrc」に「export PATH="/home/username/anaconda3/bin:$PATH"」行を追加し、ユーザログインにともなって自動的に「Anaconda」環境がシステム環境より優先されるようにしていました。
しかし現在ではほかの仮想環境を使うこともあり、ふつうは「Anaconda」環境は表に出てこない状態でログインし、必要におうじて「$ conda activate」「$ conda deactivate」コマンドでシステム環境と切りかえるほうが便利だ(そして混乱もすくない)と思います。


いったんターミナルを閉じてからあらためて開き(もしくは「$ source ~/.bashrc」コマンドを実行)、以下のコマンドを実行して、「ANACONDA NAVIGATOR」が正常に起動することを確認します。

$ conda activate
$ anaconda-navigator
$ conda deactivate


4. 「Anaconda」仮想環境の管理
「Anaconda」ベース環境を有効化するには、以下のコマンドを使います。

$ conda activate
(base) $ <- プロンプトに「(base)」と追加され、「Anaconda」の「base」環境にいることがわかる。


「Anaconda」ベース環境を無効化するには、以下のコマンドを使います。
(base) $ conda deactivate
$ <- プロンプトから「(base)」が消え、通常のシステム環境にもどったことがわかる。


あたらしく仮想環境「environment_name」を作成したい場合は、仮想環境の名前と同時に、使いたいPythonのバージョンを指定することができます。

$ conda create --name environment_name python=3.6


「anaconda」オプションをつけることで、現在の「Anaconda」ベース環境のパッケージをすべてインストールした状態で、仮想環境を作成できます。

$ conda create --name environment_name python=3.6 anaconda


作成した仮想環境を有効化する場合は、以下のコマンドを使います。

$ conda activate environment_name
(environment_name) $ <- プロンプトに「(environment_name)」と追加され、「Anaconda」の「environment_name」環境にいることがわかる。


現在の仮想環境にインストールされているパッケージのリスト表示。

(environment_name) $ conda list


現在の仮想環境の情報を表示する。

(environment_name) $ conda info


現在の仮想環境を無効化し、システム環境に戻る。

(environment_name) $ conda deactivate
$ <- プロンプトから「(environment_name)」が消え、通常のシステム環境にもどったことがわかる。


不要になった仮想環境を削除する。

$ conda remove --name environment_name --all


5. 「Anaconda」で使うコマンドの整理

「Anaconda」じたいのアップデート。
$ conda update conda

登録されている仮想環境のリストを見る。
$ conda info --envs

指定した仮想環境にインストールされているパッケージのリストを見る。
$ conda list --name environment_name

パッケージをインストールする。
$ conda install package_name

パッケージをアンインストールする。
$ conda remove package_name

指定したチャンネルのパッケージをインストールする。
$ conda install --channel channel_name package_name

指定したチャンネルのパッケージをアンインストールする。
$ conda remove --channel channel_name package_name

パッケージを検索する。
$ conda search package_name

指定したチャンネルのパッケージを検索する。
$ conda search --channel channel_name package_name


6. 「Anaconda」のアンインストール
アンインストール用のツール「anaconda-clean」を使って、「Anaconda」をアンインストールします。

$ conda install anaconda-clean
$ anaconda-clean


そのあとで、残ったディレクトリなどをきれいに消してしまえば、アンインストール作業は完了です。

$ rm -rf ~/anaconda3
$ rm -rf ~/.anaconda
$ rm -rf ~/.anaconda_backup


「~/.bashrc」に「export PATH="/home/username/anaconda3/bin:$PATH"」や「. /home/hatanaka/anaconda3/etc/profile.d/conda.sh」などの記述がある場合は、それも削除しておきます。


参考ウェブページ一覧表(順不同)

https://deepinsider.jp/tutor/prepareenv/gpuubuntu
https://docs.anaconda.com/anaconda/faq#how-do-i-get-the-latest-anaconda-with-python-3-5
https://docs.anaconda.com/anaconda/faq#distribution-faq-linux-path
https://www.digitalocean.com/community/tutorials/how-to-install-the-anaconda-python-distribution-on-ubuntu-16-04
posted by hatakazu at 21:29| Comment(0) | Linuxとか | 更新情報をチェックする

2018年07月15日

「Ubuntu 18.04 LTS 日本語 Remix」に「CUDA 8.0」+「cuDNN 6.0」をインストールする

Ubuntu18.04上で「CUDA 8.0」+「cuDNN 6.0」環境が必要になった場合、Ubuntu16.04用インストールファイルをそのまま使うことはできません。
Ubuntu16.04用のdebファイルもrunファイルも、Ubuntu18.04上ではエラーをともない、インストールを完了することはできないからです。
しかし、Ubuntu16.04用のdebファイルもしくはrunファイルを解凍し、抽出したファイルを手動で配置してやることで、Ubuntu18.04上に「CUDA 8.0」+「cuDNN 6.0」環境を導入することは可能です。

1. コンパイラ設定
Ubuntu18.04では「gcc-7」が標準ですが、「CUDA 8.0」は「gcc-7」と互換性がなく、コンパイル作業には「gcc-5」以下が必要です。
そのため、「gcc-5」「g++-5」をインストールのうえ「update-alternatives」コマンドを使って「gcc-7」「g++-7」より優先順位をあげて、一時的に自動モードで「gcc-5」「g++-5」が使われるように設定します。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70

$ sudo apt-get install gcc-5 g++-5

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 80
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 80


ただし、「CUDA」を使う作業が終わったら「gcc-5」「g++-5」の優先順位をさげて、自動モードでシステム標準の「gcc-7」「g++-7」が使われるように設定をもどしておきます。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50


GPU版「TensorFlow」をソースからインストールする場合、GPU版「PyTorch」をソースからインストールする場合、「gcc-4.8」が必要になるようです。
そうしたケースでは、「gcc-4.8」「g++-4.8」をインストールのうえ「update-alternatives」コマンドを使って優先順位をあげて、一時的に自動モードで「gcc-4.8」「g++-4.8」が使われるように設定します。

$ sudo apt-get install gcc-4.8 g++-4.8

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 90
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90


おなじく、インストール作業が終わったら「gcc-4.8」「g++-4.8」の優先順位をさげて、自動モードでシステム標準の「gcc-7」「g++-7」が使われるように設定をもどしておきます。

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 48


2. 「CUDA 8.0」インストール

CUDA Toolkit 8.0 - Feb 2017」ページで「Linux」「x86_64」「Ubuntu」「16.04」「runfile (local)」を選択し、「Download Installers for Linux Ubuntu 16.04 x86_64」タブを開きます。
そこの表示にしたがって、「Base Installer」の「ダウンロード」ボタンをクリックして「cuda_8.0.61_375.26_linux.run」を、「Patch 2 (Released Jun 26, 2017)」の「ダウンロード」ボタンをクリックして「cuda_8.0.61.2_linux.run」をダウンロードします。
まずは、ベースインストーラのrunファイルを解凍し、ツールキット、サンプル、ドライバそれぞれのrunファイルをえます。

$ chmod +x cuda_8.0.61_375.26_linux.run
$ ./cuda_8.0.61_375.26_linux.run --extract=absolute_pass_to_the_target_directory
$ cd absolute_pass_to_the_target_directory
$ ls
cuda-linux64-rel-8.0.61-21551265.run
cuda-samples-linux-8.0.61-21551265.run
NVIDIA-Linux-x86_64-375.26.run


必要なファイルを取りだすため、さらにそれぞれのファイルを解凍し、ツールキットを「/usr/local/cuda-8.0」ディレクトリへ配置、サンプルを「~/NVIDIA_CUDA-8.0_Samples」ディレクトリへ配置します。

$ sudo move cuda-linux64-rel-8.0.61-21551265.run /usr/local/cuda-8.0
$ sudo /usr/local/cuda-8.0/cuda-linux64-rel-8.0.61-21551265.run --tar mxvf # ツールキットファイルを「/usr/local/cuda-8.0」に展開。
$ mv cuda-samples-linux-8.0.61-21551265.run /home/username/NVIDIA_CUDA-8.0_Samples
$ ~/NVIDIA_CUDA-8.0_Samples/cuda-samples-linux-8.0.61-21551265.run --tar mxvf # サンプルファイルを「~/NVIDIA_CUDA-8.0_Samples」に展開。
$ ./NVIDIA-Linux-x86_64-375.26.run -x #ドライバファイル抽出。今回は不要。


ここまでの作業が完了したら、以下のコマンドを実行して、「/usr/local/cuda」からリンクをはっておきます。

$ sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda


そして、「~/.bashrc」に以下二行を追加して、パスをとおしておきます。

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


いくつかライブラリがたりない(「libGLU.so」「libX11.so」「libXi.so」「libXmu.so」「libGL.so」など)ので、必要な場合はあとで該当パッケージをインストールし、パスのとおった「/usr/lib」からライブラリファイルへシンボリックリンクをはっておけば問題ありません。

$ sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev


つづいて「CUDA 8.0」パッチファイルも解凍し、取りだしたファイルを「/usr/local/cuda-8.0」ディレクトリの該当場所へ移動します。

$ chmod +x cuda_8.0.61.2_linux.run
$ ./cuda_8.0.61.2_linux.run --tar mxvf
$ sudo cp payload/cuda-linux64-mixed-rel-nightly/lib64/libcublan* /usr/local/cuda-8.0/lib64
$ sudo cp payload/cuda-linux64-mixed-rel-nightly/lib64/libnvblas* /usr/local/cuda-8.0/lib64


以下のコマンドを実行して、インストールした「CUDA 8.0」のバージョンが正しく表示されることを確認します。

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61


問題なければ、サンプルのビルドを実行します。
自動モードで「gcc-5」を使うよう、「update-alternatives」コマンドを使って、「gcc-5」「g++5」の優先順位をあげておきます。

$ cd ~/NVIDIA_CUDA-8.0_Samples
$ cd make


ビルド処理が終わったら、「~/NVIDIA_CUDA-8.0_Samples/bin」以下に「deviceQuery」が生成するので、それを実行してみます。
デバイスが検出され、「Result = PASS」と表示されていれば、インストールは正常に完了しています。

*****参考:必要なファイルをdebian packageから取りだす場合*****
dpkg-deb -x cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb output_dir


2. 「cuDNN 6.0 for CUDA 8.0」インストール

cuDNN Archive」ページから「Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0」をクリックし、開いたタブのなかの「cuDNN v6.0 Library for Linux」をクリックして「cudnn-8.0-linux-x64-v6.0.tgz」をダウンロードします。
ダウンロードしたファイルを解凍のうえ、それぞれ適切な場所へ配置、読み込み権限をあたえておきます。

$ tar zxvf cudnn-8.0-linux-x64-v6.0.tgz
cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.6
cuda/lib64/libcudnn.so.6.0.21
cuda/lib64/libcudnn_static.a
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
$ sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*


以下のような指示がありますが、今回は「CUDA 8.0」とおなじディレクトリにインストールしたので、すでにパスはとおっています。
べつの場所にインストールした場合は、「cdDNN 6.0」ライブラリを設置したディレクトリへ、あらためてパスをとおしておく必要があります。

LINUX
cd /lib
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
Add to your build and link process by adding -I/include to your compile line and -L/lib -lcudnn to your link line.


「cuDNN」ライブラリの配置が完了したら、以下のコマンドで正しく配置されているかどうか確認します。

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 6
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 21
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"


インストールしたバージョンが正しく表示されれば、問題ありません。
最後に、debian packageからサンプルを抽出、ビルドしてみます。
自動モードで「gcc-5」を使うよう、「update-alternatives」コマンドを使って、「gcc-5」「g++5」の優先順位をあげておきます。
ビルド処理が終わったら、「~/cudnn_samples_v6/mnistCUDNN」以下に「mnistCUDNN」が生成するので、それを実行してみます。
「Test passed!」と表示が出れば、「cuDNN 6.0」のインストール作業は完了しています。

$ dpkg-deb -x libcudnn6-doc_6.0.21-1+cuda8.0_amd64.deb ./
$ cp -r usr/src/cudnn_samples_v6/ ~/
$ cd ~/cudnn_samples_v6/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN
...
Test passed!



参考ウェブページ一覧表(順不同)

https://devtalk.nvidia.com/default/topic/1032269/cuda-9-gcc-7-compatibility-with-nvcc/
https://medium.com/@Inoryy/compiling-pytorch-4-0-on-ubuntu-17-10-with-cuda-9-0-and-python-3-6-6769a0df56d5
https://github.com/nathtest/Tutorial-Ubuntu-18.04-Install-Nvidia-driver-and-CUDA-and-CUDNN-and-build-Tensorflow-for-gpu
https://stackoverflow.com/questions/50213089/linking-error-with-gcc-g-7-3-0-on-ubuntu-18-04/50232797
posted by hatakazu at 15:28| Comment(0) | Linuxとか | 更新情報をチェックする

2018年06月28日

「Ubuntu 18.04 LTS 日本語 Remix」インストール後の環境整備

「Ubuntu 18.04 LTS 日本語 Remix」をインストールしたあと、hatakazuの使用形態にあわせて環境をととのえた部分を、以下に列挙しておきます。

1. 時刻設定
Windows10とのデュアルブート環境では、標準ではUCTとなるUbuntu18.04の時計を、Windows10とおなじ現地時間に設定する必要があります。
UCTのままだと、Windows10とUbuntu18.04をいったりきたりするたびに、時計がどんどんずれていってしまうからです。
以下のコマンドを実行することで、「/etc/adjtime」が作成されて、Ubuntu18.04を現地時間で動かすことができます。
UCTにもどすときは、最後の「1」を「0」にして、おなじコマンドを実行すればO.K.です。

$ sudo timedatectl set-local-rtc 1


2. ターミナル
「Ctrl」+「Alt」+「T」で端末が開くので、ランチャにあらわれたアイコンを右クリックして、ランチャに固定しておきます。

3. 日本語まわりの設定
「Mozc」がインストールされてなければインストールし、入力メソッドを「Mozc」に設定します。

$ sudo apt install ibus-mozc


4. スーパーユーザのパスワード設定
以下のコマンドを実行し、必要になる場合にそなえて、あらかじめスーパーユーザのパスワードを設定しておきます。

$ sudo passwd root


5. 設定画面
dock位置変更、アイコンサイズ変更、タッチパッドのエッジスクロール有効化、など必要におうじて。

6. Javaランタイムのインストール
せっかくなので、ランタイムをふくむ「Java Development Kit」をまるごとインストールしておきます。
Java SE Development Kit 8 Downloads」ページから「jdk-8u171-linux-x64.tar.gz」をダウンロード、解凍して「/usr/lib/jdk1.8.0_171」に設置します。

$ tar xzvf jdk-8u171-linux-x64.tar.gz
$ sudo mv jdk1.8.0_171 /usr/lib


そのあと、エディタで「~/.bashrc」に以下二行を追記して、パスをとおしておきます。

export JAVA_HOME=/usr/lib/jdk1.8.0_171/
export PATH=$PATH:$JAVA_HOME/bin


「$ java -version」コマンドを実行して、バージョン情報が正しく表示されれば、パスの設定はO.K.です。

7. 「google-chrome-stable」インストール
パソコン版Chrome」サイトで「Chromeをダウンロード」ボタンを押し、「64 bit .deb (Debian / Ubuntu 版)」を選択してから、「同意してインストール」ボタンを押します。
「google-chrome-stable_current_amd64.deb」ファイルをダウンロードしたら、ダウンロードしたフォルダへ移動して、以下のコマンドを入力してインストールします。
ターミナルから「google-chrome-stable」コマンドで起動できるようになるので、ランチャにあらわれたアイコンを右クリックして、ランチャに固定しておきます。

$ sudo apt install ./google-chrome-stable_current_amd64.deb


--別法--
$ sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
$ sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
$ sudo apt update
$ sudo apt install google-chrome-stable

--

「google-chrome-stable」を起動したときに、「NSS」の更新を要求するエラーメッセージが出た場合、要求されたパッケージをインストールすれば起動できるようになります。

$ sudo apt install libnss3


8. 「exfat」フォーマット対応
exfat形式のデバイス(SDカードなど)をあつかえるよう、必要なパッケージをインストールしておきます。

$ sudo apt install exfat-fuse exfat-utils


たとえばSDカードのデバイス名が「/dev/sd」だとしたら、「mkfs.exfat /dev/sd」コマンドで、SDカードをexfat形式でフォーマットできるようになります。

9. 「MTP」対応
Android端末とのMTP接続には、MTP関連のファイルをまとめてインストールします。

$ sudo apt install mtpfs mtp-tools gmtp


10. 「7z」対応
このごろサイズの大きいファイルを配布するのに、「7z」形式が増えてきているので、それに対応する「p7zip」パッケージをインストールします。
これにより、「$ p7zip -d xxxxx.7z」コマンドで「7z」形式のファイルを解凍できるようになります。

$ sudo apt install p7zip p7zip-full


11. パッケージ管理ソフト「synaptic」
以下のコマンドでインストール、「$ synaptic」コマンドで起動して、これもランチャに固定しておきます。

$ sudo apt install synaptic


12. 音楽管理ソフト「gtkpod」
初代iPod Shuffleに音楽ファイルを転送するため、「gtkpod」をインストールします。

$ sudo apt install gtkpod


初代iPod Shuffleが自動的に認識されないときは、「synaptic」を起動して、初代iPod Shuffleの認識を妨げている「libgpod-common」を削除してやればO.K.です。
iPodが認識されているのに「gtkpod」にロードできない場合は、一度iPod内のファイルをすべて削除してから「gtkpod」へつなぎ、「Tools」 -> 「Create iPod's Directories...」でiPod内のディレクトリを再構築する必要があるかもしれません。
posted by hatakazu at 21:58| Comment(0) | Linuxとか | 更新情報をチェックする

2018年06月27日

「Ubuntu 18.04 LTS 日本語 Remix」のインストール、Windows10とのデュアルブート化

1. 基本的なOS構成設計
Inspiron14はWindows10プリインストールモデル、記憶領域は「SSD 128GB」+「HDD 1TB」で、最初は以下のようなかたちになっています。

「SSD 128GB」:起動ディスク、Windows Boot Manager -> Windows10起動。
「HDD 1TB」:データ領域。

今回は、「Ubuntu 18.04 LTS 日本語 Remix」をインストールして、「Windows10 Home 64bit」とのデュアルブート環境を構築します。
hatakazuは自宅では基本的にLinuxしか使わないので、デフォルトでUbuntu18.04が立ちあがるかたちにしておき、必要なときだけWindows10を起動できればO.K.です。
そのため、以下のような設計としました。

「SSD 128GB」:Windows Boot Manager -> Windows10起動。
「HDD 1TB」:起動ディスク、GRUB -> Ubuntu18.04起動。Windows10と共有するデータ領域。

GRUB画面でWindows Boot Managerを呼びだすことができるので、Windows10が必要な場合はそこから起動、通常は「Enter」キー押下によって(もしくは一定時間経過後に自動的に)Ubuntu18.04が立ちあがる仕様です。
この設計にしたおおきな理由は、「HDD 1TB」のUbuntu18.04環境が「SSD 128GB」のWindows10環境に依存してないため、Ubuntu18.04がわの設定変更やOS再インストールなどのさいにWindows10がわからなんの制約も受けないことです。
場合によっては、「HDD 1TB」を取りはずしたり交換したりしても、Windows10はまったく問題なく起動するわけです。
その意味で、非常に自由度が高く、hatakazuのようにいろいろ遊んでみたいひとにとっては最適なデュアルブート構成になっていると思います。

2. 「Ubuntu 18.04 LTS 日本語 Remix」インストール用USBメモリの作成
Ubuntu Japanese Team」サイトから、最新の長期サポート版日本語対応バージョン「Ubuntu 18.04 LTS 日本語 Remix」のイメージファイル「ubuntu-ja-18.04-desktop-amd64.iso」を取得します。
イメージファイルをダウンロードしたディレクトリへ移動して、USBメモリを挿入したあと、以下のコマンドでUSBメモリのデバイス名を確認します。

$ sudo fdisk -l


ハードディスク一台の構成であれば、USBメモリは「/dev/sdb」などに割りあてられていることが多いと思います。
USBメモリに余計なパーティションが設定してあると、インストールイメージを書きこむさいに失敗することがあるので、あらかじめパーティション構成を確認しておきます。

$ sudo fdisk /dev/sdb


「d」コマンドで既存パーティションを削除、「n」コマンドで新規パーティションを作成、USBメモリ全体をひとつの基本パーティションにしておきます。
イメージを書きこむためにはddコマンドを使用しますが、「if」オプションで対象となるイメージファイルを、「of」オプションで書きこみ先のデバイスを指定します。

$ sudo dd if=./bionic-desktop-amd64.iso of=/dev/sdb


これで「Ubuntu 18.04 LTS 日本語 Remix」インストール用USBメモリができました。

3. 「Ubuntu 18.04 LTS 日本語 Remix」インストール
USBメモリを挿入のうえInspironの電源を入れ、「F12」を押下してBoot Menu画面を開き、挿入したUSBメモリからブートします。
表示されるGRUB画面で「Try Ubuntu without installing」オプションを選択、デスクトップが表示されるところまでいけば、Ubuntu18.04がこのコンピュータ上で問題なく動作することが確認できたということです。
デスクトップ上にある「Ubuntu 18.04 のインストール」アイコンをダブルクリックして、インストールを開始します。
インストール手順は、たいていのLinuxディストリビューションでだいたいおなじような流れになっていますが、Ubuntu18.04の場合はとくにかんたんです。
ただし、Windows10とのデュアルブートにする場合は、「インストールの種類」画面ですこし気をつけないといけません。
「それ以外」ボタンにチェックをいれて「続ける」をクリック、パーティション設定画面へすすみます。
Ubuntu18.04をインストールする領域として「HDD 1TB」上におよそ300GBを確保したので、そのうち15GBていどを「swap area」に、残りをすべて「/」に割り当てることにします。
そしてブートローダは「HDD 1TB」のMBRにインストール、Setup Utilityで優先起動ドライブに設定して最初にGRUBが起動するようにし、必要なときだけGRUBからWindows Boot Managerを選択して「SSD 128GB」のWindows10を起動する設計でした。
そのため、「インストールの種類」画面では、最終的に以下のようなパーティション構成になります。

/dev/sda1 ntfs 650GBくらい(Ubuntu18.04とWindows10で共有するデータ領域)
/dev/sda2 ext4 / 280GBくらい
/dev/sda3 swap 15GBくらい

ブートローダをインストールするデバイス
/dev/sda


Windows10がプリインストールされている「SSD 128GB」は、「/dev/sdc」として認識されていますが、これにはまったくさわらずそのままにしておきます。
「インストール」をクリックすると、タイムゾーンやキーボードやユーザの設定をへて、インストールがはじまります。
インストールが終わったら、インストールメディアを抜いてから再起動するように指示されるので、UBSメモリを取りはずしてから「Enter」キーを押下してコンピュータをリブートさせます。
起動時に「F2」キーを押してSetup Utility画面を開き、「HDD 1TB」を優先起動するよう指定します。
それによってまずGRUB画面が開くようになるので、GRUB画面でUbuntu18.04(デフォルト)とWindows10(Windows Boot Managerを指定)を選択起動できる、設計どおりの仕様を実現したことになります。
Ubuntu18.04を起動、オープニング画面で登録したユーザを選んで設定したパスワードを入力すれば、Ubuntu18.04のデスクトップがあらわれるはずです。
posted by hatakazu at 21:13| Comment(0) | Linuxとか | 更新情報をチェックする

2018年06月26日

「Dell Inspiron 14」の設定、Linuxインストールのための準備など

1. 「Dell Inspiron 14」の仕様とOS構成
今後紹介していく予定のアプリケーションのインストール方法や使いかたなどは、とくに断らないかぎりこの環境が前提となっており、「Windows編」は「Windows10 Home 64bit」上での、「Ubuntu編」は「Ubuntu 18.04 LTS 日本語 Remix」上での記述となります。

--
Dell ノートパソコン Inspiron 14 7472 Core i7モデル ピンク 18Q42P/Windows10/14インチFHD/8GB/128GB SSD+1TB HDD

製品紹介:通常より1サイズ小さい本体外寸を実現した14インチモバイルノート
OS1:Ubuntu 18.04 LTS 日本語 Remix on 1TB HDD
OS2:Windows10 Home 64bit on 128GB SSD
画面サイズ:14インチ IPS フルHD光沢
重量:1.65kg
バッテリー駆動時間:約9時間
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD + 1TB 5400rpm HDD
接続方法:USB2.0x1、USB3.0x2、HDMI1.4ax1、GbitLANx1
接続方法:SDカードリーダ、ヘッドホンジャック、Webカメラ・マイク、ノーブルロックポート
無線LAN:802.11ac デュアルバンド+ Bluetooth 4.1
--

2. 回復ドライブの作成
なにはともあれ安全第一、さまざまなトラブルにそなえて、Windows10の回復ドライブをつくっておきます。
「コントロールパネル」→「システムとセキュリティ」→「回復ドライブの作成」とすすみます。
将来的にWindows10を消去してLinux一本で使うことにした場合、Windows10をゼロから再インストールする必要にせまられることも考えられるため、「システムファイルを回復ドライブにバックアップする」オプションにチェックをいれます。
hatakazuの環境では、「システムファイルを回復ドライブにバックアップする」にチェックをいれて回復ドライブを作成した場合、16GB以上のUSBメモリを要求されました。

3. 「高速スタートアップ」無効化
プリインストールされているWindows10とデュアルブート可能なかたちでLinuxをインストールする場合、「高速スタートアップ」オプションがじゃまになる可能性があるため、無効化しておく必要があります。
「コントロールパネル」→「ハードウェアとサウンド」→「電源オプション」→「システム設定」とすすみます。
「現在利用可能ではない設定を変更します」をクリック、「高速スタートアップを有効にする」のチェックをはずして、設定を保存します。

4. Setup Utilityで「Secure Boot」を無効化する
「Secure Boot」が有効になっていると、LinuxなどのOSを起動するさいに問題が発生するため、あらかじめ無効化しておきます。
コンピュータを再起動して、Dellのロード画面が表示されているあいだに「F2」キーを押し、Setup Utilityを起動します。
「Secure Boot Enable」項目をひらいて、「Disabled」を選択のうえ、設定を保存してSetup Utilityを終了します。

5. そのほかのSetup Utility設定「Fastboot」「CSM」「Virtualization」など
「Fastboot」検査をスキップしない設定にする。初期値のままでO.K.だった。
「CSM」項目が存在しない。存在する場合は有効化しておく必要があると思う。
「Virtualization」初期値で有効化されていたが、あえて無効化する必要もないので、そのままにした。Winsows10上で「VirtualBox」などの仮想化環境を使う場合は、有効化されていることを確認する。
「POST Behavior」→「Fn Lock Options」にて、「Fn lock」にチェックをいれて、「Lock Mode Disabled/Standard」を選択する。Windows10上で「Fn」+「Esc」押下でも設定変更可能。

6. ディスク領域を縮小して、Linuxをインストールするスペースを確保する。
「コントロールパネル」→「システムとセキュリティ」→「ハードディスクパーティションの作成とフォーマット」とすすみます。
記憶装置は「SSD 128GB」+「HDD 1TB」なので、Linuxをインストールする領域として、「HDD 1TB」上におよそ300GBを確保しました。
「HDD 1TB」は現時点でからっぽなので、いくらでもLinuxに割りあてられるのですが、Windows10を残してデュアルブート化する場合は、Windows10とLinuxでデータを共有するための領域をたくさんとっておいたほうがいいと思います。

7. Windows10で必要になるアプリケーションのインストール
7-1. 「Google Chrome」インストール
パソコン版Chrome」サイトよりインストールプログラムを入手、実行して「Google Chrome」をインストールします。


参考ウェブページ一覧表(順不同)

http://www.dell.com/support/home/jp/ja/jpdhs1/product-support/product/inspiron-14-7472-laptop/diagnose
http://www.dell.com/support/manuals/jp/ja/jpbsd1/inspiron-14-7472-laptop/inspiron-14-7472-servicemanual/inspiron-14-7000-サービスマニュアル
https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/
https://www.g104robo.com/entry/ubuntu-dualboot-win10-uefi
https://hnakamur.github.io/blog/2018/03/23/ubuntu-17.10-windows10-dual-boot/
posted by hatakazu at 23:38| Comment(0) | Linuxとか | 更新情報をチェックする