今日は、do-release-upgrade
を使用してLTSをtrustyからxenialにアップグレードしました。エラーなしで通過しました。しかし、アップグレード後、システムの現在のバージョンがわかりません。
do-release-upgrade
ツールはxenialにアップグレードすると言っていましたが、私のsources.list
はxenialパッケージアーカイブを指すようになりました。 apt
は、すべてのパッケージが完全にアップグレードされたと主張します(update
、upgrade
およびdist-upgrade
を実行)。しかし、lsb_release -a
を実行すると、まだこれを取得しています
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
そして、base-files
(私の理解では/etc/lsb-release
ファイルを含む)のバージョンをdpkg --list
でチェックすると、バージョン10.1
が取得されます。これは、 bionicパッケージアーカイブ。
また、do-release-upgrade -c
を実行すると、xenialへのアップグレードが試行されます。
私はかなり混乱していると言わなければなりません。誰が何が起こっているのか考えていますか?
ここで何が起こったか知っていると思います。更新中、base-files
のインストールプロセスでは、/etc/lsb-release
ファイルが最後のインストール以降に編集された場合、それを更新するかどうかのユーザー確認を求められます。
Configuration file '/etc/lsb-release'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a Shell to examine the situation
The default action is to keep your current version.
ファイルは、更新前の信頼できるbase-file
パッケージと同じ内容のように見えたので、置換する前になぜ尋ねられたのか本当にわかりません。とにかく、実際にインストールされたリリースとファイルの内容が一致しないデフォルトのアクションを実行した可能性があると思います。
ファイルをxenialパッケージのファイルに置き換えると、do-release-upgrade
でbionicに正常に更新できました。今回は、アップグレード中にlsb-release
を更新することを選択しました。再度アップグレードする前にそのファイルの内容を手動で操作しても、悪影響はありませんでした。
lsb_release
はPythonスクリプトであり、単にファイル/etc/lsb-release
から読み取り、画面に出力をダンプします。以下を使用してファイルを編集できます。
Sudo -H gedit /etc/lsb-release
次に、プラットフォームに合わせて内容を変更します。私のものが含まれています:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"