今天,我使用do-release-upgrade进行了一次从信任升级到异种的LTS升级。它顺利通过了。但是升级之后,我不确定我的系统现在是哪个版本。
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,这是仿生包存档中的最新包版本。
而且,当我运行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包中的内容相同,所以我真的不明白为什么在替换它之前会有人问我。无论如何,我认为我可能已经采取了默认的操作,导致实际安装的版本和文件的内容不匹配。
将文件替换为来自异类包的文件,使我能够成功地用do-release-upgrade更新为仿生文件。这一次,我选择在升级时更新lsb-release。在再次升级之前,手动处理该文件的内容似乎没有任何不良影响。
发布于 2018-12-07 19:02:48
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"https://askubuntu.com/questions/1099247
复制相似问题