Ubuntu 20.04 にアップグレードした

やったこと

一度カーネルとパッケージを最新にしてアップグレードを実行する。

$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

$ sudo apt-get install update-manager-core
$ sudo do-release-upgrade

ダメだった場合 -d オプションをつける。

$ sudo do-release-upgrade -d

後処理

python3

強制バージョンアップの影響か pip3 経由で入れたライブラリが壊れていたので入れ直した。

$ sudo pip3 install ansible

Ansible を走らせてエラーを潰していく。

rbenv

Ansible で入れていた ruby-build 依存ライブラリの libgdbm5libgdbm6 に変更する。

github.com

apt リポジトリ

アップグレード時に無効化された apt リポジトリについて対応する。

  • /etc/apt/sources.list の整理
    • bionic 時代のコメントアウトがそのまま残っていた
    • 直接編集してもよいが Software & Upgrades でポチポチするとわかりやすい
  • /etc/apt/sources.list.d/~ の整理(公式の対応次第)
  • ppa は未対応なら ansible playbook からコメントアウトするとか

software-and-upgrades

nvidia driver

公式は対応していたがアップグレード時に無効化されていたので ppa を入れ直す。

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

sources.list.dbionic のままになっていたのを修正する。

sudo mv graphics-drivers-ubuntu-ppa-bionic.list \
  graphics-drivers-ubuntu-ppa-focal.list

そもそも Ubuntu 19.04 からはデフォルトで公式ドライバが入っているっぽいので(たしかに ppa を入れ直さない状態でも使えていた)普通に使う分にはそれで良さそう。

gihyo.jp

golang

github.com

今までは ppa 経由で入れていたが、まだ focal に対応していなかったので snap 経由で入れるように Ansible を修正した。

+ - name: Uninstall packages from apt
+   apt:
+     name:
+       - golang-go # migrate to snap
+     state: absent
+     update_cache: yes
+   become: yes

  - name: Install packages from snap
    snap:
      name:
+       - go
        - ...
      classic: yes
    become: yes

その他

2020/05/02 時点で focal 未対応だったリポジトリ

  • docker
    • 公式対応待ちで良さそう

Remove python2

$ sudo apt purge python2.7-minimal
$ sudo apt autoremove
$ which python2
python2 not found

Google Cloud SDK

cloud.google.com

上記の方法でインストールしていた場合、Google Cloud SDK 自体は python3 に対応しているが apt リポジトリ上では python2 に依存したままなので python2 がないと(apt-get 経由では)インストールできなかった。

# sources.list.d に追加された状態
$ sudo apt show google-cloud-sdk   
Package: google-cloud-sdk
Version: 290.0.0-0
Priority: optional
Section: misc
Maintainer: Google Cloud SDK Authors <https://code.google.com/p/google-cloud-sdk/>
Installed-Size: 278 MB
Depends: python2.7
Recommends: python-crcmod
Suggests: google-cloud-sdk-app-engine-java, google-cloud-sdk-app-engine-python, google-cloud-sdk-pubsub-emulator, google-cloud-sdk-bigtable-emulator, google-cloud-sdk-datastore-emulator, kubectl
Conflicts: gsutil
Homepage: https://cloud.google.com/sdk/
Download-Size: 47.8 MB
APT-Sources: http://packages.cloud.google.com/apt cloud-sdk/main amd64 Packages
Description: Utilities for the Google Cloud Platform

結局 snap 経由でのインストールに変えた。

  - name: Install packages from snap
    snap:
      name:
        - go
+       - google-cloud-sdk
        - ...
      classic: yes
    become: yes

テーマ

Ubuntu 公式の Yaru がいい感じになっていたので採用する。

Appearance

github.com

アイコンだけは Tela-ubuntu を引き続き使う。

感想

パッケージ周りで多少躓いたところはあったが、python2 非依存にできるしテーマも洗練されているし、アップグレードしてよかったなと思う。
元々 Chrome でタブを開きまくってもメモリあまり食わなかったり、Linux カーネルなだけあって Docker が速かったりして快適だったので機会を見つけて使っていきたい。

あと snap とても便利。