トップページ情報工学の基礎学習・実験環境を整えるUbuntu のセットアップ(Ubuntu のインストールと設定,アプリケーションソフトウエアのインストール及び設定手順)

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

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

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

従来,情報工学の諸分野(データベース,プログラミング,人工知能,データサイエンス,3次元データなど)を取り扱う Ubuntu のソフトウエアのリストとそのインストールの手順のまとまったものが,なかなか存在しないので,自前で作った. (Windows については別ページで説明している). 私の教育研究上の経験を踏まえている.

目次

  1. Ubuntu 20.04 のインストール
  2. Ubuntu 20.04 の最低限の設定
  3. C/C++ コンパイラー,make,パッケージツール
  4. NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット 11.5, NVIDIA cuDNN 8.0.5
  5. Git, cmake, curl, F:\Desktop\54.pngwget, p7zip-full
  6. TensorFlow, Keras, MatplotLib, opencv-python, その他Python 開発環境(JupyterLab, spyder, nteract)及びパッケージ類(numpy, scikit-learn, その他)
  7. 隔離された Python 3.8 環境(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 20.04 のインストール

説明ページ https://www.kkaneko.jp/tools/ubuntu/ubuntudesktop.html

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

2. Ubuntu 20.04 の設定

2.1 OS のシステム更新

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

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

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

説明ページ https://www.kkaneko.jp/tools/ubuntu/ubuntu_setup.html

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

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

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

2.3 OpenSSH サーバー

Ubuntu での OpenSSHサーバーの運用: 別ページで説明している.

3. C/C++ コンパイラー,make,パッケージツール

端末で,次のコマンドを実行.

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
    

    [image]

  2. いまメモ帳で開いたファイルを, 次のように編集する(コピー&ペーストしてください).そして保存する.
    #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.5, NVIDIA cuDNN 8.2

4.1 前準備

(NVIDIA GPU を使うとき)使用する TensorFlow のバージョンを確認の上,Python と NIDIA CUDA ツールキットとNIDIA cuDNN のバージョンを確認

TensorFlow を使う場合は,必要となる NVIDIA CUDA ツールキット,NVIDIA cuDNN のバージョン確認

TensorFlow は,そのバージョンによって,必要となる Python,NVIDIA CUDA ツールキットNVIDIA cuDNNバージョンが違う.必ずしも,「最新の NVIDIA CUDA ツールキット,NVIDIA cuDNN で動く」ということではないので,注意が必要である. そのことは,https://www.tensorflow.org/install/gpu で確認できる.

そこで, まずは,使用したい TensorFlow のバージョンにより, 必要な Python, NVIDIA CUDA ツールキットNVIDIA cuDNN のバージョンを決める.

なお,NVIDIA CUDA ツールキットはバージョンごとにディレクトリ名が変わるので,複数バージョンの同時インストールが可能. NVIDIA cuDNN は,ディレクトリを自由に決めることができるので,複数バージョンの同時インストールが可能である.

NVIDIA CUDA ツールキットのバージョン:

指定されているバージョンより高いものは使わない. その根拠は次のページ. URL: https://www.tensorflow.org/install/source#common_installation_problems

NVIDIA cuDNN のバージョン:

その根拠は次のページ. URL: https://www.tensorflow.org/install/source#common_installation_problems

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 
    sudo apt --purge remove nvidia-*
    sudo apt --purge remove cuda-*
    sudo apt autoremove
    
  4. カーネルヘッダーと,カーネル開発用パッケージのインストール

    端末で,次のコマンドを実行.

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

    Ubuntu 20.04 で実際に試したところ「sudo ubuntu-drivers autoinstall」を用いて NVIDIA グラフィックスドライバをインストールするのが最も安定しているようである.

    端末で,次のコマンドを実行.

    sudo apt -y update
    sudo apt 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.5 のインストール

Ubuntu 20.04 で NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット 11.5 のインストールを行う. (他の Ubuntu,NVIDIA CUDA ツールキットのバージョンでもおおむね同様の手順になる.) CUDA は,NVIDIA社が提供している GPU 用のプラットフォームである.

NVIDIA グラフィックスボードがある場合に限り, インストールを行うこと.

TensorFlow 2.7 を動かしたいので,ここでは,私が動作確認できた NVIDIA CUDA ツールキット 11.5 をインストールする.

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

    端末で,次のコマンドを実行.

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

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

    VERSION_ID の行などで確認できる.

    [image]
  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 20.04 の場合は,https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ で確認.

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

    [image]

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

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

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

    端末で,次のように操作する.

    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 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
    

    [image]

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

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

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

    [image]

    そして,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
    
  5. NVIDIA CUDA パッケージレポジトリを用いて,NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット 11.5インストール

    Ubuntu 20.04 の場合は,次の操作により,NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット 11.5 がインストールされる.

    端末で,次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install cuda-11-5
    
  6. NVIDIA CUDA ツールキットにパスを通す設定

    端末で,次のコマンドを実行.

    export CUDA_PATH=/usr/local/cuda-11.5
    echo 'export CUDA_PATH=/usr/local/cuda-11.5' >> ${HOME}/.bashrc
    export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64:${LD_LIBRARY_PATH}
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc
    export PATH=/usr/local/cuda-11.5/bin:${PATH}
    echo 'export PATH=/usr/local/cuda-11.5/bin:${PATH}' >> ${HOME}/.bashrc
    
  7. インストールできたことの確認のため,CUDA ツールキットのバージョンを確認

    端末で,次のコマンドを実行.

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

4.4 NVIDIA cuDNN のインストール

NVIDIA グラフィックスボードがある場合に限り, インストールを行うこと.

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

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

Ubuntu 20.04 の場合

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

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

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

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

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

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

    cd /tmp
    wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb
    sudo dpkg -i nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb
    sudo apt-key adv --fetch-keys http://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 cudnn 
    

Ubuntu 18.04 の場合

  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 http://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.

    nvcc hello.cu
    

    [image]
    ./a.out
    

    [image]

5. Git, cmake, curl, wget, p7zip-full

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

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 のインストールは行わない(システム 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 python3-pip python3-setuptools python3-venv

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 python3-pip python3-setuptools python3-venv
    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 nteract_on_jupyter
    
  2. Ubuntu システムの python3 のバージョンの確認
    python3 --version 
    
  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 の動作確認

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

[image]

6.4 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]

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

設定の要点

環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true

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

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

    sudo apt -y remove python3-keras
    sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow_datasets tensorflow-hub keras
    

    [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
    
  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
    

6.6 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'」のところは,実際に使用する画像ファイル名に書き換えること.

    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'」のところは,実際に使用する画像ファイル名に書き換えること.

    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()」

6.7 PyTorch, Torchvision, Caffe 2

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

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

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

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

  2. 種類を選ぶ

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

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

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

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

    バージョン 1.9 をインストールする場合は次の通り.

    sudo pip3 install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
    

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

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

    端末で,次のコマンドを実行.

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

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

    [image]
  7. PyTorch の動作確認

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

    Python プログラムを動かす.

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

    Python プログラムを動かすために, pythonpython3などのコマンドを使う. あるいは, 開発環境や Python コンソール(Jupyter Qt ConsoleSpyderPyCharmPyScripter など)の利用も便利である.

    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]
  9. Caffe 2 の確認

    「Success」と表示されることを確認

    python3 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
    

    [image]
  10. Caffe 2 の確認

    CUDA デバイスの数が表示されることを確認

    python3 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
    

    [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 パッケージは,必要なものをインストール.次に手順を例示している. 利用者で判断すること.

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

    ここでの手順では,次のように設定する. Python の隔離された環境の名前は変えて良い.使用するPythonのバージョンは,より新しいバージョンがあれば,そちらの利用を検討すること (ここでは 2021/8 時点の Python 3.8 系列の最新バージョンである 3.8.11 を使用する).

    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.8 をインストール (pyenv を使用)

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

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

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

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

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

      [image]

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

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

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

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

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

      下の例では,Python の隔離された環境のためのディレクトリを ~/py38に作成している.

      pyenv shell 3.8.11
      python -m pip install -U pip setuptools
      rm -rf ~/py38
      python -m venv ~/py38
      

      [image]
    2. venvPython の隔離された環境有効化し,pip と setuptools を更新.

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

      source ~/py38/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 ~/py38/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 ~/py38/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.7, Keras 2.6.0, MatplotLib 3.1.2, Python 用 opencv-python 4.5.3 のインストール

    設定の要点

    環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true

    1. インストール

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

      source ~/py38/bin/activate
      python -m pip uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow_datasets tensorflow-hub keras
      python -m pip install -U pip setuptools
      sudo apt -y install libopencv-dev libopencv-core-dev python3-opencv
      python -m pip install -U tensorflow tf-models-official tf_slim tensorflow_datasets tensorflow-hub numpy pillow pydot matplotlib seaborn scikit-learn scikit-learn-intelex keras keras-tuner keras-visualizer 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
      

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

      端末で,次のコマンドを実行.

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

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

    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
      

    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) 
      

      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]))
      

      python の終了は「exit()」

    7.8 Python の種々のパッケージ

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

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

    8. 数値演算ライブラリ

    8.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
      

    8.3 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 .
      

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

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

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

    1. Dlib のソースコードのダウンロード

      端末で,次のコマンドを実行.

      cd /usr/local
      sudo rm -rf dlib
      sudo git clone https://github.com/davisking/dlib
      sudo chown -R $USER dlib
      
    2. ビルド,インストール

      端末で,次のコマンドを実行.

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

      cd /usr/local/dlib
      rm -rf build
      mkdir build
      cd build
      rm -f CMakeCache.txt
      cmake .. \
          -DCUDA_SDK_ROOT_DIR=/usr/local/cuda \
          -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
          -DUSE_AVX_INSTRUCTIONS=YES -DDLIB_USE_CUDA=YES
      make
      sudo make install 
      
    3. python についてビルドとインストール

      端末で,次のコマンドを実行.

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

      cd /usr/local/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  
      
    4. 確認のため,バージョンを表示

      端末で,次のコマンドを実行.

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

      python3
      import dlib
      print(dlib.__version__)
      exit()
      
    5. Dlib でよく使用するファイルをダウンロード

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

      端末で,次のコマンドを実行.

      cd /usr/local/dlib
      cd python_examples
      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 ツールキット をインストールしたディレクトリに読み替えること.

      cd /usr/local/dlib
      cd tools/htmlify
      sudo rm -rf build
      sudo mkdir build
      cd build
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo cmake .. \
          -DUSE_AVX_INSTRUCTIONS=YES -DDLIB_USE_CUDA=YES
      
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo cmake --build . --config RELEASE 
      sudo make install
      
      cd /usr/local/dlib
      cd tools/imglab
      sudo rm -rf build
      sudo mkdir build
      cd build
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo cmake .. \
          -DUSE_AVX_INSTRUCTIONS=YES -DDLIB_USE_CUDA=YES
      
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo cmake --build . --config RELEASE 
      sudo make install
      
      cd /usr/local/dlib
      cd examples
      sudo rm -rf build
      sudo mkdir build
      cd build
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo cmake .. \
          -DUSE_AVX_INSTRUCTIONS=YES -DDLIB_USE_CUDA=YES
      
      CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
      sudo cmake --build . --config RELEASE 
      sudo make install
      
    7. face_recognition のインストール

      face_recognition の動作には,dlib が必要

      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 
      

    9.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  
    

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

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

    9.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
    

    9.5 Tesseract OCR 5

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

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

    9.6 Github dyama/alpr_jp

    端末で,次のコマンドを実行.

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

    9.7 ipazc/mtcnn

    端末で,次のコマンドを実行.

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

    9.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 に記載のプログラムを実行してみる.

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

    9.10 muZero

    端末で,次のコマンドを実行.

    cd /tmp
    sudo rm -rf muzero-general
    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 /tmp/muzero-general
    python3 muzero.py
    tensorboard --logdir ./results
    

    9.11 OpenAIGym

    端末で,次のコマンドを実行.

    cd /tmp
    sudo rm -rf gym
    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
    

    10. エディタ

    10.1 Geany

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

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

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

    10.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
    

    10.3 Visual Studio Code (エディタ)

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

    インストール手順

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

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

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

    Visual Studio Code の拡張機能

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

    10.4 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)
    

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

    11.1 Firefox

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

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

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

    11.2 Chromium

    Chromium は Web ブラウザ.

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

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

    11.3 FileZilla

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

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

    sudo apt -y update
    sudo apt -y install filezilla
    

    11.4 xrdp

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

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

    sudo apt -y update
    sudo apt -y install xrdp
    

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

    12.1 mlocate (ファイル検索)

    locate で起動.

    sudo apt -y update
    sudo apt -y install mlocate
    

    12.2 catfish (ファイル検索)

    catfish で起動.

    sudo apt -y update
    sudo apt -y install catfish
    

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

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

    12.4 Pinta (ドロー)

    pinta で起動.

    sudo apt -y update
    sudo apt -y install pinta
    

    12.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
    

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

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

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

    12.7 draw.io (作図ツール)

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

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

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

    12.8 PlotDigitizer

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

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

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

    12.10 hardinfo (ハードウエア情報)

    hardinfo で起動.

    sudo apt -y update
    sudo apt -y install hardinfo
    

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

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

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

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

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

    インストール

    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
      

    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
    

    psql の基本操作

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

    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
    

    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]

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

    13.1 DBeaver Community Edition

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

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

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

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

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

    13.2 SQL Workbench/J Build 127

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

    cd /tmp
    sudo curl -O https://www.sql-workbench.eu/Workbench-Build127-with-optional-libs.zip
    cd /usr/local
    sudo mkdir /usr/local/sqlworkbench
    cd /usr/local/sqlworkbench
    sudo unzip /tmp/Workbench-Build127-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 .
    

    13.3 SQLite 3

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

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

    sudo apt -y update
    sudo apt -y install sqlite3
    

    13.4 SQLite Studio 3.2.1

    sqlitestudio, sqlitestudiocli で起動.

    cd /tmp
    sudo curl -O https://github.com/pawelsalawa/sqlitestudio/releases/download/3.2.1/InstallSQLiteStudio-3.2.1
    sudo chmod 755 InstallSQLiteStudio-3.2.1
    ./InstallSQLiteStudio-3.2.1
    cd /usr/local/bin
    sudo ln -s /opt/SQLiteStudio/sqlitestudio .
    sudo ln -s /opt/SQLiteStudio/sqlitestudiocli .
    

    13.5 Cloudera Manager Packages

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

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

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

    15.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]

    15.2 Google Earth Pro

    15.3 MeCab (形態素解析)

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

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

    15.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
      

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

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

    sudo apt -y update
    sudo apt -y install imagemagick
    

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

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

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

    sudo apt -y update
    sudo apt -y install vlc
    

    15.6 OpenShot (動画)

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

    sudo apt -y update
    sudo apt -y install openshot
    

    15.7 Avidemux (ビデオ編集)

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

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

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

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

    15.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
    

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

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

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

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

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

    sudo apt -y update
    sudo apt -y install meshlab
    

    15.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
    

    15.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 libvtk7-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
    

    15.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
    

    15.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
    

    16. 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
    

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

    17.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
    

    17.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
    

    17.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
    

    17.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
    

    18. R システム

    18.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/
    

    18.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 
    

    ゲーム

    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