LoginSignup
92
88

More than 1 year has passed since last update.

Ubuntu 20.04セットアップ

Last updated at Posted at 2020-05-06

概要

先日、Ubuntu 20.04 がリリースされましたね!リリースノートによると、ついに Python のデフォルトバージョンが3.8になりました。
大変おめでたいので、開発用 PC に Ubuntu 20.04 をセットアップした時のメモを、備忘録として残してみます。

対象読者

  • Ubuntu をソフトウェア開発に使う方
  • Ubuntu 初〜中級者

目次

Ubuntu 20.04 のインストール

環境

Ubuntu だと相性問題も色々とあるかもしれないので、一応主要な情報を記載しておきます。
こちらの構成で、特に問題なくインストールできました。

  • OS: Ubuntu 20.04 Desktop
  • CPU: Ryzen 9 3900X
  • GPU: RTX 2070
  • MB: X570 Taichi

ISO ファイルのダウンロード

こちらからダウンロードします。

様々な Ubuntu フレーバーも存在するので、お好きなものを入れても良いと思います。
個人的にはUbuntu Budgieは、便利な機能がたくさんありそうなので気になりました。

インストール USB の作成

Windows だとRufus、Ubuntu だとSuper -> "usb"で検索してStartup Disk Creatorが使えます。
どちらも Ubuntu 公式にドキュメントがあります。

USB から起動してインストール

事前に、BIOS で起動順を設定しておくか、手動で USB から起動して下さい。
デュアルブートにする場合はパーティションの設定が必要ですが、それ以外は特にハマらないと思うので、ここの説明は省略します。

NVIDIA Driver のインストール

ここはドライバのインストール以前に OS を起動する段階でハマる可能性が高いです。
Ubuntu 18.04 では、インストール直後に GUI がバグっているため、CUI ログインをして作業が必要だったり、色々と苦しめられました…

今回はすんなり起動してくれましたが、もしハマった人は、古いバージョンを入れてみると良いかもしれません。
それでもダメな場合は、Ubuntu NVIDIA ドライバ インストール等でググると色々出てくるので、頑張って解決しましょう。

さて、ドライバのインストールですが、いくつか方法があります。

  1. ubuntu-driversコマンドでインストールする
  2. Software & UpdatesAdditional Driversからインストールする
  3. NVIDIA 公式からドライバをダウンロードしてインストールする

詳細は、こちらに詳しく書いてあるので(Ubuntu 18.04 ですが)、ここでは 1 についてのみ説明します。

(Optional) PPA を追加する

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

(Optional) 推奨ドライバを確認する

$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:03.1/0000:0d:00.0 ==
modalias : pci:v000010DEd00001F07sv00001043sd00008670bc03sc00i00
vendor   : NVIDIA Corporation
model    : TU106 [GeForce RTX 2070 Rev. A]
driver   : nvidia-driver-440 - distro non-free recommended
driver   : nvidia-driver-435 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

ドライバをインストールする

  • 自動で推奨ドライバをインストールする場合
sudo ubuntu-drivers autoinstall
  • 手動でバージョン指定をしてインストールする場合
sudo apt install nvidia-driver-440

はい、これで完了です…とは残念ながらなりません。
ドライバのインストール後に再起動したら、ログイン画面でループしてしまう可能性もあるため、再起動してログインできるまでが NVIDIA ドライバインストールです。

ログインループにハマってしまった場合、違うバージョンのドライバを入れたり、
Ubuntu NVIDIA ドライバーblacklist nouveau / grub nomodeset / セキュアブートあたりのワードで検索してみると、解決策が見つかるかもしれません。

今回はこちらも、特にトラブルは発生しませんでした。平和な時代になったものです。

最終的に、nvidia-smiを実行して GPU の情報が表示されれば完了です。

$ nvidia-smi
Thu Apr 30 02:57:11 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64       Driver Version: 440.64       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2070    Off  | 00000000:0D:00.0  On |                  N/A |
| 26%   31C    P8     9W / 215W |   1210MiB /  7979MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+

SSH 公開鍵の生成と登録

ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub

表示された公開鍵をコピペして登録して下さい。

日本語入力の設定

何通りか方法があります。
日本語 Remixをインストールした場合は、特に設定不要のはずです。

Option1. インプットメソッドフレームワークの選択

  1. iBus
  2. Fcitx
  3. その他

個人的には、JIS キーボードなら iBus で良いかと思います。
US キーボードの場合は、Fcitx だと Alt の空打ちで 日本語入力 ON/OFF の切り替えができるそうなので、便利かもしれません。
Fcitx の設定については、こちらが分かりやすかったです。

Option2. 日本語入力 ON/OFF の切り替え方法

  1. インプットメソッドフレームワークで切り替える
  2. IME (Mozc) 単体で切り替える

1 は、インプットメソッドフレームワーク側でキーボードを2種類用意しておき、Mozcは常に日本語入力ON、もう一方は常にOFFで切り替えるというイメージです。
僕は 2 を使っています。Mac 風にしたい方は、以下のような設定をしておくと便利です。

mozc settings

Mozc で JIS キーボードなのに US キーボードとして認識されてしまう場合は、/usr/share/ibus/component/mozc.xmlを編集すれば治ります。

- <layout>default</layout>
+ <layout>jp</layout>

Terminatorの項にも書いてありますが、ibus-setup -> EmojiでCtrl-Shift-ECtrl-Shift-Alt-Eあたりに変更しておくと良いと思います。

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

GUI アプリケーション

特に解説はしませんが、リンクだけ書いておきます。

aptsnapどちらでもインストールができるものが多いですが、snap版だと日本語入力ができない不具合もあるそうなので、僕はsnap推奨のもの以外はaptで入れています。

仕事用と個人用でブラウザのプロファイルを分けたい方は、Chrome の他に、Chrome Beta もインストールするのがオススメです。
Ubuntu 版 の Chrome 単体では、Windows 版 のように上手くプロファイル管理をしてくれないと感じたためです。

参考までに僕の使っているものを載せてみます。必要なものだけインストールしてください。
最初に sudo apt install git curl くらいはしておくと、色々とスムーズにインストールできると思います。

fish shell

機能豊富で設定も少なくて済む、ミニマリストにピッタリの Shell です。
プラグイン管理の Fisher と、便利なプラグインもいくつか一緒に入れると良いです。

# Fish Shell
sudo apt install fish

# Fisher
curl -sL git.io/fisher | source && fisher install jorgebucaran/fisher

# Plugins
fish -c "fisher install rafaelrinaldi/pure oh-my-fish/plugin-pbcopy edc/bass jethrokuan/z jethrokuan/fzf decors/fish-ghq"
sudo apt install fzf

chsh でログインシェルを変更しても良いですが、色々とハマりポイントもあるのと、Bash との併用のために環境変数を共通化したいので、僕は以下のように .bashrcfish を呼び出しています。

ROSを使っていると、ツール周りのサポートの関係で、基本はfishを使いつつ、必要な時はBashも使いたいことが結構あるんですよね。)

# ~/.bashrc

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# Original .bashrc
source /etc/skel/.bashrc

# Fish Shell
exec fish

参考

source /etc/skel/.bashrc の部分は、元々の .bashrc が長くて見通しが悪いので置き換えています。スッキリするのでオススメです。
先頭の # If not running interactively, don't do anything は消すと問題が起きるので残しましょう。

上記は簡単にするために省略して書きましたが、このままだと問題があります。

問題 1. fish がインストールされていないとターミナルが起動しなくなる

# ~/.bashrc

command -v fish > /dev/null 2>&1 && exec fish

問題 2. fish 上で bash と実行しても Bash に切り替わらない

以下のようなハックで回避できます。

# ~/.config/fish/config.fish

alias bash='env FISH_VERSION=$FISH_VERSION bash'
# ~/.bashrc

if [ -z "$FISH_VERSION" ]; then
  command -v fish > /dev/null 2>&1 && exec fish
fi

Vim

クリップボード連携機能が必要な場合は vim-gtk3 をインストールして、~/.vimrcset clipboard=unnamedplus を追加します。
以前は vim-gnome もありましたが、廃止されたようですね。

sudo apt install vim-gtk3

Terminator

分割できるターミナルです。デフォルトで使い勝手が良いので使っています。
Ctrl-Shift-E / Ctrl-Shift-O / Ctrl-Shift-X だけ覚えておけば何とかなります。

sudo apt install terminator

Ctrl-Shift-Eが絵文字にアサインされていたので、違うものに変更した方が良さそうです。

Linuxbrew

apt だと配布されていない or バージョンが古いソフトをインストールする場合に便利です。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# ~/.bashrc

test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)

Docker

これも色々とインストール方法があってややこしいのですが、今回はこちらの方法でインストールしました。

curl -fsSL https://get.docker.com | shでも良いと思います。

GPUを使う場合はここを見てnvidia-container-toolkitをインストールします。

その他

その他インストールしたソフトの名前と一言コメントだけ書いておきます。
最初に入れておかなくても、必要になったらその場でインストールすれば良いです。

apt で入るもの

  • flameshot: スクショを撮って画像を加工できます
  • peek: GIF を撮るのに便利です
  • simplescreenrecorder: GIF 以外はこっちを使っています
  • ffmpeg: 撮影した動画をさくっと圧縮するのに便利です
  • silversearcher-ag: grep はもう使っていられない…
  • mlocate: locateが使えるようになります
  • bat: いい感じにシンタックスハイライトしてcatしてくれます(apt版だとコマンドはbatcatです)
  • fd-find: find のオプションも僕には難しすぎるので…(apt版だとコマンドはfdfindです)
  • fzf: これ単体で使うことは少ないですが、色んなツールが依存していたりします
  • tig: TUI で Git ログを見れます
  • tree: ディレクトリ構造を見れます
  • xsel: 標準出力をクリップボードにコピーできます(pbcopy のエイリアスを作るのがオススメです)
  • htop: これを表示させているだけで仕事している感が出るとか出ないとか
  • jq: JSON ファイルから何かを抽出したい時(ほとんどの人は滅多になさそう)に使えます

brew で入るもの

  • ripgrep: ag に飽きた方へ(あまり使ってないです)
  • sd: sed の使い方イマイチわからん人でも使えると思います
  • ghq: git clone 時にどこに置くか考えなくて良くなるので便利です
  • yq: jq の YAML 版です

カスタマイズ

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

これをしないと実質 cd できないので、必ず設定した方が良いです。

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

CapsLock を Ctrl にする

sudo apt install gnome-tweaks
gnome-tweaks

gnome-tweaks を開き、以下の箇所で設定できます。念の為2つ設定しています。

  • Keyboard & Mouse -> Additional Layout Options
    • Ctrl Position -> Caps Lock as Ctrl
    • Caps Lock behavior -> Caps Lock is also a Ctrl

または、以下のコマンドでも変更できます。

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

どうやら不具合でこの設定が無効化されてしまうことがあるようですが、Alt+F2 -> r -> Enterをすれば直るようです。
https://askubuntu.com/questions/1286997/caps-lock-remapping-stops-working

ターミナルで無限スクロールバックできるようにする

デフォルト値だと、ログメッセージが途切れてしまうことが多いので、設定した方が良いです。
Terminator だと以下のように設定できます。

infinite scrollback

スクリーンショットのショートカットを変更する

ご自分の用途に合わせて、好きなように設定すれば良いです。
僕は選択範囲をクリップボードにコピーしてSlackに貼り付けることが多いので、それに PrintScreen を割り当てています。

screenshot shortcut

flameshotを使う方は、以下のように既存のショートカットを無効化し、flameshotのショートカットを追加すると良いでしょう。

disable default screenshot
add flameshot shortcut

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

増やしておくと安心です。

# (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

# (Check swapfile again)
free -h

Windows とのデュアルブートで時計がずれるのを直す

時計がずれると気になる人は設定してみて下さい。

sudo timedatectl set-local-rtc true

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

sudo apt install chrome-gnome-shell

をしてから、Firefox か Chrome で ここを開くと、便利な拡張機能がインストールできます。
Click here to install browser extension. と表示されていたらクリックして、ブラウザ拡張をインストールして下さい。
拡張機能のページで、以下のようにボタンをONにするとインストールされます。

gnome shell extensions

設定用アプリは、extensions で検索すると出てきます。 Tweaks からでも設定できます。

search extensions

僕は以下のものをインストールしています。

このへんを見て、自分に合うものを探してみて下さい。

まとめ

自分の開発用 PC セットアップ方法を整理してみました。もし誰かのお役に立てば幸いです。
詳細までは書ききれなかったとこも多いので、気になる方はご自身で深く調べてみて下さい。

他にもオススメの設定があれば、コメント欄でぜひ教えて下さい!

92
88
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
92
88