Ubuntu 22.04 セットアップ
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
をクリックすると、「不完全な言語サポートの修正」的な表示が出てくるので、それをインストールして再起動します。
Keyboard
からJapanese (Mozc)
を追加します。JIS キーボードが US キーボードと誤判定されてしまうため、既存のJapanese
も残しておきます。
この誤判定の問題は、~/.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
以下をインストールしています。
- Dash to Panel
- WinTile (まだ使えないみたいです)
Discussion