概要

Windows が入っているマシンに Ubuntu 環境を新たにセットアップするときの個人的手順書.

環境

  • AMD Ryzen 7 3700X 8-Core Processor
    • $ sudo lshw -class processor で確認
  • NVIDIA GeForce RTX 3060 12GB GDD R6
  • Ubuntu 20.04.2 LTS (Focal Fossa)
    • $ cat /etc/os-release で確認

インストール用メディア作成

  1. USB メモリを用意する.
  2. 以下のページから ubuntu-ja-20.04.1-desktop-amd64.iso を落とす.
  3. USB メモリを挿入し,$ lsblk -f でデバイス名およびマウントポイントを確認する.
    • 以下,デバイス名は sdb とする.
  4. $ umount "マウントポイント" で対象 USB メモリをアンマウントする.
    • umount である.unmount ではない.
  5. $ dd bs=4M if=/path/to/ubuntu-ja-20.04.1-desktop-amd64.iso of=/dev/sdb status=progress && sync で iso の中身を書き込む.

参考

Boot 関係設定

pc 起動時のスプラッシュ画面で特定のキーを押すと,何かしらの画面に遷移できる.この設定はマシン依存.

Ubuntu インストール

各種セットアップ

$ sudo apt update

# git のインストール
$ sudo apt install git
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"

# Dropbox のインストール
# (インストール後に作業が必要)
$ sudo apt install nautilus-dropbox

# KeePassXC のインストール
$ sudo apt install keepassxc

# Ricty Dinimised のインストール
# $ sudo apt install fonts-ricty-diminished
# バッククォートがバグっていて面倒なので,Myrica にしておく

# Myrica のインストール
# 事前に Myrica.TTC をダウンロードしておく
$ sudo mkdir /usr/share/fonts/truetype/myrica
$ sudo mv Myrica.TTC /usr/share/fonts/truetype/myrica/
$ fc-cache -fv
$ fc-list | grep myrica

# ホームディレクトリのフォルダ名を日本語から英語に変更する
$ LANG=C xdg-user-dirs-gtk-update

# gnome-shell-extension-system-monitor のインストール
# (インストール後に作業が必要)
$ sudo apt install gnome-shell-extension-system-monitor

# CopyQ のインストール
$ sudo add-apt-repository ppa:hluk/copyq
$ sudo apt update
$ sudo apt install copyq

# g++-7 のインストール(C++17 対応)
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt update
$ sudo apt install g++-7
$ echo "export CXX='g++-7'" >> ~/.bashrc
$ echo "export CC='gcc-7'" >> ~/.bashrc

# boost のインストール
$ sudo apt install libboost-all-dev

# VLC のインストール
$ sudo apt install vlc vlc-plugin-access-extra libbluray-bdj libdvdcss2
$ sudo apt install ubuntu-restricted-extras
# $ sudo apt install libav-tools ffmpeg
# $ sudo apt install libdvdnav4 libdvdread7 gstreamer1.0-plugins-bad libdvd-pkg

# Gimp のインストール
$ sudo apt install gimp

参考

Vivaldi の同期が競合する

ログアウト→ログイン,で解決する.

CapsLock を Control に置換する

  1. $ sudo apt install gnome-tweaks
  2. Tweaks を起動し,「キーボードとマウス」→「追加のレイアウトオプション」→「Ctrl Position」→「Caps Lock を Ctrl として扱う」にチェックを入れる
  3. ログアウトして再度ログインする

参考

トップバーの時刻表示に秒数を追加する

  1. 前節でインストールした Tweaks を開く
  2. 「トップバー」で「秒」のトグルスイッチを ON にする

マウスホイールのスクロール速度を速くする

~/.imwheelrc を作成し,内容を以下のようにする.

".*"
None,      Up,   Button4, 8
None,      Down, Button5, 8

余談だが,ファイル名を ~/.imwheel と紹介しているページもある.しかし ~/.imwheelrc でないと動かない.

$ sudo apt install imwheel
# 起動
$ imwheel

PC 起動時に自動で imwheel を起動するように設定する.

GPU 関係諸々インストール

NVIDIA Driver インストール

サウンドの設定で出力デバイスが「ダミー出力」になっているとき,ドライバを入れないと音が出ない.機種によるが,Wi-Fi や Bluetooth も同じ.

事前にセキュアブートを切っておき,以下を実行する.

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update

$ ubuntu-drivers devices
# 上の結果で出てくるドライバ一覧のうち,末尾に recommended と書いてあるドライバを入れる

$ sudo apt install nvidia-driver-470
# セキュアブートが入っている場合,インストールが進むと,Enroll MOK のときに使うパスワードを登録数画面が出てくるので,入力する.

$ sudo reboot
# セキュアブートが入っている場合,起動時に表示されるメニューで「Enroll MOK」を選択→「Continue」→「Yes」→パスワード入力→「Reboot」

ここで,NVIDIA driver のバージョンを確認しておく.470.57.02 の部分.

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  470.57.02  Tue Jul 13 16:14:05 UTC 2021
GCC version:  gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) 

なおバージョンについては,下記ページに必要事項を入力して「検索」を押下したときに「バージョン:」欄に表示されるものと同じになっていることを確認する.

CUDA インストール

新しすぎるバージョンの CUDA だと,PyTorch が対応していなかったりして困るので,今回は最新の 11.4 ではなく 11.1 を入れる.

$ 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
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
$ sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
$ sudo apt update
# $ sudo apt install cuda
$ sudo apt install cuda-runtime-11-1 cuda-demo-suite-11-1 cuda-drivers cuda-drivers-470 cuda-11-1
$ sudo reboot

参考

以下を ~/.bashrc に追記すると,nvcc などが使えるようになる.

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

再起動して CUDA バージョンを確認する.11.1.105 の部分.

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0

次のページの Table 1 を見て,CUDA と Driver のバージョンが整合しているか確認する.

基本的に,

  • 新しい CUDA は新しい Driver を要求する
  • 新しい Driver は古い CUDA でも動く

という対応になっている.nvidia-driver のバージョンを確認して,対応する CUDA を入れることになる.CUDA が新しすぎると駄目,という構図.

間違えて別のバージョンを入れてしまったとき

$ sudo apt purge cuda
$ sudo apt purge nvidia*
$ sudo apt purge libnvidia*
$ sudo apt purge ./cuda-repo-ubuntu2004-11-4-local_11.4.0-470.42.01-1_amd64.deb
$ sudo apt autoremove
$ sudo apt autoclean
$ sudo apt update

Finished with code: 256

症状としては以下と同じ.

CUDA ダウンロードページの,「runfile (local)」を参照していると,こうなるかもしれない.そのときは代わりに,「deb (local)」あるいは「deb (network)」を参照してインストールする.

Existing package manager installation of the driver found.

「runfile (local)」を参照してインストールしようとしていると,発生するかもしれない.「deb (local)」あるいは「deb (network)」を参照してインストールする.

CuDNN インストール

NVIDIA Developer のアカウントを作成し,ログインのうえ以下のページから必要なものをダウンロードできる.

今回は以下の3つ.

  • cuDNN Runtime Library for Ubuntu20.04 x86_64 (Deb)
  • cuDNN Developer Library for Ubuntu20.04 x86_64 (Deb)
  • cuDNN Code Samples and User Guide for Ubuntu20.04 x86_64 (Deb)
$ sudo apt install ./libcudnn8_8.2.2.26-1+cuda11.4_amd64.deb
$ sudo apt install ./libcudnn8-dev_8.2.2.26-1+cuda11.4_amd64.deb
$ sudo apt install ./libcudnn8-samples_8.2.2.26-1+cuda11.4_amd64.deb

CUDA と CuDNN のバージョン対応については以下のサポート表を参照.

参考

間違えて別のバージョンを入れてしまったとき

$ sudo apt purge ./libcudnn8-samples_8.2.2.26-1+cuda11.4_amd64.deb
$ sudo apt purge ./libcudnn8-dev_8.2.2.26-1+cuda11.4_amd64.deb
$ sudo apt purge ./libcudnn8_8.2.2.26-1+cuda11.4_amd64.deb
$ sudo apt autoremove
$ sudo apt autoclean
$ sudo apt update

Miniconda 環境構築

  1. 以下のページから Miniconda3-py38_4.10.3-Linux-x86_64.sh をダウンロードする.
  2. $ bash Miniconda3-py38_4.10.3-Linux-x86_64.sh
    • 基本的に yes でインストールを進めていけば OK
  3. ターミナルを再起動,(base) が立ち上がる.
  4. $ conda create -n si1 --clone base で base 環境が si1 環境に複製される.
  5. 以下を実行する.
# $ conda config --add channels conda-forge
# $ conda config --set channel_priority strict
# $ conda install -c conda-forge numpy scipy scikit-learn matplotlib opencv
# $ conda install -c anaconda cupy
# $ conda install -c pytorch pytorch
$ pip install numpy scipy scikit-learn matplotlib opencv-python autopep8
$ pip install cupy-cuda111
$ pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

参考

fatal error: cublas_v2.h

CUDA やら CuDNN やらを入れないで cupy を入れようとすると,多分こうなる.先にバージョンを考えて CUDA を入れる.

競プロ環境セットアップ

# oj 関係
$ pip install online-judge-tools
$ pip install selenium
$ sudo apt install chromium-chromedriver firefox-geckodriver
$ oj login https://atcoder.jp/
$ oj login https://yukicoder.me/

# nodejs 関係
# atcoder-cli を動かすのに使う+開発に使う
$ sudo apt install nodejs npm
$ sudo npm install n -g
$ sudo n stable
$ sudo apt purge -y nodejs npm
$ exec $SHELL -l
$ node -v

# atcoder-cli 関係
$ sudo npm install -g atcoder-cli
$ acc -h
$ acc login
$ acc session

# Rust 関係
# AHC 公式ビジュアライザ・ジェネレータは大抵は Rust で書かれている
$ sudo apt install curl
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Ruby 関係
$ sudo apt install ruby
# どうせ使うので入れる
$ sudo gem install nokogiri

参考

Userscript 導入

vscode 各種設定

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"cpp": "cd $dir && g++ - $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

Formatting failed. See the output window for details. Source: C/C++ (Extension)

「書式設定が失敗しました。詳細については、出力ウィンドウを参照してください。」とポップアップが表示されるとき,OUTPUT ウィンドウのドロップダウンボックスを「Tasks」から「C/C++」に切り替えると,エラーの内容がわかる.

suspend できないとき

NVIDIA のドライバの関係で,suspend が上手く行かないことがある.

まず以下で再起動できるようになるか試す.

$ sudo apt install pm-utils
$ sudo pm-suspend

駄目ならディスプレイマネージャを変えてみる.

$ sudo apt install lightdm

Usercss


以上