Ubuntu 新規環境セットアップのメモ
概要
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
で確認
インストール用メディア作成
- USB メモリを用意する.
- 以下のページから ubuntu-ja-20.04.1-desktop-amd64.iso を落とす.
- USB メモリを挿入し,
$ lsblk -f
でデバイス名およびマウントポイントを確認する.- 以下,デバイス名は
sdb
とする.
- 以下,デバイス名は
$ umount "マウントポイント"
で対象 USB メモリをアンマウントする.umount
である.unmount
ではない.
$ dd bs=4M if=/path/to/ubuntu-ja-20.04.1-desktop-amd64.iso of=/dev/sdb status=progress && sync
で iso の中身を書き込む.of=/dev/sdb
のようにする.of=/dev/sdb1
のようにすると起動できない.- command line - How to create a bootable Ubuntu USB flash drive from terminal? - Ask Ubuntu
- つまり,アンマウントするのは
sdb1
で,書き込み先はsdb
とする.
参考
Boot 関係設定
pc 起動時のスプラッシュ画面で特定のキーを押すと,何かしらの画面に遷移できる.この設定はマシン依存.
- F11: Boot Select Menu
- Delete: UEFI BIOS Utility
- ドスパラ サポートFAQ よくあるご質問|お客様の「困った」や「知りたい」にお応えします。
- たとえば,虹色に光るゲーミング PC を鎮めたり.
Ubuntu インストール
- Live USB に初めから GParted が入っているので,Windows が入っているパーティションを切り詰めて,次の 2 つのパーティションを用意する.
/
をマウントするドライブ/home
をマウントするドライブ
- インストール用ウィザードで「インストールの種類」が出てきたら,「それ以外」を選択する.
- パーティション一覧が出るので,先程作った2つのパーティションそれぞれ右クリック→「変更」から,マウントポイントを選択する.
- 何もせずに次に進もうとすると,「ルートファイルシステムが定義されていません。パーティショニングメニューでこれを修正してください」と言われる.
- スワップ領域は,今回は用意しなかった.
各種セットアップ
- Visual Studio Code を .deb からインストールする
- Vivaldi を .deb からインストールする
- apt 経由でいろいろ入れる
- Dropbox は,nautilus-dropbox インストール後に一度立ち上げて daemon をインストールする必要がある.
- gnome-shell-extension-system-monitor インストール後,再起動して拡張機能マネージャを開いて「system-monitor」を ON にする.
- システムモニターアプレットを Ubuntu 20.04 タスクバーに表示する - Qiita
- このとき,トグルボタンが切り替えられない場合,ウィンドウ右上に全体切替のトグルボタンがあるので,それを切り替える.
- 他にも
$ 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
参考
- Ubuntu 18.04にGitをインストールする方法
- ファイル同期の定番!「Dropbox」をUbuntuにインストールする方法! | LFI
- Download - KeePassXC
- Ubuntuでc++17のために最新版のg++, boost, cmakeを自然に使う - Qiita
- Ubuntu 20.04 インストール (5) - kashiの日記
Vivaldi の同期が競合する
ログアウト→ログイン,で解決する.
CapsLock を Control に置換する
$ sudo apt install gnome-tweaks
- Tweaks を起動し,「キーボードとマウス」→「追加のレイアウトオプション」→「Ctrl Position」→「Caps Lock を Ctrl として扱う」にチェックを入れる
- ログアウトして再度ログインする
参考
- Ubuntu/Caps-LockキーをCtrlキーにする方法 - Linuxと過ごす
- なお,/etc/default/keyboard を編集する方法もあるようだが,こちらの環境では何も変化しなかった.
トップバーの時刻表示に秒数を追加する
- 前節でインストールした Tweaks を開く
- 「トップバー」で「秒」のトグルスイッチを 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)」を参照してインストールする.
- Error installing Cuda toolkit: Existing package manager installation of the driver found - Ask Ubuntu
- Tensorflow2.4 Install to Ubuntu20.04 備忘録 - Qiita
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 のバージョン対応については以下のサポート表を参照.
- Support Matrix :: NVIDIA Deep Learning cuDNN Documentation
- NVidiaドライバ・CUDA・cuDNNのバージョン対応 + tensorflowの対応 - programming-notes
- ソースからのビルド | TensorFlow
- NvidiaドライバとCUDAとcuDNNとTensorflow-gpuとPythonのバージョンの対応 - Qiita
参考
間違えて別のバージョンを入れてしまったとき
$ 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 環境構築
- 以下のページから Miniconda3-py38_4.10.3-Linux-x86_64.sh をダウンロードする.
$ bash Miniconda3-py38_4.10.3-Linux-x86_64.sh
- 基本的に yes でインストールを進めていけば OK
- ターミナルを再起動,(base) が立ち上がる.
$ conda create -n si1 --clone base
で base 環境が si1 環境に複製される.- 以下を実行する.
# $ 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
参考
- Miniconda Install 備忘録 - Qiita
- cupy のバージョン指定について
- torch バージョン関係は公式に案内されているものに従う
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
参考
- atcoder-cli 関係
- Rust 関係
Userscript 導入
- ac-predictor
- ac-writers script
- AtCoder Difficulty Display
- AtCoder Rating Cumulative Distribution
- AtCoder TestCase Extension
- atcoder-standings-difficulty-analyzer
- atcoder-standings-lang
- atcoder-tasks-page-colorize-during-contests
- atcoder-tasks-page-colorizer
- atcoder-wait-time-display
- AtcoderDevotionGraph
- AtCoderPerformanceColorizer
- AtCoderResultNotifier
- AtCoderStandingsAnalysis
- comfortable-yukicoder
- RationalModConverterUserJS
- Time Limit Emphasizer
vscode 各種設定
- ターミナルへ移動するためのショートカットを登録する
- “File”→”Preference”→”Keyboard Shortcuts” で “terminal.focus” で検索
- “workbench.action.terminal.focus” にショートカットを設定する
- Visual Studio Code でエディタとターミナルを移動するショートカットキーの作成 - Qiita
- 画面に合わせて表示倍率を調整する
- 各種拡張機能インストール
- C/C++
- Python
- Ruby
- Code Runner
- Colonize
- #region folding for VS Code
"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 が上手く行かないことがある.
- UbuntuにGeForceを入れてサスペンドできない場合の解決例 - Qiita
- Ubuntu 18.04 LTSとNVIDIAドライバーの組み合わせでサスペンド・レジュームができるようにする | Terakinizers’ Tells
まず以下で再起動できるようになるか試す.
$ sudo apt install pm-utils
$ sudo pm-suspend
駄目ならディスプレイマネージャを変えてみる.
$ sudo apt install lightdm
Usercss
以上