版本升级后出现错误的 lsb-release

版本升级后出现错误的 lsb-release

今天我使用 将 LTS 从 trusty 升级到 xenial do-release-upgrade。升级过程没有出现错误。但升级后,我不确定我的系统现在处于哪个版本。

do-release-upgrade工具表示它将升级到 xenial,而我的sources.list现在指向 xenial 软件包档案。apt声称所有软件包都已完全升级(正在执行updateupgradedist-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是版本中最新的软件包版本仿生的包档案。

另外,当我运行时,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更新前的 trusty 包中的内容相同,所以我不太明白为什么在替换它之前会询问我。无论如何,我想我可能采取了默认操作,导致实际安装的版本与文件内容不匹配。

使用 xenial 软件包中的文件替换该文件后,我便能够使用 成功更新到 bionic do-release-upgrade。这次我选择在lsb-release升级时更新。再次升级之前手动修改该文件的内容似乎没有任何不利影响。

答案1

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"

相关内容