Ubuntu 16.04で機械学習の環境をさくっと作る手順

# はじめに

中古パソコンを使って機械学習の環境を整備するということを始めたので、備忘のために手順をメモしておきます。

# 主な手順

1. Ubuntuのダウンロードとインストール
1. apt-getにてPython3関連のソフトウェア取得
1. pip3にてPython3のライブラリ取得
1. Jupyter Notebookの設定
1. OpenCVのインストール
1. SSHの設定
1. Sambaの設定

OpenCV以降はおまけです。

# Ubuntuのダウンロードとインストール

以下のリンク先でisoファイルを入手できます。

[Get Ubuntu](https://www.ubuntu.com/download)

isoファイルのデータをDVDまたはUSBメモリに書き込み、パソコンへインストールします。
インストールが終われば、再起動してログインして以下のコマンドを実行。

```sh:
$ sudo apt-get update
```

# Python3および関連ソフトウェアのインストール

以下のコマンドを実行。

```sh:
$ sudo apt install -y python3 python3-pip python3-dev python3-numpy python3-scipy python3-matplotlib
```

インストールができたかどうか、以下のコマンドで確認。

```text:
$ python3 -V
Python 3.5.2
```

pipも確認。

```text:
$ pip3 -V
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
```

# ライブラリの取得

以下のコマンドを実行。

```sh:
$ sudo pip3 install seaborn scikit-learn jupyter xgboost
```

インストールできたかを以下のコマンドで確認。

```text:
$ jupyter --version
4.3.0
```

# Jupyter Notebookの設定

以下のコマンドを実行。

```sh:
$ cd
$ mkdir notebook
$ jupyter notebook --generate-config
$ echo "c.NotebookApp.ip = '*'" >> ~/.jupyter/jupyter_notebook_config.py
$ echo "c.NotebookApp.notebook_dir = 'notebook'" >> ~/.jupyter/jupyter_notebook_config.py
```

以下のコマンドを実行し、他のPCからアクセスできるか確認。

```sh:
$ jupyter notebook
```

## Matplotlibに日本語フォントを追加

以下のコマンドを実行。

```sh:
$ cd
$ wget http://dforest.watch.impress.co.jp/library/i/ipafont/10483/IPAfont00303.zip
$ unzip IPAfont00303.zip
$ sudo mv IPAfont00303/*.ttf /usr/share/matplotlib/mpl-data/fonts/ttf/
$ rm ~/.cache/matplotlib/*.cache
```

# OpenCVのインストール

## コンパイルに必要なソフトウェアの追加

以下のコマンドを実行。

```sh:
$ sudo apt-get install -y build-essential checkinstall cmake pkg-config yasm gfortran git libjpeg8-dev libjasper-dev libpng12-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libqt4-dev libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev doxygen tesseract-ocr tesseract-ocr-jpn libtesseract-dev python3-pyocr libleptonica-dev
```

うまく行かない時は、一つ一つわけてインストールを実行。

## ソースコードをダウンロード

以下のコマンドを実行。

```sh:
$ git clone https://github.com/opencv/opencv.git
$ cd opencv 
$ git checkout 3.3.0 
$ cd ..
$ git clone https://github.com/opencv/opencv_contrib.git
$ cd opencv_contrib
$ git checkout 3.3.0
$ cd ..
```

## コンパイルとインストール

以下のコマンドを実行。

```sh:
$ cd opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D WITH_TBB=ON \
      -D WITH_V4L=ON \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
      -D BUILD_EXAMPLES=ON ..
$ make -j4
$ sudo make install
$ sudo ldconfig
```

インストール結果を確認。

```sh:
$ python3
>>> import cv2
>>> cv2.__version__
'3.3.0'
>>> exit()
```

バージョン情報が表示されれば成功！


# SSHの設定

以下のコマンドを実行。

```sh:
$ sudo apt install -y ssh
```

# Sambaの設定

以下のコマンドを実行。

```sh:
$ sudo apt install -y samba
$ sudo smbpasswd -a [ユーザー名]
$ sudo nano /etc/samba/smb.conf 
```

表示されたファイルから必要部分を探し修正。

まずは、文字コードの設定。

```text:
[global]
```

直後に以下の三行を追加。

```text:
[global]
   dos charset = CP932
   unix charset = UTF8
   display charset = UTF8
```

次にホームディレクトリの設定。

```text:
;[homes]
;   read only = yes
```

「;」を削除。「yes」を「no」に変更。

```text:
[homes]
   read only = no 
```

保存して終了した後、以下のコマンドを実行。

```sh:
$ sudo /etc/init.d/smbd restart
```

Windowsで、ExploreのアドレスにUbuntuのIPアドレスを入力して、ファイルの一覧が取得できれば（多分）成功。

できた！！