Ubuntu 18.04
インストール(間違えると起動がおかしくなる )
インストール用DVDを突っ込んでインストール以下の2点に気をつける
GPUの設定のためInstall Ubuntuにカーソルをあわせてe
quiet splash ---
をquiet splash nomodeset ---
に変更しctrl + x
Ubuntuのインストールをします。その際、インストールウィザードのアカウント設定画面で「自動ログイン」を有効にしておきます。 2. インストール完了後に再起動をすると、ログイン画面がスキップされ、正常にデスクトップ画面が表示されます。 3. 端末を起動し、以下をコピペしたのち実行します。実行時にはアカウントのパスワードを要求されるので、入力します。 sudo gedit /etc/gdm3/custom.conf 4. コマンドの実行によって、テキストエディタ「gedit」で、ファイル「custom.conf」が開かれます。「#WaylandEnable=false」という記述を探し、当該の「#」を削除、gedit画面右上の「保存」ボタンをクリックし、上書き保存をします。 5. 「設定」を起動し、左ペインの項目から「詳細」→「ユーザー 」と辿り、「自動ログイン」を「オフ」にします。 6. PCを再起動し、ログイン画面が正常に表示されれば、作業は完了です。
最初にapt(macOSでのhomebrewみたいな奴)を更新しておく
sudo apt update
sudo apt upgrade
sudo apt-get update
sudo apt-get upgrade
GPU の設定(nvidia-diriver, CUDA, cuDNN)
重要
- https://www.tensorflow.org/install/source#common_installation_problems の下の方をみてtensorflow-gpuに対応したCUDAとcuDNNを確認する
NVIDIA driver
- nouveau(デフォルトドライバ?)の停止.
sudo lsmod | grep nouveau
でnouveauの確認.
sudo emacs /etc/modprobe.d/blacklist-nouveau.conf
に
blacklist nouveau
options nouveau modeset=0
を書き込む.
sudo update-initramfs -u
sudo ubuntu-drivers autoinstall
を叩いた後
sudo reboot
で再起動.
nvidia-smi
で動作確認. 念の為
sudo lsmod | grep nouveau
確認し反応なければok.
CUDA + cuDNN
くどいがhttps://www.tensorflow.org/install/source#commoninstallationproblems でバージョン確認.
CUDA
https://developer.nvidia.com/cuda-toolkit-archive で必要なCUDAをダウンロードする. バージョンを選択するとインストール方法を教えてくれるのでそれに従う.
インストール後
sudo emacs .bashrc
してから
export PATH=/usr/local/cuda/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
でpathを追加.
再起動して
nvcc -V
でバージョン確認
cuDNN
公式https://developer.nvidia.com/rdp/cudnn-archive#a-collapse714-9 でバージョンを選択し
cuDNN Library for Linux
cuDNN Runtime Library for Ubuntu18.04 (Deb)
cuDNN Developer Library for Ubuntu18.04 (Deb)
cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)
をダウンロードする(要登録). ダウンロードディレクトリへ行き下3つは順番に
sudo dpkg -i $file_name
とする. 一番上は
tar xvf $file_name sudo cp -a cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* cp -r /usr/src/cudnn_samples_v7/ $HOME cd $HOME/cudnn_samples_v7/mnistCUDNN make clean && make
を叩く. pipでtensorflow-gpuとkerasを入れて動作確認(python環境構築を参照).
参考
python環境構築
sudo apt install build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev tk-dev
i の後
- pyenvの入れ方(好み) https://qiita.com/micheleno13/items/39ad85cfe44ca32f53ee
あとは好きにpipで色々入れる.
USキーボード設定
結局macのようなctrlキーとsuperキーの設定ができなかったのでubuntuをメインに使うことは諦めた. sshで繋げばよい
- 左commandで検索画面が出る場合の対処法 https://forums.ubuntulinux.jp/viewtopic.php?id=19987
gsettings set org.gnome.mutter overlay-key ''
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['Super_L']"
macのcommandキーやwinのwindowsキーはlinuxではsuperキー
usキーボードで日本語を使うための設定 1(fcitixとtweakで管理する) https://www.shujima.work/entry/2018/08/16/174352 https://qiita.com/tokida/items/a89b981680a1ce4523fa
困ったらfcitixとtweakの設定を見直す
ctrlキーとsuperキーの入れ替え https://qiita.com/teppeitherock/items/113be4c5270f1d5e2f4c
macbuntu(mac風レイアウト) sshで繋げば良いのでいらない
https://hermemo.com/218/ ここを見てやる
アプリケーション
chrome, slack, emacs等を入れる.
Wolfram Engine
公式をみて入れる. activation回数に限りがあるので注意. (linuxを再インストールして上限に達してしまったがwolframにお願いしたら再アクティベートさせてくれた.)
Google drive
google-drive-ocamlfuseを使う (デフォルトで入っっているシステム設定からgoogleを登録するとgoogledriveのディレクトリができるが機能しない)
ハードディスクマウント
OSが入っているssdとは別にhddが付いているが書き込みをする際にはマウントが必要. ホームディレクトリに適当な名前のディレクトリ(例えば=mountvol=)を作り
sudo mount $マウントしたいhhdのパス $マウント先のディレクトリ
とする. 自分の場合
sudo mount /dev/sdb2 mount_vol
とやる.
reference
ssh
ターミナルで
ssh $user_id@$ip_adress
リモートPC/サーバーへ接続. 下に書いてあるssh/configの設定をしておけば
ssh $host_name
で繋がる.
GPUサーバー使い方
自分の場合
ssh kameyama@ip_adress
設定しておけば
ssh gpu1
docker(+jupyter)
git clone等でdockerを用意
4.1.1. 旧バージョン
ターミナルで
sudo docker-compose build
で環境構築.
新バージョン
ターミナルで
sh build.sh
で環境構築.
Jupyter
sudo docker-compose up
でdocker環境のjuputer notebook起動,
その後ブラウザからアドレスに
<ip adress>:<port number>
でアクセス.
例えば
192.xxx.xx.xxx:8899
など. port番号は
sudo emacs docker-compose.yml
で確認/変更もできる. トークンは入力=dockerfile=内の=Notebook.App.token==を見る.
公開鍵の登録
ref
https://qiita.com/mukoya/items/f20def019e25dc162ca8
ssh先をmac finder上にマウント
brewでsshfsとosxfuseを入れる.
sshfs $ユーザー名@$サーバー名:$ディレクトリ $マウントディレクトリ -p $port番号
例えば
sshfs kameyama@192.xxx.xx.xxx:/home/kameyama ubuntu -p 22
ref
.ssh/config設定(mac側)
サーバー側に公開鍵を渡しておいて、macの=.ssh/config=に
Host *
ForwardAgent yes
ServerAliveInterval 60
GSSAPIAuthentication no
UseKeychain yes
AddKeysToAgent yes
Host ubuntu
HostName <ip address>
Port 22
User kameyama
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60
AddKeysToAgent yes
UseKeychain yes
Host gpu1
HostName hogehoge
Port 22
User kameyama
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60
AddKeysToAgent yes
UseKeychain yes
と書いておけば
ssh ubuntu
で手元のubuntu計算機に繋がる. 一番上設定はconfigを変更した時にいちいち=ssh-add=をしなくてもよくするためのもの.
ref
shell(terminal)関連
仕組み
ログインシェルから一回読み込まれるのがzprofileとbashprofile. 場合により何度も読まれるのがzshrcやbashrc.
Zshの環境変数は.commonrcに書き込む(commonrcはbashとzshで共通). =zsh -c env=だとzprofileは読まれない. =zsh -l -c env=だとzprofileが読まれる.
以降はdottofiesはgithubのreadmeのコマンドを叩くだけで良い(変更したらpushする).
brewは
brew bundle dump --global --force
で書き出されるのでdotfilesにぶち込む.
sshなどの設定は公開しない.
zsh
prezto: フレームワーク、見た目が変わったりする peco:履歴参照 ghq: gitを便利にするやつ+
pecosshでubuntuのterminalを操作する際pecoがおかしい挙動をする.カーソルキーが使えないのでctrl + n とctrl + pで操作する.+https://www.yuuan.net/item/1017+
Ubuntuでのbashの設定
ubuntuではterminal起動時に=.bashrc=が読み込まれるがsshで繋いだ場合=.bashprofile=が読み込まれる. そこで.=bashprofile=に
# .bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
と書いてsshでも=.bashrc=を読み込むようにする.