web-dev-qa-db-ja.com

リリースアップグレード後の誤ったlsb-release

今日は、do-release-upgradeを使用してLTSをtrustyからxenialにアップグレードしました。エラーなしで通過しました。しかし、アップグレード後、システムの現在のバージョンがわかりません。

do-release-upgradeツールはxenialにアップグレードすると言っていましたが、私のsources.listはxenialパッケージアーカイブを指すようになりました。 aptは、すべてのパッケージが完全にアップグレードされたと主張します(updateupgradeおよび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を更新することを選択しました。再度アップグレードする前にそのファイルの内容を手動で操作しても、悪影響はありませんでした。

1
heilerich

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"
0