🥺

Ubuntu 22.04 セットアップ

2022/04/25に公開

Ubuntu 22.04 セットアップ

備忘録です。
細かい部分は省略しているので、Ubuntu 20.04 版で適宜補完して下さい。

OS のインストール

  • https://releases.ubuntu.com/22.04/ からイメージをダウンロードする
  • Startup Disk Creator を使って USB メモリに書き込む
  • USB メモリを挿して PC を起動し、手順通りにインストールする

NVIDIA Driver のインストール

今回は、以下のコマンドでインストールしました。

sudo add-apt-repository ppa:graphics-drivers/ppa # Optional
sudo apt update
sudo ubuntu-drivers autoinstall

再起動後、nvidia-smiで動作確認します。

$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.60.02    Driver Version: 510.60.02    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   36C    P8    19W / 290W |    639MiB /  8192MiB |      4%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1768      G   /usr/lib/xorg/Xorg                326MiB |
|    0   N/A  N/A      1935    C+G   ...ome-remote-desktop-daemon      158MiB |
|    0   N/A  N/A      1983      G   /usr/bin/gnome-shell               61MiB |
|    0   N/A  N/A      2937    C+G   ...276472197050392319,131072       88MiB |
+-----------------------------------------------------------------------------+

SSH keys の生成と公開鍵の登録

詳細はAbout SSH - GitHub Docsを見ると良いです。

まずは鍵を作成します。-Cを省略するとuser@hostnameが自動的に付与されます。
パスフレーズは、2 回目以降はssh-agentで入力を自動化もできるため、面倒くさがらずに入力するのが安全です。

ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub

表示された公開鍵をコピペして登録します。タイトルを省略すると、コメント部が使用されます。

接続テストをします。

$ ssh -T git@github.com
Hi kenji-miyake! You've successfully authenticated, but GitHub does not provide shell access.

日本語入力の設定

Manage Installed Languagesをクリックすると、「不完全な言語サポートの修正」的な表示が出てくるので、それをインストールして再起動します。

Region & Language

KeyboardからJapanese (Mozc)を追加します。JIS キーボードが US キーボードと誤判定されてしまうため、既存のJapaneseも残しておきます。

Keyboard

この誤判定の問題は、~/.config/mozc/ibus_config.textprotoを以下のように編集して再起動すれば直るかなと思ったんですが、残念ながら効果がありませんでした。

-  layout : "default"
-  layout : "jp"

ソフトウェアのインストール

GUI でインストールするもの

以下のリンクからパッケージをダウンロードしてインストールします。

仕事とプライベートでプロファイルを変えたい人には、Chrome Betaもインストールするのがオススメです。
通常の Chrome に別ユーザーとして追加しても良いんですが、ブラウザ自体を変える方が個人的には好きです。

apt updateで警告が出る場合は、重複したsources.listを削除します。

sudo rm /etc/apt/sources.list.d/google-chrome-beta.list

CUI でインストールするもの

事前準備

セットアップに必須のツールをインストールします。

sudo apt install curl git

また、~/.profileを見ると、$HOME/.local/binが存在しないと PATH に追加してくれないことが分かります。

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

ディレクトリを作成後、再起動して PATH に反映します。

mkdir -p $HOME/.local/bin
sudo reboot

VLC media player

sudo snap install vlc

pip

sudo apt install python3-pip

marcosnils/bin

APT で配布されていない、Rust や Go 製の CLI ツールをインストールするのに便利です。

wget https://github.com/marcosnils/bin/releases/download/v0.13.1/bin_0.13.1_Linux_x86_64
chmod +x bin_0.13.1_Linux_x86_64
./bin_0.13.1_Linux_x86_64 install github.com/marcosnils/bin

Rust

cargoでインストールすると楽なツールもあるので、インストールします。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
echo "source $HOME/.cargo/env" >> ~/.bashrc
sudo apt install build-essential

Vim

sudo apt install vim-gtk3

fish

sudo apt install fish

jorgebucaran/fisher

fish
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher

locate

sudo apt install plocate

BurntSushi/ripgrep

sudo apt install ripgrep

sharkdp/fd

sudo apt install fd-find
ln -s $(which fdfind) ~/.local/bin/fd

junegunn/fzf

sudo apt install fzf

koalaman/shellcheck

sudo apt install shellcheck

stedolan/jq

sudo apt install jq

mikefarah/yq

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CC86BB64
sudo add-apt-repository ppa:rmescandon/yq
sudo apt update
sudo apt install yq -y

GitHub CLI

curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh

kislyuk/argcomplete

pip3 install argcomplete

ismaelgv/rnr

bin install https://github.com/ismaelgv/rnr

x-motemen/ghq

bin install https://github.com/x-motemen/ghq

hadolint

bin install https://github.com/hadolint/hadolint

joehillen/sysz

bin install https://github.com/joehillen/sysz

chmln/sd

bin だと若干面倒なので、cargo でインストールしました。

cargo install sd

Alacritty

Linux 用バイナリは無いようなので、cargo でインストールしました。

sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3
cargo install alacritty
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator (which alacritty) 50

手動でupdate-alternativesを設定する場合は以下を実行します。

sudo update-alternatives --config x-terminal-emulator

Zellij

cargo install zellij

Docker Engine

面倒なので、今回はこれでインストールしました。

curl -fsSL https://get.docker.com | sh
sudo groupadd docker
sudo usermod -aG docker $USER

Rootless にしたい場合はDocker Documentationを参考にセットアップして下さい。

カスタマイズ

dotfiles のインストール

各自のやり方に置き換えて下さい。.gitconfig等、ユーザー名が入っている部分以外は、使っていただいても大丈夫です。

ghq get git@github.com:kenji-miyake/dotfiles.git
cd ~/ghq/github.com/kenji-miyake/dotfiles/
./install.fish
fisher update

ホームディレクトリのフォルダ名を英語にする

今回は英語でインストールしたので必要ありませんでしたが、一応載せておきます。

LANG=C xdg-user-dirs-gtk-update

CapsLock を Ctrl にする

gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps', 'caps:ctrl_modifier']"

スワップファイルを拡張する

# Optional: Check swapfile
free -h

# Remove current swapfile
sudo swapoff /swapfile
sudo rm /swapfile

# Create new swapfile
sudo fallocate -l 32G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Optional: Check swapfile again
free -h

便利な GNOME Shell Extensions をインストールする

sudo apt install chrome-gnome-shell
google-chrome https://extensions.gnome.org
# Install Chrome extension from the web browser

以下をインストールしています。

Discussion