Ubuntu memo

Ubuntu memo for myself
memo
ubuntu
Author

Masaya Kameyama

Published

July 12, 2021

Ubuntu 18.04

インストール(間違えると起動がおかしくなる )

  • インストール用DVDを突っ込んでインストール以下の2点に気をつける

    1. GPUの設定のためInstall Ubuntuにカーソルをあわせてe quiet splash ---quiet splash nomodeset --- に変更しctrl + x

    2. 自動ログイン https://forums.ubuntulinux.jp/viewtopic.php?id=19823

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)

重要

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 でバージョン確認.

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

    でバージョン確認

  2. 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 の後

あとは好きにpipで色々入れる.

USキーボード設定

結局macのようなctrlキーとsuperキーの設定ができなかったのでubuntuをメインに使うことは諦めた. sshで繋げばよい

gsettings set org.gnome.mutter overlay-key ''
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['Super_L']"

macbuntu(mac風レイアウト) sshで繋げば良いのでいらない

アプリケーション

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

https://mogi2fruits.net/blog/os-software/linux/ubuntu/4263/

ssh

ターミナルで

ssh $user_id@$ip_adress

リモートPC/サーバーへ接続. 下に書いてあるssh/configの設定をしておけば

ssh $host_name

で繋がる.

GPUサーバー使い方

自分の場合

ssh kameyama@ip_adress

設定しておけば

ssh gpu1

docker(+jupyter)

git clone等でdockerを用意

  1. 4.1.1. 旧バージョン

    ターミナルで

    sudo docker-compose build

    で環境構築.

  2. 新バージョン

    ターミナルで

    sh build.sh

    で環境構築.

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

https://techracho.bpsinc.jp/hachi8833/2019_02_05/66454

.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

https://qiita.com/0084ken/items/2e4e9ae44ec5e01328f1

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を便利にするやつ+

  1. peco

    sshで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=を読み込むようにする.

Back to top