Ubuntu 20.04 LTS の導入

こちらの記事に従って、Ubuntu 20.04 LTS を入れた。

ライブ USB の作成

  • Rufus をダウンロード
  • ubuntu の iso ファイルをダウンロード
  • USB を挿して、Rufus を使ってライブ USB を作成

Ubuntu 20.04 LTS のインストール

インストール後にログインループになってログインできなくなった

  • ctrl + alt + F2で tty 仮想コンソールを開く
  • Nvidia ドライバ, cuda があるかどうか確認
dpkg -l | grep nvidia
dpkg -l | grep cuda

※もしですでにある場合は削除しておく

sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove cuda-*
  • Nvidia ドライバが無かったら下記で Nvidia ドライバと cuda を入れる
sudo ubuntu-drivers install
sudo reboot

または version 指定して入れる。

sudo apt-get install cuda-drivers-<branch>

以上のプロセスでログインできるようになった。またこのときに cuda も一緒に入った。(nvidia-smiで確認)

ログインループに陥らなかった場合は別途自分で nvidia ドライバと cuda を入れる必要がある。

一旦きれいににしてから nvidia-driver を入れる

sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove cuda-*
sudo ubuntu-drivers install
sudo reboot

nvidia-smiで確認して、必要であれば cuda を公式のやり方に従って入れる。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.1/local_installers/cuda-repo-ubuntu2004-11-6-local_11.6.1-510.47.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-6-local_11.6.1-510.47.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

CPU 情報などを確認

cpu lscpu
cat /proc/meminfo
sudo dmidecode -t baseboard
gpu nvidia -smi
sudo parted -l

マウント

sudo fdisk -l
sudo mkdir /mnt/nvme1n1
sudo mount /dev/nvme1n1 /mnt/nvme1n1
sudo blkid /dev/sdX1
sudo vi /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx       /mnt/hdd        ext4    defaults        0       0

言語を直しておく

https://tech.librastudio.co.jp/entry/index.php/2017/12/20/post-1756/

docker 導入

docker のインストール

# https://docs.docker.com/engine/install/ubuntu/
curl -fsSL https://get.docker.com -o get-docker.sh
DRY_RUN=1 sh ./get-docker.sh

docker が自動起動するようにしておく

sudo systemctl start docker && sudo systemctl enable docker

sudo 無しで docker を使えるようにする

sudo groupadd docker
sudo usermod -aG docker <username>
newgrp docker

ssh 導入

ssh サーバーのインストール

sudo apt install openssh-server

パスワードでログイン可能にしておく

sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes

ssh を再起動する

sudo systemctl restart sshd.service

鍵を生成して転送

  • クライアント側で鍵を生成
ssh-keygen -t ed25519 -C "username@servername"
  • ローカル IP を調べる
hostname -I
  • 鍵をサーバーに転送
scp ~/.ssh/my_key.pub ホスト名@<ローカルIP>:
  • 公開鍵を authorized key に移動
cat my_key.pub >> .ssh/authorized_keys
rm id_ras.pub
sudo chmod 700 -R /home/user /home/user/.ssh
sudo chmod 600 /home/user/.ssh/authorized_keys

セキュリティを上げておく

sudo vi /etc/ssh/sshd_config
PasswordAuthentication no #パスワードログインを許可しない
Port 56666 #ポートを変えておく
sudo systemctl restart sshd.service

ssh 接続できない場合はクライアント側の ssh config を設定する

vi /home/user/.ssh/config
Host remote-host
    HostName XXX.XX.XX.XX
    Port XXXXX
    IdentityFile ~/.ssh/my_key
    User user

※ホームの permission がおかしいと ssh アクセスできないので、アクセスできない場合は変更しておく。

sudo chown root:root /home
sudo chmod -R 755 /home
sudo chown user:user /home/user -R
sudo chmod 700 -R /home/user /home/user/.ssh
sudo chmod 600 /home/user/.ssh/authorized_keys

指定のディレクトリに一発で飛べるようにする

Host ubunru-server
  HostName ubunru-server
  RemoteCommand cd /home/hoge/target_dir; $SHELL -il
  RequestTTY yes
  User hoge
  Port XXXX
  IdentityFile ~/.ssh/ubunru-server/id_rsa

リモート VScode の設定

Extention の Remote Developmentをインストールしておく。 リモート VSCode でファイルの生成や削除で permission エラーが出るのでよく使うフォルダ or ワークスペースにのみ権限を与えておく sudo chmod -R 777 ./workspace

閲覧可能なファイル数の上限を最大にする

cat /proc/sys/fs/inotify/max_user_watches

vi /etc/sysctl.conf
# add "fs.inotify.max_user_watches=524288" at the end
sudo sysctl -p

リンターとフォーマッター

  • extention で Python をインストール
  • black mypy isort flake8  をインストール
pip3 install black mypy isort flake8

USER と ssh サーバーで下記を設定

  • Python › Formatting: Provider -> black
  • Python › Linting: Mypy Enabled -> check
  • Editor: Format On Save -> check
  • Editor: Code Actions On Save -> setting json

下記の箇所を

"editor.codeActionsOnSave": null

下記に変更する

"editor.codeActionsOnSave": {
        "source.organizeImports": true
    }

その他有用な extention

  • Error Lense : setting から delay を 500 にしておく
  • pylance : インタプリタを適切なものに設定しておく。
  • indent rainbow
  • blacket pair : いろいろある
  • paste image

マウント

sudo mkdir /mnt/nvme1n1
sudo mount /dev/nvme1n1 /mnt/nvme1n1

# UUIDを確認
sudo blkid /dev/nvme1n1

#VScodeで編集が良い?
less /etc/fstab
UUID=7d9c943f-xxxxxxxxx       /mnt/sd ext4    defaults        0       0

Related Posts