2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu 20.04 LTS (Focal Fossa) から Ubuntu 20.10 (Groovy Gorilla) へアップグレードする

Last updated at Posted at 2021-01-02

概要

  • Ubuntu 20.04 LTS (Focal Fossa) から Ubuntu 20.10 (Groovy Gorilla) へアップグレードする
  • 外部から ssh にて接続した状態でアップグレードを実施する

アップグレード前のバージョンを確認

20.04 focal になっていることを確認。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

アップグレード前のパッケージリポジトリを確認

sources.list にて focal が指定されていることを確認。

$ grep ^deb /etc/apt/sources.list
deb http://jp.archive.ubuntu.com/ubuntu focal main restricted
deb http://jp.archive.ubuntu.com/ubuntu focal-updates main restricted
deb http://jp.archive.ubuntu.com/ubuntu focal universe
deb http://jp.archive.ubuntu.com/ubuntu focal-updates universe
deb http://jp.archive.ubuntu.com/ubuntu focal multiverse
deb http://jp.archive.ubuntu.com/ubuntu focal-updates multiverse
deb http://jp.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse

アップグレード前の外部パッケージリポジトリを確認

今回の環境では Node.js 用の外部パッケージリポジトリとして NodeSource を設定してある。
/etc/apt/sources.list.d 以下のファイル等を確認する。

$ cat /etc/apt/sources.list.d/*
deb https://deb.nodesource.com/node_14.x focal main
deb-src https://deb.nodesource.com/node_14.x focal main
$ dpkg -l | grep nodejs
ii  nodejs    14.15.3-deb-1nodesource1    amd64    Node.js event-based server-side javascript engine

アップグレード前のパッケージを更新

パッケージ構成を綺麗にしておく。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
$ sudo apt autoremove
$ sudo reboot

update-manager の準備

update-manager-core パッケージをインストールする。

$ sudo apt install update-manager-core

/etc/update-manager/release-upgrades ファイルにて Prompt=normal を指定する。

$ cat /etc/update-manager/release-upgrades
# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting and upgrade behavior, valid options:
#
#  never  - Never check for, or allow upgrading to, a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the supported release that immediately succeeds the
#           currently-running release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that if this option is used and
#           the currently-running release is not itself an LTS release the
#           upgrader will assume prompt was meant to be normal.
Prompt=normal

アップグレードできるバージョンが存在するか確認

$ sudo do-release-upgrade -c
Checking for a new Ubuntu release
New release '20.10' available.
Run 'do-release-upgrade' to upgrade to it.

アップグレードを実施

今回は外部から ssh で接続した状態でアップグレードを実施するため、必要に応じてファイアウォールの 1022 ポートを開けておく。

$ sudo iptables -I INPUT -p tcp --dport 1022 -j ACCEPT
$ sudo iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:1022
(以下略)

アップグレードを実施。

$ sudo do-release-upgrade
Checking for a new Ubuntu release
(中略)
パッケージマネージャーをチェック中です

SSH経由で実行していますが、続けますか?


このセッションはSSH上で実行されているようです。アップグレードをSSH越しに行うことは推奨されません。アップグレードに失敗した時の復元が困難になるからです。

続行する場合、追加のSSHデーモンをポート '1022' で起動します。
本当に作業を進めてよろしいですか?

続行する[yN] y
予備のsshdを開始します

障害が起こったときに復旧しやすくするため、ポート '1022' でもう一つの sshd
を開始します。現在実行中のsshにおかしなことが起きても、もう一方のポートに接続することができます。

ファイアウォールを実行している場合、このポートを一時的に開く必要があります。この操作は、潜在的な危険があるため自動的には行われません。以下の例のようにしてポートを開けます:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT' 

続けるには [ENTER] キーを押してください
リポジトリ情報のアップデート

サードパーティが提供するリポジトリを使わない設定にしました

sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、'ソフトウェアソース'
ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。

続けるには [ENTER] キーを押してください
アップグレードを開始しますか?


3 個のインストール済みパッケージは Canonical
によってサポートされなくなりました。ただしコミュニティからのサポートは受けることができます。

2 個のパッケージが削除されます。 97 個の新規パッケージがインストールされます。 503 個のパッケージがアップグレードされます。

合計 814 M をダウンロードする必要があります。 このダウンロードは 1Mbit DSL 接続で約 1 時間 43 分 、56k
モデムで約 1 日 7 時間 かかります。 

アップグレードの取得とインストールには数時間かかることがあります。ダウンロードが完了してしまうと、処理はキャンセルできません。

 続行する[yN]  詳細 [d]
システムのアップグレードが完了しました。

再起動が必要です

アップグレードを完了するには再起動が必要です。
'Y' を選択すると再起動します。

続行する[yN] y

アップグレード後のバージョンを確認

ssh で再接続しバージョンを確認。
20.10 groovy になっていることを確認。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.10
Release:	20.10
Codename:	groovy

アップグレード後のパッケージリポジトリを確認

sources.list にて groovy が指定されていることを確認。

$ grep ^deb /etc/apt/sources.list
deb http://jp.archive.ubuntu.com/ubuntu groovy main restricted
deb http://jp.archive.ubuntu.com/ubuntu groovy-updates main restricted
deb http://jp.archive.ubuntu.com/ubuntu groovy universe
deb http://jp.archive.ubuntu.com/ubuntu groovy-updates universe
deb http://jp.archive.ubuntu.com/ubuntu groovy multiverse
deb http://jp.archive.ubuntu.com/ubuntu groovy-updates multiverse
deb http://jp.archive.ubuntu.com/ubuntu groovy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu groovy-security main restricted
deb http://security.ubuntu.com/ubuntu groovy-security universe
deb http://security.ubuntu.com/ubuntu groovy-security multiverse

アップグレード後の外部パッケージリポジトリを設定

/etc/apt/sources.list.d 以下のファイルを確認する。
ファイルが増えていたり、中身がコメントアウトされていたりする。

$ ls -1 /etc/apt/sources.list.d
nodesource.list
nodesource.list.distUpgrade
$ cat /etc/apt/sources.list.d/nodesource.list
# deb https://deb.nodesource.com/node_14.x groovy main # groovyへのアップグレード時に無効化されました
# deb-src https://deb.nodesource.com/node_14.x groovy main # groovyへのアップグレード時に無効化されました
$ cat /etc/apt/sources.list.d/nodesource.list.distUpgrade
deb https://deb.nodesource.com/node_14.x focal main
deb-src https://deb.nodesource.com/node_14.x focal main

/etc/apt/sources.list.d 以下のファイルを Ubuntu 20.10 (Groovy Gorilla) 用に書き換えて整理する。

$ cat /etc/apt/sources.list.d/*
deb https://deb.nodesource.com/node_14.x groovy main
deb-src https://deb.nodesource.com/node_14.x groovy main

外部パッケージリポジトリに接続できているか確認する。

$ sudo apt update
ヒット:1 http://jp.archive.ubuntu.com/ubuntu groovy InRelease
取得:2 http://jp.archive.ubuntu.com/ubuntu groovy-updates InRelease [110 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu groovy-backports InRelease [101 kB]
取得:4 http://security.ubuntu.com/ubuntu groovy-security InRelease [110 kB]
取得:5 https://deb.nodesource.com/node_14.x groovy InRelease [4,584 B]
取得:6 https://deb.nodesource.com/node_14.x groovy/main amd64 Packages [768 B]
327 kB を 2秒 で取得しました (164 kB/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています       
状態情報を読み取っています... 完了
パッケージはすべて最新です。

必要に応じてパッケージを更新する。

$ sudo apt upgrade

参考資料

2
4
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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?