金子邦彦研究室情報工学全般Ubuntu, WSL2Ubuntu のセットアップ(Ubuntu のインストールと設定,アプリケーションソフトウェアのインストール及び設定手順)

Ubuntu のセットアップ(Ubuntu のインストールと設定,アプリケーションソフトウェアのインストール及び設定手順)

データベースシステム、人工知能、3次元コンピュータグラフィックスや各種メディア処理、プログラミングなどで Ubuntu を活用したいと思っている人向け。

このページでは,プログラミング処理系と開発環境(プログラムの自作、オープンソフトウェアの活用)、 データベース処理、 メディア処理、 その他のアプリケーション(インターネット、ファイル操作など)、 NVIDIA ドライバや NVIDIA CUDA や NVIDIA cuDNN, ディープライニング応用のための各種ソフトウェアのインストール及び設定手順をまとめている。

Windows については別ページ »で説明している.

目次

  1. Ubuntu 22.04 のインストール
  2. Ubuntu 22.04 の設定
  3. C/C++ コンパイラー,make,パッケージツール
  4. NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8
  5. Git, cmake, curl, wget, p7zip-full
  6. TensorFlow, Keras, MatplotLib, opencv-python, その他Python 開発環境(JupyterLab, spyder, nteract)及びパッケージ類(numpy, scikit-learn, その他)
  7. 隔離された Python 3.10 環境(Ubuntu のシステム Python とは隔離)
  8. 数値演算ライブラリ
  9. ディープラーニング応用
  10. エディタ
  11. Web ブラウザ,リモートファイル転送,リモート接続
  12. ツール類(作図、ファイル検索など)
  13. PostgreSQL 12, PostgreSQL JDBC ドライバ
  14. データベースツール等
  15. メディア(地図情報、ビデオ、3次元コンピュータグラフィックス、3次元点群、プロットデジタイザ)
  16. UnrealEngine 4
  17. Java,Java 開発環境
  18. R システム,R.Studio(R開発環境)

注意事項

1. Ubuntu 22.04 のインストール

Ubuntu 22.04 のインストール: 別ページ »で説明している.

2. Ubuntu 22.04 の設定

2.1 OS のシステム更新

UbuntuUbuntu で OS のシステム更新を行うときは, 次のコマンドを実行.

sudo apt -y update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now

2.2 Ubuntu 22.04 のインストール直後の設定

Ubuntu 22.04 のインストール直後の設定: 別ページ »で説明している.

YouTube 動画へのリンク: https://www.youtube.com/watch?v=UY4yFbisfyo

2.3 エディタのインストール

今度の作業用に,使い慣れたエディタをインストールする. emacs をインストールする場合は,次のコマンド.

sudo apt -y update
sudo apt -y install emacs emacs-mozc fcitx-libs-dev 

2.4 OpenSSH サーバー

Ubuntu での OpenSSHサーバーの運用を予定している場合には, OpenSSH サーバーのインストールと設定を行う.

手順は: 別ページ »で説明している.

3. C/C++ コンパイラー,make,パッケージツールのインストール(Ubuntu 上)

次のコマンドを実行.

sudo apt -y update
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config

C/C++ コンパイラーの動作確認

  1. まず,エディタを開く(ここではエディタとして,「gedit」を使っている).

    次のコマンドを実行. ファイル名は /tmp/hello.c としている.

    cd /tmp
    gedit hello.c
    

  2. いま gedit で開いたファイルを, 次のように編集する(コピー&ペーストしてください).そして保存する.
    #include<stdio.h>
    int main() {
        printf("Hello,World!\n");
        printf("sizeof(size_t)=%ld\n", sizeof(size_t));
        return 0;
    }
    

    [image]

    結果として,「Hello,World!」「sizeof(size_t)=8」と表示されればOK.

    cd /tmp
    gcc hello.c
    ./a.out
    

    実行結果例

    [image]

4. NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8 のインストール(Ubuntu 上)

GPU

GPU は,グラフィックス・プロセッシング・ユニット(Graphics Processing Unit)の略である.現在は,3次元のビデオゲーム,さまざまな計算,ディープラーニングの高速な並列処理などに用いられている.

NVIDIA ドライバ

NVIDIA ドライバは,NVIDIA 社製の GPU を動作させるのに必要なドライバである.次の NVIDIA の公式サイトからダウンロードできる.ダウンロードのときは,使用しているオペレーティングシステムとGPUに適したものを選ぶこと.

関連する外部ページ

NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp

【インストール手順の詳細説明】

NVIDIA CUDA ツールキット

NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている.

サイト内の関連ページ

関連する外部ページ

NVIDIA cuDNN

NVIDIA cuDNN は, NVIDIA CUDA ツールキット上で動作するディープラーニング・ライブラリである. 畳み込みニューラルネットワークや リカレントニューラルネットワークなど,さまざまなディープラーニングで利用されている.

Windows で,NVIDIA cuDNN の利用時に 「Could not locate zlibwapi.dll. Please make sure it is in your library path!」と表示されるときは, ZLIB DLL をインストールすること.

関連する外部ページ

NVIDIA cuDNN のインストール時の注意点

NVIDIA cuDNN の動作に必要なもの

4.1 NVIDIA ドライバ,NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールの要点と注意点

4.2 NVIDIA ドライバのインストール

NVIDIA グラフィックス・カードがある場合に限り, あとで,NVIDIA CUDA ツールキットNVIDIA cuDNN のインストールを行う.

  1. NVIDIA グラフィックス・カードの確認

    CUDA 対応の GPU であるかを確認のため, 次のコマンドを実行.

    (表示が空になるときは,NVIDIAのグラフィックス・カードが無い可能性がある).

    lspci | grep -i nvidia | grep VGA
    

    [image]
  2. nouveau ドライバの無効化

    次のコマンドを実行.

    echo 'blacklist nouveau' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
    echo 'options nouveau modeset=0' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
    cat /etc/modprobe.d/blacklist-nouveau.conf
    sudo update-initramfs -u
    

    [image]
  3. NVIDIA ドライバとNVIDIA CUDA ツールキットのアンインストール

    NVIDIA ドライバのインストール,NVIDIA CUDA ツールキットがインストールされていた場合には,アンイントールする. 次のコマンドを実行.

    dpkg -l | grep cuda 
    cd /tmp
    sudo apt --purge remove -y nvidia-*
    sudo apt --purge remove -y cuda-*
    sudo apt autoremove -y
    
  4. カーネルヘッダーと,カーネル開発用パッケージのインストール

    次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install linux-headers-$(uname -r)
    
  5. NVIDIA ドライバのインストール操作

    「sudo ubuntu-drivers autoinstall」を用いて NVIDIA ドライバをインストールする.

    次のコマンドを実行.

    sudo apt -y update
    sudo apt -y upgrade
    sudo apt dist-upgrade
    ubuntu-drivers devices
    sudo ubuntu-drivers autoinstall
    sudo update-initramfs -u
    
  6. Ubuntu システムの再起動

    グラフィックスドライバが入れ変わったので,Ubuntu システムを再起動する.

    次のコマンドを実行.

    sudo /sbin/shutdown -r now
    

    [image]
  7. NVIDIA ドライバの確認

    システムの再起動後,端末で,次のコマンドを実行し,ドライバ等を確認する

    先頭の「Driver Version」のところに,ドライバのバージョンが表示される.

    nvidia-smi
    

    [image]

4.3 NVIDIA CUDA ツールキット11.8 のインストール

Ubuntu で NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 のインストールを行う.

NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている. NVIDIA 社のグラフィックス・カードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.

【関連する外部ページ】

  1. Ubuntu のバージョンを確認

    次のコマンドを実行.

    uname -m
    lsb_release -sc
    cat /etc/*release
    

    [image]

    Ubuntu のバージョンが表示されるので確認する.

    Ubuntu のバージョンは,VERSION_ID の行などで確認できる.

  2. NVIDIA CUDA パッケージレポジトリで,ファイル名を確認

    NVIDIA CUDA パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/cuda/repos/

    ※ Linux の種類やバージョンごとに,ファイル名が違うので確認する.NVIDIA CUDA パッケージレポジトリでは, Ubuntu 以外の Linux についてのファイルも公開されている : https://developer.download.nvidia.com/compute/cuda/repos/

    Ubuntu 22.04 の場合

    https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ で確認.

    .pub」という名前の付いたファイルを確認.

    複数あるときは,新しい方を確認.

    [image]

    cuda-ubuntu....pin」という名前の付いたファイルを確認.

    使用したいバージョンのものを確認.

    [image]

    Ubuntu 20.04 の場合

    https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ で確認.

    .pub」という名前の付いたファイルを確認.

    複数あるときは,新しい方を確認.

    [image]

    cuda-ubuntu....pin」という名前の付いたファイルを確認.

    [image]

    Ubuntu 18.04 の場合

    https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ で確認.

    Ubuntu 18.04 の場合は cuda-repo パッケージをインストールする.

    スクロールして「cuda-repo・・・」を探す

    [image]
  3. NVIDIA CUDA パッケージレポジトリを,Ubuntu システムに追加

    このとき,いま,確認したファイル名を指定すること

    端末で,次のように操作する. Ubuntu 22.04 の場合

    次の操作により,NVIDIA CUDA のパッケージレポジトリが Ubuntu システムに追加される.

    sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub
    sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
    

    [image]

    Ubuntu 20.04 の場合

    次の操作により,NVIDIA CUDA のパッケージレポジトリが Ubuntu システムに追加される.

    sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
    sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
    

    [image]

    Ubuntu 18.04 の場合

    NVIDIA CUDA パッケージレポジトリを,Ubuntu システムに追加 (いま確認したファイル名のファイルを追加).

    cd /tmp
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
    sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
    sudo apt -y update
    
  4. インストールできる CUDA のバージョンの確認
    apt-cache search cuda-11
    

    [image]
  5. NVIDIA CUDA パッケージレポジトリを用いて,NVIDIA CUDA ツールキット 11.8インストール

    Ubuntu 22.04, Ubuntu 20.04 の場合

    次の操作により,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 がインストールされる.

    次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install cuda-11-8
    sudo update-initramfs -u
    sudo /sbin/shutdown -r now
    
  6. NVIDIA CUDA ツールキットにパスを通す設定

    Ubuntu 22.04, Ubuntu 20.04 の場合

    次のコマンドを実行.

    export CUDA_PATH=/usr/local/cuda-11.8
    echo 'export CUDA_PATH=/usr/local/cuda-11.8' >> ${HOME}/.bashrc
    export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH}
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc
    export PATH=/usr/local/cuda-11.8/bin:${PATH}
    echo 'export PATH=/usr/local/cuda-11.8/bin:${PATH}' >> ${HOME}/.bashrc
    

    [image]
  7. インストールできたことの確認のため,CUDA ツールキットのバージョンを確認

    次のコマンドを実行.

    cat /usr/local/cuda-11.5/version.json
    

4.4 NVIDIA cuDNN のインストール

Ubuntu 22.04, Ubuntu 20.04 の場合

  1. パッケージ名の確認
    apt-cache search cudnn
    
  2. いま確認したパッケージ名を指定して,NVIDIA cuDNN のインストール
    sudo apt -y update
    sudo apt -y install libcudnn8 libcudnn8-dev
    
  3. インストールされたパッケージの確認
    dpkg -l | grep cudnn 
    

Ubuntu 18.04 の場合

NVIDIA 機械学習パッケージレポジトリからダウンロードして,インストールするという手順を説明する.

NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/

  1. NVIDIA 機械学習パッケージレポジトリで,ファイル名を確認

    NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/

    Ubuntu 18.04 の場合は,https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/ で確認.

    スクロールして「nvidia-machine-learning-repo ・・・」を探す

    [image]
  2. NVIDIA 機械学習パッケージレポジトリを,Ubuntu システムに追加

    端末で,次のように操作する. このとき,確認したファイル名を指定すること

    cd /tmp
    wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
    sudo dpkg -i nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
    sudo apt -y update
    
  3. パッケージ名の確認
    apt-cache search cudnn
    

    [image]
  4. いま確認したパッケージ名を指定して,NVIDIA cuDNN のインストール
    sudo apt -y update
    sudo apt -y install libcudnn8 libcudnn8-dev
    
  5. インストールされたパッケージの確認
    dpkg -l | grep cuda 
    

4.5 nvcc の動作確認

nvccの動作確認のため, https://devblogs.nvidia.com/easy-introduction-cuda-c-and-c/に記載のソースコードを使用.

  1. まず,エディタを開く(ここではエディタとして,「gedit」を使っている).
    gedit hello.cu
    

    [image]
  2. その後,ファイルを編集し,ファイルを保存.

    ファイル hello.cu ができる.

    [image]
  3. ビルドと実行.

    「nvcc hello.cu」で a.out というファイルができる. 「Max error: 0.000000」と表示されればOK.

    del a.exe
    nvcc hello.cu
    

    [image]
    ./a.out
    

    [image]

5. Git, cmake, curl, wget, p7zip-full のインストール(Ubuntu 上)

インストールするには, 次のコマンドを実行.

sudo apt -y update
sudo apt -y install git cmake cmake-curses-gui cmake-gui curl wget p7zip-full

6. Python3 開発用ファイル,pip, setuptools, venv のインストール,Python 開発環境,Python コンソール(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール(Ubuntu 上)

Python のインストールは行わない(Ubuntu のシステム Python を用いる.)

Python, pip, Python 開発環境,Python コンソールのコマンドでの起動のまとめ.

Ubuntu のシステム Python を用いるとき, python, pip, Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder は,次のコマンドで起動できる.

6.1 Python3 開発用ファイル,pip, setuptools, venv のインストール

次のコマンドを実行.

sudo apt -y update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential

6.2 Python 開発環境(JupyterLab, spyder, nteract)

  1. Python3 開発用ファイル,pip, setuptools, venv, Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール

    次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
    sudo pip3 uninstall ptyprocess sniffio terminado tornado jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
    sudo apt -y install jupyter jupyter-qtconsole spyder3
    sudo apt -y install python3-ptyprocess python3-sniffio python3-terminado python3-tornado
    sudo pip3 install -U jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter
    
  2. Ubuntu システムの python3 のバージョンの確認
    python3 --version 
    

    [image]
  3. Jupyter Qt Console の起動チェック

    まず,numpy, matplotlib のインストールのため, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install python3-numpy python3-matplotlib
    

    次のコマンドを実行. Jupyter Qt Console が開けば OK.

    jupyter qtconsole
    

    [image]
  4. 確認のため,Jupyter Qt Console で,次の Python プログラムを実行してみる.
    import numpy as np
    %matplotlib inline
    import matplotlib.pyplot as plt
    import warnings
    warnings.filterwarnings('ignore')   # Suppress Matplotlib warnings
    
    x = np.linspace(0, 6, 100)
    plt.style.use('default')
    plt.plot(x, np.sin(x))
    

    [image]
  5. nteract の起動チェック

    次のコマンドを実行. ntetact が開けば OK.

    jupyter nteract
    

    [image]

  6. 確認のため,nteract で,次の Python プログラムを実行してみる.

    そのために「Start a new notebook」の下の「Python」をクリック,次のプログラムを入れ実行.

    import numpy as np
    %matplotlib inline
    import matplotlib.pyplot as plt
    import warnings
    warnings.filterwarnings('ignore')   # Suppress Matplotlib warnings
    
    x = np.linspace(0, 6, 100)
    plt.style.use('default')
    plt.plot(x, np.sin(x))
    

    [image]
  7. Juypter Notebook で,保存のときに,.py ファイルと .ipyrb ファイルが保存されるように設定.(この設定を行わないときは .ipyrb ファイルのみが保存される)
    1. 次のコマンドで,設定ファイルを生成

      jupyter notebook --generate-config
      
    2. jupyter notebook を起動し,Edit, Edit Notbook Manager を選ぶ.次のように設定する.

      "jupytext": {"formats": "ipynb,py"}

6.3 numpy, scikit-learn のインストール

インストールするには, 次のコマンドを実行.

sudo apt -y update
sudo apt -y install python3-numpy python3-sklearn

numpy の動作確認のためPython プログラムの実行

Ubuntu では, Python プログラムを動かすために, 「python3」コマンドを使う.

Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

python3
import numpy as np
print(np.sin(0))
exit()

[image]

6.4 Python の数値演算等の性能確認

Python プログラムの実行

Ubuntu では, Python プログラムを動かすために, 「python3」コマンドを使う.

Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

import time
import numpy
import numpy.linalg
import sklearn.decomposition
import sklearn.cluster
X = numpy.random.rand(2000, 2000)
Y = numpy.random.rand(2000, 2000)
# 行列の積
a = time.time(); Z = numpy.dot(X, Y); print(time.time() - a)
# 主成分分析
pca = sklearn.decomposition.PCA(n_components = 2)
a = time.time(); pca.fit(X); X_pca = pca.transform(X); print(time.time() - a)
# SVD
a = time.time(); U, S, V = numpy.linalg.svd(X); print(time.time() - a)
# k-means
a = time.time(); 
kmeans_model = sklearn.cluster.KMeans(n_clusters=10, random_state=10).fit(X)
labels = kmeans_model.labels_
print(time.time() - a)

実行結果の例

[image]

7. TensorFlow 2.11,Keras,MatplotLib, Python 用 opencv-python のインストール(Ubuntu 上)

設定の要点

環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true

7.1 TensorFlow 2.11,Keras,MatplotLib, Python 用 opencv-python のインストール

  1. 端末を開く
  2. パッケージのアンインストール操作

    トラブルの可能性を減らすために,次の操作でアンインストールを行っておく.

    sudo apt -y remove python3-keras
    sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
    

    [image]
  3. TensorFlow の前提パッケージのインストール

    次のコマンドを実行.

    sudo pip3 uninstall -y six wheel astunparse tensorflow-estimator numpy keras-preprocessing absl-py wrapt gast flatbuffers grpcio opt-einsum protobuf termcolor typing-extensions google-pasta h5py tensorboard-plugin-wit markdown werkzeug requests-oauthlib rsa cachetools google-auth google-auth-oauthlib tensorboard tensorflow
    sudo apt -y install python3-six python3-wheel python3-numpy python3-grpcio python3-protobuf python3-termcolor python3-typing-extensions python3-h5py python3-markdown python3-werkzeug python3-requests-oauthlib python3-rsa python3-cachetools python3-google-auth
    
  4. TensorFlow, numpy, pillow, pydot, matplotlib, keras, opencv-python のインストール

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install python3-numpy python3-pil python3-pydot python3-matplotlib
    sudo apt -y install libopencv-dev libopencv-core-dev python3-opencv libopencv-contrib-dev opencv-data
    sudo pip3 install -U tensorflow tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer 
    sudo pip3 install git+https://github.com/tensorflow/docs
    sudo pip3 install git+https://github.com/tensorflow/examples.git
    sudo pip3 install git+https://www.github.com/keras-team/keras-contrib.git
    
  5. TensorFlow のバージョン確認

    バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

    python3 -c "import tensorflow as tf; print( tf.__version__ )"
    

    [image]

  6. このあと、TensorFlow からGPU が認識できているかの確認

    次のコマンドを実行.

    python3 -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
    

    実行結果の中に,次のように「device_type: "GPU"」があれば,GPUが認識できている.エラーメッセージが出ていないことを確認しておくこと.

    [image]
  7. 環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定
    環境変数の名前
    TF_FORCE_GPU_ALLOW_GROWTHtrue
    

    次のコマンドを実行.

    export TF_FORCE_GPU_ALLOW_GROWTH=true
    echo 'export TF_FORCE_GPU_ALLOW_GROWTH=true' >> ${HOME}/.bashrc
    

7.2 TensorFlow, Keras, VGG 16, InceptionV3, Imagenet による画像分類を試してみる

  1. 前準備として h5py, pillow のインストール

    sudo apt -y update
    sudo apt -y install python3-h5py python3-pillow
    
  2. 画像の準備

    10.png のようなファイル名で保存しておく

    [image]
  3. Python プログラムの実行
    cd <画像を置いたディレクトリ>
    python3
    
  4. VGG 16, Imagenet による学習済みの重みデータによる画像分類を試してみる

    次のプログラムをコピー&ペースト

    Kerasのサイトで公開されているものを少し書き換えて使用。

    「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

    Python プログラムの実行

    Ubuntu では, Python プログラムを動かすために, 「python3」コマンドを使う.

    Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

    import h5py
    from tensorflow.keras.preprocessing import image
    from tensorflow.keras.applications.vgg16 import VGG16
    from tensorflow.keras.applications.vgg16 import preprocess_input
    import numpy as np
    
    m = VGG16(weights='imagenet', include_top=False)
    
    img_path = '10.png'
    img = image.load_img(img_path, target_size=(299, 299))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    features = m.predict(x)
    print(features) 
    

    [image]

    python3 の終了は「exit()」

  5. InceptionV3, Imagenet による学習済みの重みデータによる画像分類を試してみる

    次のプログラムをコピー&ペースト

    Kerasのサイトで公開されているものを少し書き換えて使用。

    「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

    Python プログラムの実行

    Ubuntu では, Python プログラムを動かすために, 「python3」コマンドを使う.

    Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

    import h5py
    from tensorflow.keras.preprocessing import image
    from tensorflow.keras.applications.inception_v3 import preprocess_input, decode_predictions, InceptionV3
    import numpy as np
    
    m = InceptionV3(weights='imagenet')
    
    img_path = '10.png'
    img = image.load_img(img_path, target_size=(299, 299))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    preds = m.predict(x)
    
    print('Predicted:')
    for p in decode_predictions(preds, top=5)[0]:
        print("Score {}, Label {}".format(p[2], p[1]))
    

    [image]

    python3 の終了は「exit()」

8. PyTorch, Torchvision のインストール(Ubuntu 上)

Web ブラウザで最新情報を確認ののち,所定のコマンドによりインストールを行う.

PyTorch の URL: https://pytorch.org/

  1. PyTorch の「はじめよう」の Web ページを開く

    https://pytorch.org/get-started/locally/

  2. 種類を選ぶ

    Linux, pip, Python,NVIDIA CUDA ツールキット 11.6 での実行例

    [image]
  3. 「Run the command」のところに,コマンドが表示されるので確認する

    [image]
  4. 端末で,いま表示されたコマンドをそのまま実行する

    但し,Ubuntu の場合は,「pip」を「sudo pip3」に変えて実行.

    sudo pip3 install -U torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
    

    [image]
  5. その結果,エラーメッセージが出ていないことを確認.

    [image]
  6. PyTorch のバージョン確認

    次のコマンドを実行.

    バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

    python3 -c "import torch; print( torch.__version__ )"
    

    [image]
  7. PyTorch の動作確認

    https://pytorch.org/get-started/locally/ に記載のサンプルプログラムを実行してみる

    Python プログラムの実行

    Ubuntu では, Python プログラムを動かすために, 「python3」コマンドを使う.

    Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

    from __future__ import print_function
    import torch
    x = torch.rand(5, 3)
    print(x)
    exit()
    

    [image]
  8. GPU が動作しているか確認

    Python プログラムを実行する

    import torch
    torch.cuda.is_available()
    exit()
    

    [image]

6.8 Chainer

  • Chainer のソースコードのインストール(ソースコードを使用)

    次のコマンドを実行.

    終了までしばらく待つ.

    cd /tmp
    rm -rf chainer
    git clone https://github.com/chainer/chainer.git
    cd /tmp/chainer
    sudo CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" pip3 -v install .
    

    [image]

    6.9 Python の種々のパッケージ

    その他,Python パッケージは,必要なものをインストール.次に手順を例示している. 利用者で判断すること.

    9. 隔離された Python 3.10 環境(Ubuntu のシステム Python とは隔離)

    ここでの手順では,次のように設定する. Python の仮想環境の名前は変えて良い.使用するPythonのバージョンは,より新しいバージョンがあれば,そちらの利用を検討すること

    7.1 pyenv のインストール

    pyenv は Python のインストールが簡単にできる機能などを持つソフトウェア.

    1. いまインストールされている pyenv の消去
      rm -rf ~/.pyenv
      

      [image]
    2. pyenv のダウンロードと更新
      cd /tmp
      git clone https://github.com/pyenv/pyenv.git ~/.pyenv
      cd ~/.pyenv
      git pull
      src/configure 
      make -C src
      

      [image]
    3. pyenv の設定
      echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.profile
      echo 'if [ -d "${PYENV_ROOT}" ]; then' >> ~/.profile
      echo '    export PATH=${PYENV_ROOT}/bin:$PATH' >> ~/.profile
      echo '    eval "$(pyenv init --path)"' >> ~/.profile
      echo 'fi' >> ~/.profile
      echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.profile
      exec $SHELL -l
      source ~/.profile
      

      [image]
    4. 関係するライブラリのインストール
      sudo apt -y update
      sudo apt -y install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
      

    7.2 システム Python とは別に Python 3.10 をインストール (pyenv を使用)

    1. インストールするPython のバージョンの確認
      pyenv rehash 
      pyenv install -l 
      

      [image]
    2. インストールできる Python 3.10 のバージョンの確認
      pyenv install -l | grep 3.10
      

      [image]
    3. Python 3.10.5 のインストール
      pyenv install 3.10.5
      

      [image]
    4. pip, setuptools のインストール

      pyenv shell 3.10.5
      python -m pip install -U pip setuptools
      

      [image]

    Python の切り替えは次のようなコマンドで行う.

    デフォルトで pyenv 配下の Python 3.10.5 を使いたいときは, 次のように設定する

    echo 'pyenv shell 3.10.5' >> ~/.bashrc
    exec $SHELL -l
    

    7.3 隔離された Python 3.10 仮想環境の作成(venv を使用)と設定

    1. 隔離された Python 3.10 仮想環境の作成(venv を使用)

      下の例では,Python の仮想環境のためのディレクトリを ~/py310に作成している.

      pyenv shell 3.10.5
      python -m pip install -U pip setuptools
      rm -rf ~/py310
      python -m venv ~/py310
      

      [image]
    2. venvPython の仮想環境有効化し,pip と setuptools を更新.

      この操作が終わったら,「exit」で端末を閉じる(続きの作業での混乱を防ぐため)

      source ~/py310/bin/activate
      python -m pip install -U pip setuptools
      exit
      

      [image]

    7.4 Python 開発環境(JupyterLab, spyder, nteract)

    Python, pip, Python 開発環境,Python コンソールのコマンドでの起動のまとめ.

    Ubuntu のシステム Python を用いるとき, python, pip, Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder は,次のコマンドで起動できる.

    1. Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストールを行う.

      インストールするには, 次のコマンドを実行.

      source ~/py310/bin/activate
      python -m pip install -U jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
      

      [image]
    2. Jupyter Qt Console の起動チェック

      まず,numpy, matplotlib のインストールのため, 次のコマンドを実行.

      python -m pip install -U numpy matplotlib
      

      次のコマンドを実行. Jupyter Qt Console が開けば OK.

      jupyter qtconsole
      

      [image]

      [image]
    3. 確認のため,Jupyter Qt Console で,次の Python プログラムを実行してみる.
      import numpy as np
      %matplotlib inline
      import matplotlib.pyplot as plt
      import warnings
      warnings.filterwarnings('ignore')   # Suppress Matplotlib warnings
      
      x = np.linspace(0, 6, 100)
      plt.style.use('default')
      plt.plot(x, np.sin(x))
      

      [image]
    4. nteract の起動チェック

      次のコマンドを実行. ntetact が開けば OK.

      jupyter nteract
      

      [image]

    5. 確認のため,nteract で,次の Python プログラムを実行してみる.

      そのために「Start a new notebook」の下の「Python」をクリック,次のプログラムを入れ実行.

      import numpy as np
      %matplotlib inline
      import matplotlib.pyplot as plt
      import warnings
      warnings.filterwarnings('ignore')   # Suppress Matplotlib warnings
      
      x = np.linspace(0, 6, 100)
      plt.style.use('default')
      plt.plot(x, np.sin(x))
      

    7.4 numpy のインストール

    インストールするには, 次のコマンドを実行.

    source ~/py310/bin/activate
    python -m pip install -U numpy
    

    [image]

    numpy の動作確認

    python
    import numpy as np
    print(np.sin(0))
    exit()
    

    [image]

    7.5 TensorFlow 2.11, Keras 2.6.0, MatplotLib 3.1.2, Python 用 opencv-python 4.5.3 のインストール

    設定の要点

    環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true

    1. インストール

      インストールするには, 次のコマンドを実行.

      source ~/py310/bin/activate
      python -m pip uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
      python -m pip install -U pip setuptools
      sudo apt -y install libopencv-dev libopencv-core-dev python3-opencv
      python -m pip install -U tensorflow==2.10.1 tf_slim tensorflow_datasets==4.8.3 tensorflow-hub keras keras-tuner keras-visualizer
       numpy pillow pydot matplotlib seaborn pandas scipy scikit-learn scikit-learn-intelex opencv-python opencv-contrib-python
      python -m pip install git+https://github.com/tensorflow/docs
      python -m pip install git+https://github.com/tensorflow/examples.git
      python -m pip install git+https://www.github.com/keras-team/keras-contrib.git
      

    2. このあと、TensorFlow からGPU が認識できているかの確認

      次のコマンドを実行.

      python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
      

      実行結果の中に,次のように「device_type: "GPU"」があれば,GPUが認識できている.エラーメッセージが出ていないことを確認しておくこと.

      [image]
    3. 環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定
      環境変数の名前
      TF_FORCE_GPU_ALLOW_GROWTHtrue
      

      次のコマンドを実行.

      export TF_FORCE_GPU_ALLOW_GROWTH=true
      echo 'export TF_FORCE_GPU_ALLOW_GROWTH=true' >> ${HOME}/.bashrc
      

      [image]

    7.6 TensorFlow, Keras, VGG 16, InceptionV3, Imagenet による画像分類を試してみる

    1. 前準備として h5py, pillow のインストール

      python -m pip install -U h5py pillow
      
    2. 画像の準備

      10.png のようなファイル名で保存しておく

      [image]
    3. Python プログラムの実行
      cd <画像を置いたディレクトリ>
      python
      
    4. VGG 16, Imagenet による学習済みの重みデータによる画像分類を試してみる

      次のプログラムをコピー&ペースト

      Kerasのサイトで公開されているものを少し書き換えて使用。

      「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

      import h5py
      from tensorflow.keras.preprocessing import image
      from tensorflow.keras.applications.vgg16 import VGG16
      from tensorflow.keras.applications.vgg16 import preprocess_input
      import numpy as np
      
      m = VGG16(weights='imagenet', include_top=False)
      
      img_path = '10.png'
      img = image.load_img(img_path, target_size=(299, 299))
      x = image.img_to_array(img)
      x = np.expand_dims(x, axis=0)
      x = preprocess_input(x)
      
      features = m.predict(x)
      print(features) 
      

      [image]

      python の終了は「exit()」

    5. InceptionV3, Imagenet による学習済みの重みデータによる画像分類を試してみる

      次のプログラムをコピー&ペースト

      Kerasのサイトで公開されているものを少し書き換えて使用。

      「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

      import h5py
      from tensorflow.keras.preprocessing import image
      from tensorflow.keras.applications.inception_v3 import preprocess_input, decode_predictions, InceptionV3
      import numpy as np
      
      m = InceptionV3(weights='imagenet')
      
      img_path = '10.png'
      img = image.load_img(img_path, target_size=(299, 299))
      x = image.img_to_array(img)
      x = np.expand_dims(x, axis=0)
      x = preprocess_input(x)
      
      preds = m.predict(x)
      
      print('Predicted:')
      for p in decode_predictions(preds, top=5)[0]:
          print("Score {}, Label {}".format(p[2], p[1]))
      

      [image]

      python の終了は「exit()」

    7.8 Python の種々のパッケージ

    その他,Python パッケージは,必要なものをインストール.次に手順を例示している. 利用者で判断すること.

    操作が終わったら,「exit」で端末を閉じる(続きの作業での混乱を防ぐため)

    10. 数値演算ライブラリ

    10.1 OpenBLAS, LAPACK

    次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install libopenblas-dev liblapack-dev
    

    8.2 Intel MKL, IPP, TBB, DALL, MPI(Performance ライブラリ)

    1. レポジトリの設定,バージョン情報の確認
      cd /tmp
      wget -O - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB | sudo apt-key add -
      sudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list
      sudo apt -y update
      sudo apt install intel-mkl-64bit intel-ipp-64bit intel-tbb intel-daal-64bit intel-mpi
      

    2. 表示されたバージョン情報により,端末で,次のようなコマンドを実行.
      sudo apt -y update
      sudo apt -y install intel-mkl-64bit-2020.4-912 intel-ipp-64bit-2020.3-912 intel-tbb-2020.2-102 intel-daal-64bit-2020.3-912 intel-mpi-2019.9-912
      

    11.2 CuPy

    1. 端末を開く
    2. CuPy のソースコードのインストール(ソースコードを使用)

      次のコマンドを実行.

      終了までしばらく待つ.

      cd /tmp
      rm -rf cupy
      git clone https://github.com/cupy/cupy.git
      cd cupy
      git submodule update --init
      sudo CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" pip3 -v install .
      

    12. ディープラーニング応用

    前準備として, OpenBLAS, LAPACK のインストールが終わっていること.

    12.1 dlib, face_recognition(顔検出,顔のアラインメント,顔のランドマーク,顔認識その他)

    1. Dlib のインストール

      次のコマンドを実行.

      sudo apt -y update
      sudo apt -y install libdlib-data libdlib-dev
      sudo apt -y install libdlib19
      sudo apt -y install liblapack-dev libblas-dev
      
      Dlib のインストール(Ubuntu 上) Dlib,face_recognition のインストール(Ubuntu 上) #!/bin/bash sudo cp /etc/apt/sources.list /tmp/sources.list.$$ sudo sed -i 's/# deb-src/deb-src/g' /etc/apt/sources.list sudo sed -i 's/#deb-src/deb-src/g' /etc/apt/sources.list sudo apt update # ソースパッケージのダウンロード(download source package) cd /tmp sudo rm -rf /tmp/dlib mkdir /tmp/dlib cd /tmp/dlib sudo apt -y install debhelper sudo apt --download-only source libdlib-dev ls -la /tmp/dlib # -rw-r--r-- 1 root root 8928 7月 17 2021 dlib_19.10-3.1.debian.tar.xz # -rw-r--r-- 1 root root 2397 7月 17 2021 dlib_19.10-3.1.dsc # -rw-r--r-- 1 root root 64046667 5月 5 2018 dlib_19.10.orig-dlib-models.tar.bz2 # -rw-r--r-- 1 root root 6872134 5月 5 2018 dlib_19.10.orig.tar.bz2 # 展開(extract) dpkg-source -x dlib*.dsc ls -la /tmp/dlib # drwxrwxr-x 10 kaneko kaneko 4096 7月 16 18:39 dlib-19.10 # -rw-r--r-- 1 root root 8928 7月 17 2021 dlib_19.10-3.1.debian.tar.xz # -rw-r--r-- 1 root root 2397 7月 17 2021 dlib_19.10-3.1.dsc # -rw-r--r-- 1 root root 64046667 5月 5 2018 dlib_19.10.orig-dlib-models.tar.bz2 # -rw-r--r-- 1 root root 6872134 5月 5 2018 dlib_19.10.orig.tar.bz2 # 最新版のソースコードのダウンロード sudo git clone https://github.com/davisking/dlib sudo chown -R $USER dlib # 入れ替え F=`echo dlib*.orig.tar.bz2` DLIB=`tar -tvjof ${F} | head -n 1 | awk '{ print $6 }' | sed 's/\///g'` echo ${F}, ${DLIB} mv ${DLIB} ${DLIB}.old mv dlib ${DLIB} tar -cpf /tmp/dlib.tar ${DLIB} sudo rm -rf ${DLIB} mv ${DLIB}.old ${DLIB} tar -xpf /tmp/dlib.tar ${DLIB} sudo rm -f /tmp/dlib.tar # ソースパッケージを用いてインストール(build and install using source package) sudo apt --build source libdlib-dev sudo apt -y build-dep libdlib-dev cd /tmp/dlib for i in *.deb; do echo $i sudo dpkg -i $i done echo done exit
    2. 動作確認

      Dlib の確認のため,次の顔検出 (face detection) のプログラムを動かしてみる.

      #include<dlib/image_processing/frontal_face_detector.h>
      #include<dlib/image_io.h>
      #include<iostream>
      
      using namespace dlib;
      using namespace std;
      
      int main(int argc, char** argv)
      {  
        frontal_face_detector detector = get_frontal_face_detector();
        array2d<unsigned char> img;
        load_image(img, argv[1]);
        pyramid_up(img);
        std::vector<rectangle> dets = detector(img);
        std::vector<rectangle>::iterator it;
        for( it = dets.begin(); it != dets.end(); it++ )
          cout << *it << endl; 
      }
      

      このプログラムを a.cpp のようなファイル名で保存する.次のコマンドでビルドする.

      g++ -o a.out a.cpp -ldlib -llapack -lblas
      

      次のように、画像ファイル名を指定して実行する

      実行の結果,顔検出 (face detection) ができていることを確認.

      ./a.out /usr/share/doc/libdlib19/examples/faces/2007_007763.jpg
      

      [image]
    3. Python の Dlib の最新版のインストール

      Dlib のソースコードをダウンロードしてインストールする. このとき,Dlib の python_examples, tools のファイルを /usr/share/doc/libdlib19 以下にコピーすることも行う.

      次のコマンドを実行.

      /usr/local/cuda」のところは,NVIDIA CUDA ツールキット をインストールしたディレクトリに読み替えること.

      次のコマンドを実行.

      cd /tmp
      sudo rm -rf dlib
      sudo git clone https://github.com/davisking/dlib
      sudo chown -R $USER dlib
      #
      cd /tmp/dlib
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo python3 setup.py build
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo python3 setup.py install  
      cd /tmp/dlib
      sudo rm -f /tmp/dlib.tar
      sudo tar -cpf /tmp/dlib.tar ./python_examples  ./tools
      cd /usr/share/doc/libdlib19
      sudo tar -xpf /tmp/dlib.tar
      
    4. 確認のため,バージョンを表示

      次のコマンドを実行.

      エラーメッセージが出ないこと

      python3 -c "import dlib;print(dlib.__version__)"
      

      [image]
    5. Dlib でよく使用するファイルをダウンロード

      次のコマンドを実行.することにより, 顔識別などに利用できるファイルの ダウンロードと展開(解凍)が行われる.

      次のコマンドを実行.

      cd /usr/share/dlib
      sudo curl -O http://dlib.net/files/mmod_human_face_detector.dat.bz2
      sudo curl -O http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
      sudo curl -O http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
      sudo curl -O http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
      sudo bzip2 -d mmod_human_face_detector.dat.bz2
      sudo bzip2 -d dlib_face_recognition_resnet_model_v1.dat.bz2
      sudo bzip2 -d shape_predictor_5_face_landmarks.dat.bz2
      sudo bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
      
    6. htmlify, imglab, example のビルドとインストール

      次のコマンドを実行.

      /usr/local/cuda」のところは,NVIDIA CUDA ツールキット をインストールしたディレクトリに読み替えること.

      sudo rm -rf /tmp/dlib.tar /tmp/tools
      cd /usr/share/doc/libdlib19
      tar -cpf /tmp/dlib.tar ./tools
      cd /tmp
      tar -xpf /tmp/dlib.tar 
      sudo chown -R $USER tools
      
      #
      cd /tmp
      cd tools/htmlify
      sudo rm -rf build
      mkdir build
      cd build
      cmake ..
      cmake --build . --config RELEASE 
      sudo make install
      
      cd /tmp
      cd tools/imglab
      sudo rm -rf build
      mkdir build
      cd build
      cmake ..
      cmake --build . --config RELEASE 
      sudo make install
      
      cd /tmp
      cd examples
      sudo rm -rf build
      mkdir build
      cd build
      cmake ..
      cmake --build . --config RELEASE 
      

      face_recognition のインストール操作

      cd /usr/local
      sudo rm -rf face_recognition
      sudo apt -y install python3-click python3-numpy python3-pillow python3-scipy
      sudo git clone https://github.com/ageitgey/face_recognition
      cd face_recognition
      sudo python3 setup.py build
      sudo python3 setup.py install 
      

    12.2 head-pose-estimation (顔の向きの推定)

    インストールするには, 次のコマンドを実行.

    cd /usr/local
    sudo rm -rf head-pose-estimation
    sudo git clone https://github.com/lincolnhard/head-pose-estimation
    cd head-pose-estimation
    sudo curl -O http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2  
    sudo bzip2 -d shape_predictor_68_face_landmarks.dat.bz2  
    

    12.3 pupil tracker (眼球の向きの推定)

    cd /usr/local
    sudo rm -rf PupilTracker
    sudo git clone https://github.com/TobiasRoeddiger/PupilTracker
    

    12.4 OpenPose (人体の姿勢推定,指のポーズ推定),Caffe

  • OpenPose, Caffe のビルドとインストール

    次のコマンドを実行.

    GPU 版をインストールしたい場合

    /usr/local/cuda」のところは,NVIDIA CUDA ツールキット をインストールしたディレクトリに読み替えること.

    Intel MKL を使わないときは「-DUSE_MKL=ON」を「-DUSE_MKL=OFF」に変えること.

    /opt/intel/compilers_and_libraries/linux/mkl/include/mkl」のところは,Intel MKL の mkl.h があるディレクトリに読み替えること.

    sudo apt -y update
    sudo apt -y install libopencv-dev libhdf5-dev libboost-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-regex-dev libatlas-base-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler libgoogle-glog-dev libleveldb-dev liblmdb-dev 
    sudo rm -rf /usr/local/openpose
    sudo mkdir /usr/local/openpose
    sudo chmod 755 /usr/local/openpose
    sudo chown -R ${USER} /usr/local/openpose
    cd /usr/local
    sudo git clone --recursive https://github.com/CMU-Perceptual-Computing-Lab/openpose
    sudo chown -R ${USER} /usr/local/openpose
    cd /usr/local/openpose
    sudo rm -f CMakeCache.txt
    CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include -I/opt/intel/compilers_and_libraries/linux/mkl/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      cmake -DDOWNLOAD_BODY_COCO_MODEL=ON \
      -DBUILD_PYTHON=ON \
      -DBUILD_EXAMPLES=ON \
      -DINSTRUCTION_SET=AVX2 \
      -DUSE_MKL=ON \
      -DBUILD_CAFFE=ON \
      -DBUILD_PYTHON=ON \
      -DGPU_MODE=CUDA \
      -DCUDNN_INCLUDE=/usr/local/cuda/include \
      -DCUDNN_LIBRARY=/usr/lib/x86_64-linux-gnu .
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include -I/opt/intel/compilers_and_libraries/linux/mkl/include" LDFLAGS="-L/usr/local/cuda/lib64" sudo make -k 
    sudo make -k install
    
  • モデルのダウンロード
    cd /usr/local/openpose/models
    sudo bash /usr/local/openpose/models/getModels.sh
    
  • 動作確認
    cd /usr/local/openpose
    ./examples/openpose/openpose.bin --video ./examples/media/video.avi
    
  • .bin ファイルを /usr/local/bin 下にコピー
    cd /usr/local/openpose
    sudo make -k install
    cd /usr/local/openpose/examples
    sudo chmod 755 */*.bin
    sudo cp */*.bin /usr/local/bin/
    sudo /sbin/ldconfig
    

    12.5 Tesseract OCR 5

    説明ページ https://www.kkaneko.jp/ai/ubuntu/tesseract.html

    動画リンク: https://www.youtube.com/watch?v=dQu4GHy754o

    12.6 Github dyama/alpr_jp

    次のコマンドを実行.

    cd /usr/local
    rm -rf alpr_jp
    sudo git clone https://github.com/dyama/alpr_jp
    

    12.7 ipazc/mtcnn

    次のコマンドを実行.

    sudo pip3 install git+https://github.com/ipazc/mtcnn.git
    python3 -c "import mtcnn; print(mtcnn.__version__)"
    

    12.8 matterplot/masked_rcnn (画像のセグメンテーション)

    matterplot/masked_rcnn の URL: https://github.com/matterport/Mask_RCNN

    次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install python3-skimage cython3
    sudo pip3 install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
    cd /usr/local
    sudo git clone --recursive https://github.com/matterport/Mask_RCNN
    cd Mask_RCNN
    cat requirements.txt
    sudo apt -y install python3-numpy python3-scipy python3-pil cython3 python3-matplotlib python3-skimage python3-h5py python3-ipython
    sudp apt -y install libopencv-dev libopencv-core-dev python3-opencv libopencv-contrib-dev opencv-data
    sudo pip3 install -U tensorflow keras imgaug 
    sudo python3 setup.py build
    sudo python3 setup.py install
    

    https://github.com/matterport/Mask_RCNN/blob/master/samples/demo.ipynb に記載のプログラムを実行してみる.

    12.9 Meshroom(写真測量,フォトグラメトリ)

    関連する外部ページ

    Meshroom のインストール操作(Windows 上)

    12.10 muZero

    次のコマンドを実行.

    cd /usr/local
    sudo rm -rf muzero-general
    sudo git clone https://github.com/werner-duvaud/muzero-general.git
    cd muzero-general
    sudo apt -y install python3-pil python3-aiohttp python3-aiohttp-cors python3-aioredis python3-async-timeout python3-blessings python3-filelock python3-hiredis python3-u-msgpack python3-multidict python3-pyglet python3-redis python3-yarl
    sudo pip3 install -r requirements.txt
    

    確認のため実行してみる.

    cd /usr/local/muzero-general
    python3 muzero.py
    tensorboard --logdir ./results
    

    12.11 OpenAIGym

    次のコマンドを実行.

    cd /usr/local
    sudo rm -rf gym
    sudo git clone https://github.com/openai/gym.git
    cd gym
    sudo pip3 install -e .
    sudo apt -y install libglu1-mesa-dev libgl1-mesa-dev libosmesa6-dev xvfb ffmpeg curl patchelf libglfw3 libglfw3-dev cmake zlib1g zlib1g-dev swig
    

    13. エディタ

    13.1 Geany

    シンタックスハイライト,自動補完などの機能を持つエディタ. geany で起動.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install geany geany-plugins
    

    13.2 Sublime Text

    オートコンプリート,シンタックスハイライトを特色とするエディタ. subl で起動.

    インストールするには, 次のコマンドを実行.

    wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
    sudo apt -y install apt-transport-https
    echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
    sudo apt -y update
    sudo apt -y install sublime-text
    

    13.3 Visual Studio Code (エディタ)

    Visual Studio Code はエディタ.軽快動作.操作法は簡単.  プログラム作成に向いた拡張機能が充実.Windows などでも動く.

    インストール手順

    ダウンロードしインストールする.

    上のURLからダウンロードし,次のコマンドを実行.

    sudo dpkg -i ./code_1.*_amd64.deb
    

    13.4 Visual Studio Code の拡張機能

    拡張機能は,必要なものをインストールする.次に拡張機能を例示している.利用者で判断すること.

    13.5 emacs

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install emacs emacs-mozc mozc-data mozc-utils-gui
    

    mozc の設定

    /usr/lib/mozc/mozc_tool --mode=config_dialog
    

    mozc を使うための .emacs.d/init.el の設定例

    (require 'mozc)
    (load-library "mozc")
    (set-language-environment "Japanese")
    (setq default-input-method "japanese-mozc")
    (global-set-key [zenkaku-hankaku] 'toggle-input-method)
    (prefer-coding-system 'utf-8)
    

    追加の設定例

    ;; キーバインド. CTRL + Z を無視.CTRL + H でバックスペース.
    (global-unset-key "\C-z")
    (keyboard-translate ?\C-h ?\C-?)
    
    ;; 表示を単純化(スタートアップメッセージなし.スクラッチは空.ツールバー無し,
    ;; スクロールバーなし).,ベル無し.
    (setq ring-bell-function 'ignore)
    (setq inhibit-startup-message t)
    (setq initial-scratch-message "") 
    (tool-bar-mode -1)
    (menu-bar-mode 0)
    (set-scroll-bar-mode nil)
    (setq frame-title-format (format "%%f - Emacs@%s" (system-name)))
    
    ;; 行番号表示
    (global-linum-mode t)
    (column-number-mode t)
    
    ;; かっこの対応の表示に関する設定
    ;; (show-paren-mode t)
    ;; (setq show-paren-delay 0)
    ;; (setq show-paren-style 'expression)
    
    ;; 余計な空白を色付きで表示
    (setq-default show-trailing-whitespace t)
    (set-face-background 'trailing-whitespace "#b14770")
    
    ;; yes, no は,y, n で済むように
    (fset 'yes-or-no-p 'y-or-n-p)
    
    ;; 履歴
    (recentf-mode t)
    (setq recentf-max-menu-items 30)
    (setq recentf-max-saved-items 5000)
    
    ;; スクロールの量
    (setq scroll-conservatively 35
          scroll-margin 0
          scroll-step 1)
    (setq comint-scroll-show-maximum-output t)
    
    ;; タブ
    (electric-indent-mode -1)
    (setq-default indent-tabs-mode nil)
    (custom-set-variables '(tab-width 4))
    
    ;; 補完
    (when (require 'auto-complete-config nil t)
       (ac-config-default))
    (setq text-mode-hook 'turn-off-auto-fill)
    

    14. Web ブラウザ,リモートファイル転送,リモート接続 (Ubuntu 上)

    14.1 Firefox

    Firefox は Web ブラウザ.firefox で起動.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install firefox firefox-locale-ja
    

    14.2 Chromium

    Chromium は Web ブラウザ.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install chromium-browser chromium-browser-l10n
    

    14.3 FileZilla

    FileZilla はファイル転送に便利なソフト.filezilla で起動.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install filezilla
    

    14.4 xrdp

    xrdp はリモートデスクトップのソフトウェア.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install xrdp
    

    15. ツール類(作図、ファイル検索など) (Ubuntu 上)

    15.1 mlocate (ファイル検索)

    locate で起動.

    sudo apt -y update
    sudo apt -y install mlocate
    

    15.2 catfish (ファイル検索)

    catfish で起動.

    sudo apt -y update
    sudo apt -y install catfish
    

    15.3 jq (JSON整形), jsonlint (JSONチェッカ)

    sudo apt -y update
    sudo apt -y install jq jsonlint
    

    15.4 Pinta (ドロー)

    pinta で起動.

    sudo apt -y update
    sudo apt -y install pinta
    

    15.5 Shutter (スクリーンショット)(書きかけ)

    shutter で起動.

    sudo add-apt-repository -y -n ppa:sicklylife/ppa 
    sudo apt -y update 
    sudo apt -y install libgoocanvas2-perl 
    sudo add-apt-repository -y --remove ppa:sicklylife/ppa 
    sudo add-apt-repository -y -n ppa:shutter/ppa
    sudo apt -y update 
    sudo apt -y install shutter
    

    15.6 GraphViz (作図ツールとライブラリ)

    ニューラルネットの描画(例えば「tf.keras.utils.plot_model(model, show_shapes=True」で描画)のときにも役に立つツール.

    sudo apt -y update
    sudo apt -y install graphviz libgraphviz-dev
    

    15.7 draw.io (作図ツール)

    ER図,UML図,回路図,ネットワーク図などの簡単作成。 利用条件等は,利用者で確認すること。   drawio で起動.

    上のURLからダウンロードし,次のコマンドを実行.

    sudo dpkg -i ./draw.io-amd64-13.9.9.deb
    sudo apt -y install draw.io
    

    15.8 PlotDigitizer

    PlotDigitizer は,画面上でマウスクリックして座標値を得る機能を持ったソフトウェア).

    15.9 inotify-tools (ファイル更新監視)

    sudo apt -y update
    sudo apt -y install inotify-tools
    

    15.10 hardinfo (ハードウェア情報)

    hardinfo で起動.

    sudo apt -y update
    sudo apt -y install hardinfo
    

    15.11 netcat (通信), net-tools (通信設定)

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install netcat net-tools 
    

    16. PostgreSQL 12, PostgreSQL JDBC ドライバのインストール

    PostgreSQL はリレーショナル・データベース管理システム. コマンドラインクライアントは psql で起動.

    16.1 インストール

    1. PostgreSQL および関連ソフトウェア類のインストール

      インストールするには, 次のコマンドを実行.

      sudo apt -y update
      sudo apt -y install postgresql-12 postgresql-client-12 postgresql-client-common postgresql-common postgresql-contrib odbc-postgresql pgadmin3 postgresql-12-postgis-3 postgresql-server-dev-12 python3-psycopg2 default-jdk libpostgresql-jdbc-java postgresql-plpython3-12 libpq-dev
      
    2. PostgreSQL サーバを起動開始

      エラーメッセージが出ていなければ OK.

      sudo pg_ctlcluster 12 main start
      sudo pg_ctlcluster 12 main status
      

      [image]
    3. PostgreSQL の動作確認

      Ubuntu のサービスアカウント postgres と peer 認証により,PostgreSQL の psql を使ってみる.

      「\c」により,使用されている PostgreSQL のロール名と,オープンされているデータベース名を確認.

      確認したら,「\q」により終了.

      sudo -u postgres psql
      \c
      \q
      

      [image]
    4. データベースの確認

      postgres, template0, template1 の 3 つのデータベースが表示されることを確認.

      sudo -u postgres psql
      \l
      \q
      

      [image]

      [image]
    5. psql のバージョン確認
      psql --version
      

    16.2 postgresql.conf の設定例

    ファイルは, 「sudo find -name "postgresql.conf" -print」で探すことができる.

    設定例

    shared_buffers = 1GB
    work_mem = 1GB
    max_files_per_process = 1000
    effective_cache_size = 4GB
    

    パーソナルに使う場合は,オンライントランザクション処理を行わないので,WAL の機能を実質オフににして運用する可能性がある.

    wal_level = minimal
    archive_mode = off
    max_wal_senders = 0
    

    データベースファイルを SSD, NVMe に置くときは,次のように設定

    random_page_cost = 1.1
    

    16.3 psql の基本操作

    psql の種々の操作について: 別ページ »で説明

    16.4 SQL の実行手順例

    psql の種々の操作について: 別ページ »で説明

    Ubuntu のユーザ postgres と peer 認証により,PostgreSQL の psql を使ってみる.

    sudo -u postgres psql
    create table T (id integer, name text);
    insert into T values(1, 'hello');
    select * from T;
    \q
    exit
    

    psql を用いて外部ファイルを実行する場合

    sudo -u postgres psql
    \i hoge.sql
    \q
    exit
    

    16.5 PL/Python Extension のインストール

    psql を起動し,次のコマンドを実行することにより,インストールする. インストールがうまく行かない場合には,Python のバージョンが合致しないことが考えられる. Python のバージョンについては,インストールのドキュメントや Dependency (https://github.com/lucasg/Dependencies) で確認することができる.

    sudo -u postgres psql 
    CREATE EXTENSION plpython3u;
    SELECT * FROM pg_language;
    \c
    \q
    exit
    

    [image]

    17. データベースツール等

    17.1 DBeaver Community Edition

    DBeaver Community Edition はデータベースツール. dbeaver で起動.

    動作には,Java 11 以上が必要.「java -version」でバージョンを確認できる.

    インストール手順 (Ubuntu の場合)

    インストールするには, 次のコマンドを実行.

    cd /tmp
    sudo apt -y install default-jdk
    curl -O https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb
    sudo dpkg -i dbeaver-ce_latest_amd64.deb
    

    17.2 SQL Workbench/J Build 128

    SQL Workbench/J はデータベースツール. sqlworkbench.sh で起動.

    cd /tmp
    curl -O https://www.sql-workbench.eu/Workbench-Build128-with-optional-libs.zip
    cd /usr/local
    sudo mkdir /usr/local/sqlworkbench
    cd /usr/local/sqlworkbench
    sudo unzip /tmp/Workbench-Build128-with-optional-libs.zip
    sudo bash sqlworkbench.sh
    cd /usr/local/bin
    sudo rm -f sqlworkbench.sh
    sudo ln -s /usr/local/sqlworkbench/sqlworkbench.sh .
    

    17.3 SQLite 3

    SQLite 3はリレーショナル・データベース管理システム.sqlite3 で起動.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install sqlite3
    

    17.4 SQLite Studio 3.3.3

    sqlitestudio, sqlitestudiocli で起動.

    cd /tmp
    curl -LO https://github.com/pawelsalawa/sqlitestudio/releases/download/3.3.3/sqlitestudio-3.3.3.tar.xz
    xz -d sqlitestudio-3.3.3.tar.xz
    cd /usr/local
    sudo tar -xvof /tmp/sqlitestudio-3.3.3.tar
    cd /usr/local/bin
    sudo ln -s /opt/SQLiteStudio/sqlitestudio .
    sudo ln -s /opt/SQLiteStudio/sqlitestudiocli .
    

    17.5 Cloudera Manager Packages

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
    

    18. メディア(地図情報、ビデオ、3次元コンピュータグラフィックス、3次元点群、プロットデジタイザ)

    18.1 GRASS GIS, GDAL, PostGIS (地理情報システム) 及び関連ソフトウェア

    地理情報(ポイント,ライン,ポリゴン,ラスター)を扱う機能を持ったシステム

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install grass
    sudo apt -y install gdal-bin gdal-data python3-gdal python3-geopandas libgdal-dev libgdal-dev pktools pktools-dev
    sudo apt -y install postgis qgis postgresql-12-pgrouting osm2pgsql 
    

    PostgreSQL で,データベース名 pgis のデータベースを新規作成し,そのデータベースに PostGIS 拡張を行ってみる

    sudo -u postgres createdb pgis
    sudo -u postgres psql -d pgis
    \c
    create extension postgis;
    create extension postgis_topology;
    \q
    exit
    

    [image]

    18.2 Google Earth Pro

    18.3 MeCab (形態素解析)

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install mecab libmecab-dev mecab-utils mecab-jumandic-utf8 mecab-naist-jdic python3-mecab
    

    18.4 Juman++ (形態素解析)

    Juman++ は,次のURLで公開されている形態素解析のソフトウェア.利用条件等は利用者自身で確認すること.

    URL: https://github.com/ku-nlp/jumanpp

    1. アセットの確認

      https://github.com/ku-nlp/jumanpp/releases

    2. ソースコード(事前学習済みモデルを含む)のダウンロードとインストール

      次のコマンドは,2.0.0-rc3 を試したいときの手順

      sudo apt -y update
      sudo apt -y install libeigen3-dev libprotobuf-dev protobuf-c-compiler
      sudo pip3 install -U pyknp
      cd /tmp
      sudo curl -O https://github.com/ku-nlp/jumanpp/releases/download/v2.0.0-rc3/jumanpp-2.0.0-rc3.tar.xz
      tar -xvJof jumanpp-2.0.0-rc3.tar.xz
      cd jumanpp-2.0.0-rc3
      mkdir build
      cd build
      rm CMakeCache.txt
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
      make
      sudo make install
      echo 'こんにちは,今日は晴れです' | jumanpp
      

    18.4 ImageMagick (画像処理コマンド)

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install imagemagick
    

    18.5 VLC Media Player (メディアプレイヤー)

    vlc はメディアプレイヤー.vlc で起動.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install vlc
    

    18.6 OpenShot (動画)

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install openshot
    

    18.7 Avidemux (ビデオ編集)

    18.8 Blender 2.8 (3次元コンピュータグラフィックス)

    Blender は、3次元コンピュータグラフィックスの定番の1つ. モデリング,レンダリング,アニメーションなどのさまざまな機能を持つ. Blender で起動.

    インストールするには, 次のコマンドを実行. そして,起動時に「日本語」を選ぶ.

    sudo apt -y update
    sudo apt -y install blender blender-data
    

    18.9 MakeHuman 1.2 (人体モデル)

    人体モデリング(体形,顔,手,足,衣服,髪の毛,ポーズなど), 骨格(リグ)の形成もでき,アニメーション化にも便利. makehuman-community で起動.

    インストールするには, 次のコマンドを実行.

    sudo add-apt-repository -y ppa:makehuman-official/makehuman-community
    sudo apt -y update
    sudo apt -y install makehuman-community makehuman-community-blendertools
    

    18.10 Blender の MH community アドオンのインストール

    Windows の場合での説明ページ https://www.kkaneko.jp/db/win/makehumaninst.html

    18.11 MeshLab (ポリゴン,3次元点群)

    ポリゴン,3次元点群に関する種々の機能.画面とメニューで操作. meshlab で起動.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install meshlab
    

    18.12 CloudCompare (3次元点群)

    CloudCompare, ccViewer で起動.

    前準備として,C/C++ コンパイラー, makeのインストールが終わっていること.

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install qtbase5-dev qtdeclarative5-dev qt5-default qttools5-dev libqt5widgets5 libqwt-qt5-dev libqt5svg5-dev
    cd /tmp
    rm -f master.zip
    sudo rm -rf CloudCompare-master
    # sudo curl -O https://github.com/CloudCompare/CloudCompare/archive/master.zip
    git clone --recursive https://github.com/CloudCompare/CloudCompare
    cd CloudCompare
    rm -rf build
    mkdir build
    cd build
    cmake ..
    cmake --build .
    sudo make install
    

    18.13 PCL (3次元点群)

    davidcaron/pclpy を使いたい.次のページによれば,バージョンは 1.9.1 が指定されている.

    davidcaron/pclpy の URL: https://github.com/davidcaron/pclpy

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install libboost-all-dev libeigen3-dev libvtk9-dev libflann-dev
    cd /usr/local
    sudo rm -rf pcl-pcl-1.9.1
    cd /tmp
    curl -O -L https://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.9.1.tar.gz
    cd /usr/local
    sudo tar -xvzof /tmp/pcl-1.9.1.tar.gz
    sudo chown -R $USER pcl-pcl-1.9.1
    cd pcl-pcl-1.9.1
    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j2
    sudo make install
    

    18.14 OpenNI (ドライバ), libPCL (3次元)

    次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install openni2-utils libopenni2-dev
    sudo apt -y install primesense-nite-nonfree
    sudo apt -y install libpcl-dev
    

    18.15 OpenCV (コンピュータビジョン)

    ※ OpenCV で NVIDIA cuDNN を使いたい場合には,NVIDIA の所定のページで,登録を行い,利用条件を確認した上で,別途インストールしておくこと.

    次のコマンドを実行.

    cd /tmp
    sudo rm -rf opencv
    git clone --recursive https://github.com/opencv/opencv.git
    cd /usr/local
    sudo rm -rf opencv_contrib
    sudo git clone --recursive https://github.com/opencv/opencv_contrib.git
    sudo apt -y install python3-dev pylint3 flake8 python3-flake8
    cd /tmp
    cd opencv
    sudo rm -rf build
    mkdir build
    cd build
    CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
    cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D OPENCV_EXTRA_MODULES_PATH=/usr/local/opencv_contrib/modules \
          -D OpenBLAS_INCLUDE_DIR=/usr/include/x86_64-linux-gnu \
          -D OpenBLAS_LIB=/usr/lib/x86_64-linux-gnu/libopenblas.so \
          -D INSTALL_TESTS=ON \
          -D INSTALL_C_EXAMPLES=ON \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D WITH_PYTHON=ON \
          -D BUILD_opencv_python2=OFF \
          -D BUILD_opencv_python3=ON \
          -D PYTHON_DEFAULT_EXECUTABLE=python3 \
          -D BUILD_EXAMPLES=ON ..
    CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
        make -j4
    sudo make install
    export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}
    echo 'export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc
    sudo /sbin/ldconfig
    

    19. UnrealEngine 4

    ソースコードの取得のために,EPIC Game Account アカウントの取得,GitHub アカウントの取得, EpicGamesのアカウントとGitHubアカウントの連携を行っておくこと.

    利用条件を確認すること. UnrealEngine 4 本体のソースコードやビルドの成果物を他者に開示しないのがよい(くれぐれも,利用条件は,利用者自身で確認すること).

    ※ UnrealEngine4 で NVIDIA cuDNN を使いたい場合には,インストールしておくこと.

    次のコマンドを実行.

    # ue4
    cd /usr/local
    sudo git clone --recursive https://github.com/EpicGames/UnrealEngine.git
    # github username and password 
    cd UnrealEngine
    sudo ./Setup.sh
    sudo ./GenerateProjectFiles.sh
    sudo make
    # UE4Editor で起動
    
    cd /usr/local
    sudo git clone --recursive https://github.com/EpicGames/BlenderTools.git
    cd /usr/local
    sudo git clone --recursive https://github.com/EpicGames/UGCExample.git
    

    20. Java 開発環境及びパッケージ類

    20.1 OpenJDK (Ubuntu 上)

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install default-jdk
    sudo update-java-alternatives -l
    sudo update-java-alternatives --jre -s java-1.11.0-openjdk-amd64
    sudo update-java-alternatives --jre-headless -s java-1.11.0-openjdk-amd64
    sudo update-alternatives  --config java
    java -version
    

    「java -version」でバージョンを確認できる.

    ~/.bashrc または ~/.bash_profile に次のように設定(設定例

    export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
    export PATH=/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin:$PATH
    export CLASSPATH=.:/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib
    

    20.2 Eclipse

    sudo apt -y update
    sudo apt -y install eclipse-titan
    

    ファイル「HelloWorld.java」の作成し、動作確認を行う.

    public class HelloWorld
    {
        public static void main(String args[])
        {
            System.out.println("Hello Java World !");
        }
    }
    

    コンパイルと実行

    javac HelloWorld.java
    java HelloWorld
    

    20.3 GreenFoot (Java 学習ソフト)

    Web ブラウザで最新情報を確認ののち,インストールを行う.

    URL: https://www.greenfoot.org

    インストールするには, 次のコマンドを実行.

    cd /tmp
    sudo curl -O https://www.greenfoot.org/download/files/Greenfoot-linux-361.deb
    sudo dpkg -i Greenfoot-linux-361.deb
    

    20.4 BlueJ (Java クラス設計など)

    Web ブラウザで最新情報を確認ののち,インストールを行う.

    BlueJ の URL: http://www.bluej.org

    インストールするには, 次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install libopenjfx-java openjfx
    cd /tmp
    sudo rm -f BlueJ-linux-422.deb
    sudo curl -O http://www.bluej.org/download/files/BlueJ-linux-422.deb
    sudo dpkg -i BlueJ-linux-422.deb
    

    ファイル「HelloWorld.java」の作成

    public class HelloWorld
    {
        public static void main(String args[])
        {
            System.out.println("Hello Java World !");
        }
    }
    

    コンパイルと実行

    javac HelloWorld.java
    java HelloWorld
    

    21. R システム

    21.1 R システムとR.Studio(R開発環境)

    インストールするには, 次のコマンドを実行.

    export RELEASE=`lsb_release -sc`
    gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
    gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
    sudo add-apt-repository --yes "deb https://cloud.r-project.org/bin/linux/ubuntu ${RELEASE}-cran40/" 
    sudo apt -y update
    #
    sudo apt -y install   r-base
    sudo apt -y install   r-base-core
    sudo apt -y install   r-base-dev
    sudo apt -y install   r-recommended
    sudo apt -y install   r-mathlib
    sudo apt -y install   r-cran-boot
    sudo apt -y install   r-cran-class
    sudo apt -y install   r-cran-cluster
    sudo apt -y install   r-cran-codetools
    sudo apt -y install   r-cran-foreign
    sudo apt -y install   r-cran-hmisc
    sudo apt -y install   r-cran-kernsmooth
    sudo apt -y install   r-cran-lattice
    sudo apt -y install   r-cran-mass
    sudo apt -y install   r-cran-matrix
    sudo apt -y install   r-cran-mgcv
    sudo apt -y install   r-cran-nlme
    sudo apt -y install   r-cran-nnet
    sudo apt -y install   r-cran-rcmdr
    sudo apt -y install   r-cran-rpart
    sudo apt -y install   r-cran-spatial
    sudo apt -y install   r-cran-survival
    sudo apt -y install   r-cran-vr
    sudo apt -y install   r-cran-rodbc
    sudo apt -y install littler 
    sudo apt -y install libjpeg62
    ls /usr/lib/R/
    

    21.2 R の各種パッケージ

    インストールするには, 次のコマンドを実行.

    echo 'options(repos="http://cran.rstudio.com"); update.packages(checkBuilt=TRUE, ask=FALSE)' | sudo R --vanilla 
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("EBImage") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'install.packages("dplyr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    echo 'install.packages("plyr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    echo 'install.packages("dplyr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    echo 'install.packages("reshape2", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    echo 'install.packages("ggplot2", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    echo 'install.packages("knitr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    echo 'install.packages("sp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    echo 'install.packages("raster", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    sudo apt -y install gdal-bin
    echo 'install.packages("rgdal", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html"))' | sudo R --vanilla 
    #
    
    #
    sudo apt -y install r-recommended rstudio
    sudo apt -y install 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    # EBImage
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("EBImage") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    # dplyr
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("dplyr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # qvalue
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("qvalue") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    # pam
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("pam", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # pca3d
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("pca3d", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # tm
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("tm", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # mmand
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("mmand", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # devtools
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("devtools", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # ctv
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("ctv", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # osmar
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("osmar", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # pi0
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("pi0", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # leaps
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("leaps", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # ifs 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("ifa", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # BMA
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("BMA", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # WriteXLS
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("WriteXLS", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # CHsharp
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("CHsharp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # brew
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("brew", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # data.table
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("data.table", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # pcaPP
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("pcaPP", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # fastICA
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("fastICA", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # zoo
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("zoo", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    
    #
    for i in Cluster Graphics MachineLearning Multivariate NaturalLanguageProcessing Robust Spatial SpatioTemporal TimeSeries; do 
      echo $i
      rm -f /tmp/a.$$.r 
      echo "options(repos=\"http://cran.rstudio.com\") " > /tmp/a.$$.r 
      echo "library(ctv); install.views(\"$i\", repos=\"http://cran.rstudio.com/\") " >> /tmp/a.$$.r
      cat /tmp/a.$$.r | sudo R --vanilla 
    done 
    
    # base
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("abind", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("boot", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("car", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("chron", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("cluster", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("codetools", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("colorspace", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("effects", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("foreign", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("lattice", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("lmtest", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("mgcv", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("multcomp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("mvtnorm", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("relimp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("rpart", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sandwich", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sm", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("spatial", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("strucchange", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("survival", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # additional 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("catspec", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("cluster", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("deldir", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("diagram", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("fields", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("fftw", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gregmisc", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("igraph", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("nlme", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("nnclust", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("png", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("pixmap", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("pvclust", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("rgl", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("scatterplot3d", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("som", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Hmisc", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Rcmdr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("RcmdrPlugin.KMggplot2", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("RSQLite", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("CCA", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("KernSmooth", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("MASS", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Matrix", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Rcmdr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # more
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("ggplot2", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("xlsxjars", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("xlsx", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("shiny", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("chron", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sqldf", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("plyr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("entropy", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("moments", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("spatstat", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("png", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("biOps", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("biOpsGUI", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("maptools", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("caTools", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    # echo 'install.packages("class", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    # cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("evd", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("its", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("mapproj", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("mnormt", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sm", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("stabledist", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("timeSeries", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("tseries", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("bayesm", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gdata", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gmodels", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("rpart", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Zelig", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("forecast", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    
    #
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("osmar") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("Rgraphviz") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("hypergraph") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("RBGL") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'source("http://bioconductor.org/biocLite.R")' > /tmp/a.$$.r 
    echo 'biocLite("GraphPart") ' >> /tmp/a.$$.r 
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("XML", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gridExtra", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gridSVG", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("png", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("jpeg", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("igraph", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Rcpp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("RcppExamples", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("mvoutlier", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("randomForest", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("plyr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("reshape2", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("forecast", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("stringr", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("lubridate", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sqldf", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("ggplot2", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("party", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gdm", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("survival", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("caTools", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Epi", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("vcd", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Rz", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("parallel", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("compiler", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Imap", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("changepoint", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gstat", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("rgeos", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("maptools", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("shapefiles", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("spsurvey", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("sp", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("RColorBrewer", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("forecast", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("psych", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("xts", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("timeSeries", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("gregmisc", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("mclust", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("topmodel", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("insol", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("rJava", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("RWekajars", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("RWeka", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("Snowball", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("lsa", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    #
    sudo rm /tmp/a.$$.r
    echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
    echo 'install.packages("stringdist", repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # again 
    echo 'options(repos="http://cran.rstudio.com")' > /tmp/a.$$.r 
    echo 'update.packages(checkBuilt=TRUE, ask=FALSE, repos="http://cran.rstudio.com/", clean=TRUE, INSTALL_opts=c("--no-docs", "--no-html")) ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    # again and again
    echo 'options(repos="http://cran.rstudio.com")' > /tmp/a.$$.r 
    echo 'update.packages(checkBuilt=TRUE, ask=FALSE, repos="http://cran.rstudio.com/") ' >> /tmp/a.$$.r
    cat /tmp/a.$$.r | sudo R --vanilla 
    

    22. ゲーム

    sudo apt -yV install wesnoth-1.10-dw 
    sudo apt -yV install  wesnoth libmikmod2 libsdl-mixer1.2 libsdl-net1.2 libsmpeg0 
    sudo apt -yV install  wesnoth-1.10 wesnoth-1.10-aoi wesnoth-1.10-core wesnoth-1.10-data wesnoth-1.10-did wesnoth-1.10-dm wesnoth-1.10-ei wesnoth-1.10-httt wesnoth-1.10-l wesnoth-1.10-low wesnoth-1.10-music wesnoth-1.10-nr wesnoth-1.10-sof wesnoth-1.10-sotbe wesnoth-1.10-thot wesnoth-1.10-trow wesnoth-1.10-tsg wesnoth-1.10-ttb wesnoth-1.10-utbs 
    sudo apt -yV install  wesnoth-1.10-data wesnoth-1.0-music
    sudo apt -yV install  libphysfs1 trigger trigger-rally trigger-rally-data
    sudo apt -yV install  libsdl-net1.2 scorched3d scorched3d-data
    sudo apt -yV install  hedgewars hedgewars-data libmikmod2 libsdl-mixer1.2 libsdl-net1.2 libsmpeg0
    sudo apt -yV install  openttd openttd-data openttd-opengfx openttd-openmsx timidity timidity-daemon
    sudo apt -yV install  openttd-opensfx
    sudo apt -yV install  libglee0d1 libphysfs1 warzone2100 warzone2100-data warzone2100-music
    sudo apt -yV install  nexuiz nexuiz-data nexuiz-music nexuiz-textures
    sudo apt -yV install  libode1 darkplaces 
    sudo apt -yV install  frogatto frogatto-data libmikmod2 libsdl-mixer1.2 libsmpeg0 
    sudo apt -yV install  fb-music-high frozen-bubble frozen-bubble-data libmikmod2 libsdl-gfx1.2-4 libsdl-mixer1.2 libsdl-net1.2 libsdl-pango1 libsdl-perl libsmpeg0
    sudo apt -yV install gnome-games 
    sudo apt -yV install gnome-games-common 
    sudo apt -yV install gnome-games-extra-data 
    sudo apt -yV install gnotski
    sudo apt -yV install gnobots2
    sudo apt -yV install swell-foop
    sudo apt -yV install gnotravex
    sudo apt -yV install glchess
    sudo apt -yV install lightsoff
    sudo apt -yV install gnect
    sudo apt -yV install torcs
    sudo apt -yV install torcs-data
    sudo apt -yV install torcs-data-tracks
    sudo apt -yV install pingus
    sudo apt -yV install bouncy
    sudo apt -yV install circuslinux
    sudo apt -yV install defendguin
    sudo apt -yV install fretsonfire
    sudo apt -yV install supertuxkart-data
    sudo apt -yV install supertuxkart
    sudo apt -yV install tuxpuck
    sudo apt -yV install tuxtype
    sudo apt -yV install tuxtype-data
    sudo apt -yV install cowsay
    sudo apt -yV install extremetuxracer
    sudo apt -yV install extremetuxracer-data
    sudo apt -yV install extremetuxracer-extras
    sudo apt -yV install magicor
    sudo apt -yV install magicor-data
    sudo apt -yV install qimo-games
    sudo apt -yV install supertux
    sudo apt -yV install supertux-data
    sudo apt -yV install smc
    sudo apt -yV install smc-data
    sudo apt -yV install smc-music 
    sudo mkdir /usr/share/games/smc/campaign 
    sudo apt -yV install libphysfs1 
    sudo apt -yV install tuxonice-userui
    sudo apt -yV install tuxmath
    sudo apt -yV install tuxpaint
    sudo apt -yV install tuxpaint-data
    sudo apt -yV install tuxpaint-stamps-default
    sudo apt -yV install tuxpaint-plugins-default
    sudo apt -yV install tuxguitar
    sudo apt -yV install redeclipse
    sudo apt -yV install redeclipse-data
    sudo apt -yV install kturtle
    sudo apt -yV install parley
    sudo apt -yV install kwordquiz
    sudo apt -yV install supertaxkart
    sudo apt -yV install quadrapassel
    sudo apt -yV install gbrainy
    sudo apt -yV install adonthell adonthell-data
    sudo apt -yV install laby
    sudo apt -yV install gnome-chess
    sudo apt -yV install khangman
    sudo apt -yV install blinken
    sudo apt -yV install gnomine
    sudo apt -yV install atomix
    sudo apt -yV install atomix-data
    sudo apt -yV install sudoku
    sudo apt -yV install gnome-sudoku
    sudo apt -yV install kanagram
    sudo apt -yV install tuxpaint
    sudo apt -yV install ri-li
    sudo apt -yV install ri-li-data
    sudo apt -yV install gamine
    sudo apt -yV install gamine-data
    sudo apt -yV install aisleriot
    sudo apt -yV install fretsonfire
    sudo apt -yV install fretsonfire-game
    sudo apt -yV install fretsonfire-songs-sectoid
    sudo apt -yV install fretsonfire-songs-muldjord
    sudo apt -yV install iagno
    sudo apt -yV install gnibbles
    sudo apt -yV install ktuberling
    sudo apt -yV install grobots2
    sudo apt -yV install gtali
    sudo apt -yV install glines
    sudo apt -yV install ghotski
    sudo apt -yV install childsplay
    sudo apt -yV install gnome-mahjongg
    sudo apt -yV install numptyphysics
    sudo apt -yV install libatlas-test
    sudo apt -yV install blikken 
    sudo apt -yV install desktop-profiles
    sudo apt -yV install freemind freemind-doc 
    sudo apt -yV install gamine gamine-data
    sudo apt -yV install geogebra
    sudo apt -yV install javahelp2 
    sudo apt -yV install kbruch
    sudo apt -yV install mathpiper
    sudo apt -yV install melting 
    sudo apt -yV install simplyhtml
    sudo apt -yV install gcompris gcompris-data gcompris-sound-en 
    sudo apt -yV install yorick yorick-data yorick-z 
    sudo apt -yV install celestia-gnome
    sudo apt -yV install stellarium
    sudo apt -yV install stellarium-data
    sudo apt -yV install celestia-common
    sudo apt -yV install celestia-gnome
    sudo apt -yV install libmarblewidget11
    #
    sudo apt -yV install  ri-li
    sudo apt -yV install  ri-li-data 
    sudo apt -yV install  gcompris
    sudo apt -yV install  gcompris-data 
    sudo apt -yV install  tuxpaint-stamps-default 
    sudo apt -yV install  blinken 
    sudo apt -yV install  gbrainy
    sudo apt -yV install  kanagram
    sudo apt -yV install  kanagram-dbg 
    sudo apt -yV install  khangman
    sudo apt -yV install  gnome-mines 
    sudo apt -yV install  gnomine 
    sudo apt -yV install  ktuberling