当Chromebook升级到Debian 11失败时的解决方法

使用Chromebook非常方便。

你好。我购买Chromebook已经有5年了。起初,我用的是一台适合Chromebook特性的低配Web浏览2合1电脑,但是它太舒适了,所以我在3年前将主要的开发机也换成了Chromebook。

尽管一直以来我使用没有任何问题,但几个月前开始出现了一些令我担忧的现象,因此我会将其记录下来。

环境

    • HP Elite c1030 13.5 Chromebook

 

    • ChromeOS 103.0.5060.64

 

    Debian 10

无法升级至Debian 11。

当我正在升级ChromeOS时,我收到了一条通知:”您还可以升级Linux环境(Debian10)”。我试图按照提示进行升级,但由于错误而无法执行。

开始时,我以为这是ChromeOS的一个bug,所以等待着更新,但是即使有几次更新,问题仍然没有解决,因此我开始进行调查。

查看日志,发生的错误如下所示。

W: GPG error: [package uri] [package name] InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY [key name]
E: The repository '[package uri] [package name] InRelease' is not signed.

在[package uri]、[package name]和[key name]中,出现了不同的包的错误。

对我来说,总共有4个包发生了这些错误。

GPG错误 (GPG wù)

当我做了些研究后发现,GPG错误是GNU Privacy Guard的缩写,它是基于GPL的一种加密软件,是Pretty Good Privacy (PGP) 的另一种实现。

 

尝试使用–refresh-keys进行批量更新。

根据下面的YouTube视频,尝试更新公钥来解决相同的症状。

$ sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com

 

分别指定键进行更新

很遗憾,上述方法并没有成功,特别是症状没有进展。接下来,我尝试了使用错误信息中指定的关键字来逐个指定更新的方法。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [key name]

这个方法已经成功,并且成功更新了公钥。

git-man的更新错误

解决了上述问题后,立即尝试再次更新Debian,这次出现了另一个错误。

The following packages were automatically installed and are no longer required:
  git-man liberror-perl
Use 'apt autoremove' to remove them.
The following packages will be upgraded:
  git-man
debconf: delaying package configuration, since apt-utils is not installed
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/1949 kB of archives.
After this operation, 338 kB of additional disk space will be used.
dpkg-deb: error: archive '/var/cache/apt/archives/git-man_1%3a2.37.0-0ppa1~ubuntu22.04.1_all.deb' uses unknown compression for member 'control.tar.zst', giving up
dpkg: error processing archive /var/cache/apt/archives/git-man_1%3a2.37.0-0ppa1~ubuntu22.04.1_all.deb (--unpack):
 dpkg-deb --control subprocess returned error exit status 2
Errors were encountered while processing:
 /var/cache/apt/archives/git-man_1%3a2.37.0-0ppa1~ubuntu22.04.1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

仔细阅读错误之前的日志,可以发现以下内容:已自动安装的以下软件包不再需要。尽管这些模块已不再需要,但进行更新时却出现错误。按照提示执行命令以进行删除。

$ sudo apt autoremove

顺利升级完成。

在执行上述步骤后,再次执行Debian的升级操作。顺利地完成,没有任何错误。

补充:Git已经消失了。

似乎是通过上述命令不小心删除了Git。

$ sudo apt install git

执行上述操作会引发以下错误。

The following packages have unmet dependencies:
 git : Depends: libc6 (>= 2.34) but 2.31-13+deb11u3 is to be installed
E: Unable to correct problems, you have held broken packages.

似乎libc6库的版本已经发生了变化。
在调查过程中,发现使用apt命令可以获取到最新的Ubuntu版本2.37作为候选版本,因此libc6也需要更新到较新的版本。

$ apt-cache policy git
git:
  Installed: (none)
  Candidate: 1:2.37.0-0ppa1~ubuntu22.04.1
  Version table:
     1:2.37.0-0ppa1~ubuntu22.04.1 500
        500 http://ppa.launchpad.net/git-core/ppa/ubuntu jammy/main amd64 Packages
     1:2.30.2-1 500
        500 https://deb.debian.org/debian bullseye/main amd64 Packages
     1:2.20.1-2+deb10u3 -1
        100 /var/lib/dpkg/status

尝试安装适用于Debian的2.30版本时,发现没有git-man。确实,刚才您提到过这个问题。听说Ubuntu版本有git-man。明明按照谷歌先生的指示进行了更新,为什么会这样呢…

$ sudo apt install git=1:2.30.2-1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 git : Depends: git-man (< 1:2.30.2-.) but 1:2.37.0-0ppa1~ubuntu22.04.1 is to be installed
E: Unable to correct problems, you have held broken packages.

我也将安装适用于Debian的Git手册。

$ apt-cache policy git-man
git-man:
  Installed: (none)
  Candidate: 1:2.37.0-0ppa1~ubuntu22.04.1
  Version table:
     1:2.37.0-0ppa1~ubuntu22.04.1 500
        500 http://ppa.launchpad.net/git-core/ppa/ubuntu jammy/main amd64 Packages
     1:2.30.2-1 500
        500 https://deb.debian.org/debian bullseye/main amd64 Packages

$ sudo apt install git-man=1:2.30.2-1

现在可以安装git了。

$ sudo apt install git

一切无事,问题已解决。

广告
将在 10 秒后关闭
bannerAds