目次
apt
aptでユーザ認証付きのプロキシサーバを使用する場合, /etc/apt/apt.conf を編集する. なお,username,password,proxy.addressはそれぞれ適切なものに書き替える.
Aciquire::http::Proxy "http://username:password@proxy.address:8080" Aciquire::https::Proxy "http://username:password@proxy.address:8080" Aciquire::ftp::Proxy "http://username:password@proxy.address:8080" Aciquire::socks::Proxy "http://username:password@proxy.address:8080"
Parallels Desktopに入れたUbuntu 16.04のaptで使用するサーバがアメリカだったので,日本のサーバに変更 https://launchpad.net/ubuntu/+archivemirrors によると,山形大学の回線が太いので,山形大学のミラーを使用させてもらう.
sudo sed -i.bak -e "s%http://us.archive.ubuntu.com/ubuntu/%http://linux.yz.yamagata-u.ac.jp/pub/linux/ubuntu-archive/%g" /etc/apt/sources.list
Nvidia GTX-1080
NvidiaのGTX-1080をUbuntuで使う際にハマったのでメモ。
ドライバーを提供しているリポジトリ (https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa) を登録するために
sudo add-apt-repository ppa:graphics-drivers/ppa
としたが、
Cannot add PPA: 'ppa:~graphics-drivers/ubuntu/ppa'. ERROR: '~graphics-drivers' user or team does not exist.
というエラーが出て追加登録できない。 aptのproxy設定は上述の通り済ませてある。
https://qiita.com/aKenjiKato/items/18f9b8553f8ad4117d79 にあるように、
add-apt-repository は apt.confのプロキシ設定を見ていないかもしれない
ので、.bashrcに
http_proxy=http://username:password@proxy.address:8080 https_proxy=https://username:password@proxy.address:8080 ftp_proxy=ftp://username:password@proxy.address:8080
を記述して、sudoに環境変数を渡す-Eオプションを付けて,
sudo -E add-apt-repository ppa:graphics-drivers/ppa
で無事に追加できた。
sudo -E add-apt-repository ppa:graphics-drivers/ppa sudo -E apt-get update sudo -E apt-get install nvidia-384 #2017/10/12現在 sudo apt-get install mesa-common-dev sudo apt-get install freeglut3-dev
CUDAのインストール
※Cuda toolkit 9 と CuDNN 7 では Tensorflow(2017/10/18のバージョン)が動かない。
https://developer.nvidia.com/cuda-toolkit からOSなどを選択してcuda8.0.61375.26_linux.runをダウンロード(2017/10/12のバージョン)
- CTRL+ALT+F1を押してXを抜ける
- CUI環境になるので、アカウントにloginする
- sudo init 3 を実行して非X環境にする(これをしないとXがファイルをロックして失敗する)
- cuda8.0.61375.26_linux.run(インストーラ)を実行
cd Downloads sudo sh ./cuda_8*
全部Yes、場所は初期設定のまま。終わったら再起動
sudo reboot
ログインしようとしても失敗してログイン画面に戻されるので、 CTRL+ALT+F1を押してXを抜けCUI環境に行く。 グラフィックボードのドライバを再インストールする。
sudo apt-get install nvidia-384 --reinstall #2017/10/12現在
再起動して、無事にログインできるようになった。
.bashrcの末尾に以下を記述してパスを通す
# CUDA export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export CUDA_HOME=/usr/local/cuda
他のユーザでも使えるようにパスを通す。
環境変数パス
sudo touch /etc/profile.d/cuda.sh sudo vi /etc/profile.d/cuda.sh
中身は
## set PATH for CUDA PATH="/usr/local/cuda-8.0/bin${PATH:+:${PATH}}"
同様にライブラリの検索パス
sudo touch /etc/ld.so.conf.d/cuda.conf sudo vi /etc/ld.so.conf.d/cuda.conf
中身は
## CUDA support /usr/local/cuda-8.0/lib64
sudo ldconfig
cuDNN
https://developer.nvidia.com/rdp/cudnn-download から
- cuDNN v6.0 Runtime Library for Ubuntu16.04 (Deb)
- cuDNN v6.0 Developer Library for Ubuntu16.04 (Deb)
- cuDNN v6.0 Code Samples and User Guide for Ubuntu16.04 (Deb) をダウンロードして、以下のコマンドでインストールする。
sudo dpkg -i libcudnn6_6.0*+cuda8.0_amd64.deb sudo dpkg -i libcudnn6-dev_6.0*+cuda8.0_amd64.deb sudo dpkg -i libcudnn6-doc_6.0*+cuda8.0_amd64.deb
Python環境の構築
pyenvをGitHubのリポジトリをクローンして導入し、
git clone https://github.com/yyuu/pyenv.git ~/.pyenv pyenv install --list
最新のAnacondaを入れる。2017/10/18現在はanaconda3-5.0.0
pyenv install anaconda3-5.0.0
設定
pyenv global anaconda3-5.0.0 echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.0.0/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
確認
python --version
Python 3.6.2 :: Anaconda, Inc.と出ればOK
Ubuntu 16.04 LTSではPython3.5.2までしか対応していないため、anaconda3-5.0.0(Pythonのバージョンは3.6)を単純に入れるだけではpython3.5-devを使うOpenCVのビルド時にPython3対応ができない。 詳しくはOpenCVのところを参照
Tensorflowのインストール
公式サイトのAnaconda使用の場合を参照
https://www.tensorflow.org/install/install_linux#InstallingAnaconda
OpenCV
https://qiita.com/mix_dvd/items/4bf7f6e7fa19068ea1d4 を参考にしたが、
Built target opencv_cudafilters Makefile:160: ターゲット 'all' のレシピで失敗しました make: *** [all] エラー 2
というエラーが出たので、 http://answers.opencv.org/question/100907/not-able-to-install-opencv31-in-ubuntu1604-cuda-80/ を参考に cmakeの引数に-D CUDAARCHBIN=6.1を追加(GTX-1080なので)
今度は
Built target opencv_cvv Makefile:160: ターゲット 'all' のレシピで失敗しました make: *** [all] エラー 2
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CUDA_ARCH_BIN=6.1 \ -D CUDA_ARCH_PTX=6.1 \ -D CUDA_FAST_MATH=1 \ -D WITH_CUBLAS=ON \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D WITH_TBB=ON \ -D WITH_V4L=ON \ -D WITH_QT=ON \ -D WITH_OPENGL=ON ENABLE_FAST_MATH=1 \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..
面倒になったので、Anacondaで入れた。Python以外からも使えるのかなどはわからない。
conda install -c menpo opencv3
https://qiita.com/PonDad/items/cbef5dca04a1c1a201b0 によると、自分でビルドしないと動画を取り扱えないとのこと。 諦めて同記事を参考に入れてみる。
が、結局ダメで、 http://mashup.hatenablog.com/entry/2017/05/16/200000 にあるとおりにOpenCV3.2でEXTRA_MODULESなしでどうにか入った。
と思ったらpython3からOpenCV3.2が使えず、Anacondaで入れた3.1しか見つからない。 cmakeの結果を見てもUnavailable: python3となっている。
に従うが、LDLIBRARYPATHの設定は不要
echo $LD_LIBRARY_PATH
出力は /usr/local/cuda-8.0/lib64
python352-MLという名前でPython3.5.2を含むAnaconda環境を作る
conda create -n python352-ML python=3.5.2 source activate python352-ML
sudo apt install python3.5-dev
conda install -n python352-ML curl numpy cmake
ここからはconda環境から抜ける
source deactivate python352-ML
EXTRAMODULESを入れるとコケるので、再び http://mashup.hatenablog.com/entry/2017/05/16/200000 にあるとおりにOpenCV3.2でEXTRAMODULESなしで以下のcmakeオプションでうまく行った。
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=OFF \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D WITH_CUDA=ON \ -D ENABLE_FAST_MATH=1 \ -D CUDA_FAST_MATH=1 \ -D WITH_CUBLAS=1 ..
cmakeの結果のPython3関係は以下の通り
-- Python 3: -- Interpreter: /home/haselab/.pyenv/versions/anaconda3-5.0.0/envs/python352-ML/bin/python3 (ver 3.5.2) -- Libraries: /home/haselab/.pyenv/versions/anaconda3-5.0.0/envs/python352-ML/lib/libpython3.5m.so (ver 3.5.2) -- numpy: /home/haselab/.local/lib/python3.5/site-packages/numpy/core/include (ver 1.13.3) -- packages path: /home/haselab/.pyenv/versions/anaconda3-5.0.0/envs/python352-ML/lib/python3.5/site-packages -- -- Python (for build): /home/haselab/.pyenv/versions/anaconda3-5.0.0/envs/python352-ML/bin/python3
make -j $(nproc) sudo make install
確認
haselab@g-hasegawa09:~/opencv/opencv-3.2.0/build$ source activate python352-ML (python352-ML) haselab@g-hasegawa09:~/opencv/opencv-3.2.0/build$ python3 Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:53:06) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '3.2.0'
python352-ML環境を標準で使って欲しいので、.bashrcのPATHの部分を一部書き換える。
#export PATH="$PYENV_ROOT/versions/anaconda3-5.0.0/bin:$PATH" export PATH="$PYENV_ROOT/versions/anaconda3-5.0.0/envs/python352-ML/bin:$PATH"
Jupyter Notebookでpython352-ML環境を使用可能に設定する
現状確認
jupyter kernelspec list
以下のカーネルが使用可能
Available kernels: python3 /home/haselab/.pyenv/versions/anaconda3-5.0.0/share/jupyter/kernels/python3
python352-MLをアクティベイトして、追加
source activate python352-ML ipython kernel install --user --name=python352-ML --display-name=python352
実行結果
Installed kernelspec python352-ML in /home/haselab/.local/share/jupyter/kernels/python352-ml
R
aptでは古いRが入るので,新しいRを入れる.
http://qiita.com/JeJeNeNo/items/43fc95c4710c668e86a2 を参考に,
echo -e "\n## For R package" | sudo tee -a /etc/apt/sources.list echo "deb https://cran.rstudio.com/bin/linux/ubuntu $(lsb_release -cs)/" | sudo tee -a /etc/apt/sources.list
gpgコマンドでの公開鍵の取得がプロキシ環境では上手くいかないので,apt-keyコマンドを使う
#sudo apt-key adv --keyserver-option http-proxy=http://username:password@proxy.address:8080 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E084DAB9 sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E084DAB9 # こっちでいけた apt-key export E084DAB9 | sudo apt-key add -
sudo apt update sudo apt install r-base
.Rprofileを作成し,R起動オプションにプロキシを設定
touch .Rprofile echo "Sys.setenv(http_proxy=\"http://username:password@proxy.address:8080/\")" | sudo tee -a ~/.Rprofile echo "Sys.setenv(https_proxy=\"https://username:password@proxy.address:8080/\")" | sudo tee -a ~/.Rprofile echo "Sys.setenv(ftp_proxy=\"ftp://username:password@proxy.address:8080/\")" | sudo tee -a ~/.Rprofile
\“http中略8080/\”のように,プロキシアドレスをくくる引用符はエスケープしておく必要がある.
Rに追加パッケージをインストール
パッケージ保存先のパーミッションの兼ね合いで,sudoを付けて起動する.
sudo -E R
パッケージが入るか確認
install.packages("RColorBrewer") install.packages("dichromat") install.packages("viridis")
Bash on Ubuntu on Windows関係
ホームディレクトリを変更
sudo vi /etc/passwd
username:x:1000:1000:"",,,:/home/username:/bin/bash
を
username:x:1000:1000:"",,,:/mnt/c/Users/username:/bin/bash
に変更する.exitする前に,既存ファイルを新しいホームディレクトリに移動する.
cd ~ cp -p .* /mnt/c/Users/username
Rでグラフを描画する等,GUIを使うためには,Xmingを使う必要がある.
手順は http://qiita.com/makky0620/items/e31edc90f22340d791ff を参照