LoginSignup
9
12

More than 1 year has passed since last update.

Ubuntu 20.04 LTS セットアップログ(主に自分用)

Last updated at Posted at 2022-01-14

主に未来の自分に向けたログだが、誰かの参考になるかもしれないので。

Windowsとのデュアルブート

すでにWindows10とUbuntu 18.04をデュアルブートしている。ストレージ (SSD) は2台あり、それぞれにWidowsとUbuntuを独立してインストールしているつもりだった。なお、Windows 10でUbuntu GRUBブートローダーの削除方法 UEFI/レガシーBIOS | 俺の開発研究所 を参考にBIOSモードを確認したところ、BIOSモードはUEFI(パーティションはGPT)だった。セットアップ前のパーティション構成は次の通り。

  • ストレージ1
    • Windows10 本体
    • EFIパーティション
      • Windows10のOSローダー
      • Ubuntu 18.04のOSローダー
  • ストレージ2
    • Ubuntu 18.04 本体

この構成だと、ストレージ1(のEFIパーティション)が無いと、ストレージ2のUbuntuを立ち上げられない。Windows PCに安定したネイティブLinux環境を構築する方法によると、ストレージごとに完全に独立してOSをインストールした方が、OSのアップデートで環境が破壊されるリスクが少ないとのこと。この状態を目指す。

Ubuntuインストール

メディアの作成

WindowsにてUbuntu Desktop 日本語 Remixのダウンロード | Ubuntu Japanese Team から日本語 Remix をダウンロード。通常版をダウンロードする案もあったが「オリジナル版からの変更点」に納得してこちらに。Rufus でUSBメモリに書き込む。

インストール

USBメモリから起動。「インストールの種類」では「それ以外」を選択してパーティションを設定する。このとき、**ストレージ2にもEFIパーティションを作成することに注意。**このEFIパーティションを用意しておかないと、「ブートローダをインストールするデバイス」でストレージ2を選んだとしても、ストレージ1のEFIパーティションにOSローダーが書き込まれてしまう。

GRUBブートローダーの削除

Windows 10でUbuntu GRUBブートローダーの削除方法 UEFI/レガシーBIOS | 俺の開発研究所 を参考に、ストレージ1のEFIパーティションからUbuntu 18.04のローダーを削除する。

最終的なパーティションの構成

結果として、以下のような構成になる。

  • ストレージ1
    • Windows10 本体
    • EFIパーティション
      • Windows10のOSローダー
  • ストレージ2
    • Ubuntu 20.04 本体
    • EFIパーティション
      • Ubuntu 20.04のOSローダー

これにより、ストレージ1からブートすればWindowsが、ストレージ2からブートすればUbuntuが立ち上がる。かつ、片方のOSをアップデートしても、もう片方への影響は小さくなる(はず)。怖いならストレージを抜いてアップデートすればよい。

USBの無線LANアダプタ

Archer T2U Nano というUSBの無線LANアダプタを使っているが、Ubuntuにはドライバーが付属していない。したがって、これを自前でビルドする必要がある。しかしながらビルドしようにもgccやmakeなどがインストールされていない。もちろんインターネットにも繋がらない。さあ困った。

USBメディアからパッケージのインストール

なんと有り難いことに、インストールメディアに入っているのだ。これをマウントしてaptのリポジトリとして見に行けるようにすればいい。

sudo mkdir /media/usb-drive
sudo mount /dev/sdd1 /media/usb-drive/  # 自分のPCでは/dev/sdd1がUSBメディアだった

sudo vi /etc/apt/sources.list
#末尾に以下を追加して保存する
#deb file:/media/usb-drive focal main restricted

sudo apt update
sudo apt install build-essential dkms

sudo umount /media/usb-drive/
sudo rm -r /media/usb-drive
sudo vi /etc/apt/sources.list  # 先程追加した行を消すなりコメントアウトするなり

参考

ドライバのビルドとインストール

aircrack-ng/rtl8812au: RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection から zip でソースコードをダウンロードし、USBメモリ経由で運ぶ。適当なディレクトリにzipを展開する。

cd rtl8812au-5.6.4.2
sudo make dkms_install  # ビルドも兼ねている

再起動すると、WiFiが使えるようになっている。

何はともあれアップデート

sudo apt update && apt upgrade -y && apt autoremove -y

ディレクトリ名を英語にする

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

参考

Mozcの設定

Ctrl-jで日本語入力をトグルしたい。「ことえり」をベースに以下を追加。

  • 直接入力, Ctrl-j: IMEを有効化
  • 入力文字なし, Ctrl-j: IMEを無効化

Firefox

Gesturefy

ジェスチャーの設定はjsonでエクスポートできる。バックアップしておいたものを復元する。

uBlock origin

フォント

Dock

sudo apt install gnome-tweak-tool

以下のテーマとアイコンを入れる。

gnome-tweak-tool を起動し、Keyboard & Mouse → Emacs InputをOn.

GitHub

ssh-keygen -t ed25519 -C "自分のメールアドレス"
ssh-add ~/.ssh/id_ed25519

GitHubのSettings → SSH and GPG keysにて、~/.ssh/id_ed25519.pubの内容を登録する。以下で疎通確認できる。

ssh -T git@github.com

参考

linuxbrew

sudo apt install curl git
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

参考

zshとterminator(ターミナルエミュレータ)

brew install zsh
sudo apt install terminator

設定ファイルの復元

自分のリポジトリから設定ファイル (dotfiles) を復元する。

Emacs

aptから26.3が入る。やや古いけどまあいいか。

sudo apt install emacs

Python

pyenv

pyenv/pyenv: Simple Python version management

sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
pyenv install -l | grep 3.9
pyenv install 3.9.9
pyenv global 3.9.9

poetry

Introduction | master | Documentation | Poetry - Python dependency management and packaging made easy

curl -sSL https://install.python-poetry.org | python3 -
# インストール後、$HOME/.local/bin をパスに追加しておく

PyCharm

Toolbox App経由で入れる

JetBrains製のIDEをまとめて管理できるToolbox Appが提供されており、このアプリ経由で入れるのが良い。

JetBrains Toolbox App:ツールを簡単に管理からtar.gzをダウンロードする。

sudo tar -xzf ~/Downloads/jetbrains-toolbox-1.22.10970.tar.gz -C /opt
sudo ln -s /opt/jetbrains-toolbox-1.22.10970/jetbrains-toolbox /usr/local/bin
jetbrains-toolbox

GUIが開くので、"PyCharm Professional"をインストールする。Dockには自動的にアイコンが追加される。

Toolbox Appの右上の歯車?アイコンからSettingsを開く。Generate shell scriptsをONにする。Shell scripts locationにパスが通っている適当なディレクトリを入力する(例えば~/.local/bin)。

さらに、Toolbox内のPyCharmのSettingsを開き(上記はToolbox自体の設定であり、これとは別物であることに注意)、Shell script namepycharmcharmに変更する。※MacOSにインストールしたPyCharmとの一貫性を取るため

参考

PyCharm単体で入れる場合

こちらの場合、インストールディレクトリである/opt以下の権限の都合上、アップデートが正常にできないリスクがある(2021.3.1→2021.3.2のアップデートで確認)。

Download PyCharm: Python IDE for Professional Developers by JetBrains からダウンロードする。

sudo tar xzf Downloads/pycharm-professional-2021.3.1.tar.gz -C /opt
/opt/pycharm-2021.3.1/bin/pycharm.sh
  • Tools→
    • Create command-line Launcher...: コマンドラインから呼べるようにする
    • Create Desktop Entry...: Dockに登録できるようにする

CUDA

どうせ nvidia-docker で動かすと思うのだが、念のため生でも動くようにしておく。

バージョンの選定

ソースからのビルド | TensorFlow を参考にする。2022/01/08 では以下の組み合わせが最新だった。

  • tensorflow-2.6.0
  • GCC 7.3.1
    • gcc -v によると gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) らしいが、気にせず進める
  • cuDNN: 8.1
  • CUDA: 11.2

nouveauの停止

sudo touch /etc/modprobe.d/blacklist-nvidia-nouveau.conf
# ファイルの中身は以下のようにする
#blacklist nouveau
#options nouveau modset=0
sudo vi /etc/modprobe.d/blacklist-nvidia-nouveau.conf
# 設定を有効にする
sudo update-initramfs -u

参考

バージョンの固定

うっかりアップグレードされてしまうと困るので、バージョンを固定する。

sudo vi /etc/apt/preferences.d/cuda-11-2-pin-700
Package: cuda
Pin: version 11.2*
Pin-Priority: 700

Package: libcudnn*
Pin: version 8.1*+cuda11.2
Pin-Priority: 700

参考

CUDA Toolkit & cuDNN

Select Target Platformで以下のように設定し、出てきた指示に従ってコマンドを実行する。

  • Operating System: Linux
  • Architecture: x86_64
  • Distribution: Ubuntu
  • Version: 20.04
  • Installer Type: deb (network)
    • 正直どれがいいのか分からない。どうせaptで入れる際にダウンロードするだろうからこれにした
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-get update
sudo apt-get -y install cuda libcudnn-8-dev

グラフィックボードのドライバはツールキットに付いてくるので、別途インストールする必要なし。再起動して nvidia-smi でドライバがインストールされていることを確認する。

動作確認

初心者のための TensorFlow 2.0 入門 | TensorFlow Core のサンプルコードを動かす。

pip install tensorflow==2.6.0
vi tensorflow_sample.py
python tensorflow_sample.py
import tensorflow as tf
mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512, activation=tf.nn.relu),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

なお、kerasを2.6.0にダウングレードしないと、実行時に AlreadyExistsError 例外が上がってしまう。以下のissueが詳しい。

AlreadyExistsError: Another metric with the same name already exists · Issue #51592 · tensorflow/tensorflow

Docker / nvidia-docker

Installation Guide — NVIDIA Cloud Native Technologies documentation

curl https://get.docker.com | sh \
  && sudo systemctl --now enable docker

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
# 動作確認
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

参考

一通り作業した後で見つけた。cuda-drivers パッケージでインストールする場合は、手動で nouveau をブラックリストに追加する必要がないとのこと。

VSCode

Download Visual Studio Code - Mac, Linux, Windows からdebをダウンロードする。その後aptで入れる。

sudo apt install ~/Downloads/code_1.63.2-1639562499_amd64.deb

Slack

Linux | ダウンロード | Slack からdebファイルをダウンロードする。

sudo apt install ./Downloads/slack-desktop-4.23.0-amd64.deb
9
12
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
9
12