无法从存储库下载 deb 包

无法从存储库下载 deb 包

我正在为依赖于 Node.js 的软件编写离线安装程序。为了能够安装 Node.js,我尝试以以下方式从远程存储库递归下载包含所有依赖项的 deb 包:

$ mkdir nodejs
$ cd nodejs
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
$ apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends nodejs=14.17.0-deb-1nodesource1 | grep "^\w" | sort -u)

不幸的是,这个失败了,出现以下错误消息:

E: Can't find a source to download version '2.31-0ubuntu9.3' of 'libc6:amd64'
E: Can't find a source to download version '2.31-0ubuntu9.3' of 'libc6:i386'

我尝试通过下载特定的 deb 包来缩小问题范围,但仍然没有成功:

$ apt download libc6
E: Can't find a source to download version '2.31-0ubuntu9.3' of 'libc6:amd64'

libc6已经安装的最有趣的东西:

$ sudo apt install libc6
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libc6 is already the newest version (2.31-0ubuntu9.3).
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.

如果我指定了包的精确版本,那么一切都会顺利进行:

$ apt-cache madison libc6
     libc6 | 2.31-0ubuntu9.2 | http://ru.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
     libc6 | 2.31-0ubuntu9 | http://ru.archive.ubuntu.com/ubuntu focal/main amd64 Packages
$ apt download libc6=2.31-0ubuntu9.2

我不明白为什么它不指定版本就不起作用。我原以为它会默认选择一个,就像所有其他软件包一样。

我还尝试在两个装有 Ubuntu 20.04.2 LTS 和 Kubuntu 20.04.2 LTS 的新虚拟机上按步骤下载 Node.js,一切正常。我的本地开发机器上有 Kubuntu 20.04.02 LTS。里面有什么问题吗?我还能检查什么来找出问题所在?apt-cache madison libc6在所有这些虚拟机上都显示相同的结果。

更新

以下是apt-cache policy libc6 libc6:i386请求的输出@N0rbert

  • 在本地机器上:

    libc6:
      Installed: 2.31-0ubuntu9.3
      Candidate: 2.31-0ubuntu9.3
      Version table:
     *** 2.31-0ubuntu9.3 100
            100 /var/lib/dpkg/status
         2.31-0ubuntu9.2 500
            500 http://ru.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
         2.31-0ubuntu9 500
            500 http://ru.archive.ubuntu.com/ubuntu focal/main amd64 Packages
    libc6:i386:
      Installed: 2.31-0ubuntu9.3
      Candidate: 2.31-0ubuntu9.3
      Version table:
     *** 2.31-0ubuntu9.3 100
            100 /var/lib/dpkg/status
         2.31-0ubuntu9.2 500
            500 http://ru.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages
         2.31-0ubuntu9 500
            500 http://ru.archive.ubuntu.com/ubuntu focal/main i386 Packages
    
  • 在虚拟机上:

      Installed: 2.31-0ubuntu9.2
      Candidate: 2.31-0ubuntu9.2
      Version table:
     *** 2.31-0ubuntu9.2 500
            500 http://ru.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
            100 /var/lib/dpkg/status
         2.31-0ubuntu9 500
            500 http://ru.archive.ubuntu.com/ubuntu focal/main amd64 Packages
    libc6:i386:
      Installed: (none)
      Candidate: 2.31-0ubuntu9.2
      Version table:
         2.31-0ubuntu9.2 500
            500 http://ru.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages
         2.31-0ubuntu9 500
            500 http://ru.archive.ubuntu.com/ubuntu focal/main i386 Packages
    

答案1

由于某种原因,您在本地安装了更高版本的 libc6。
您必须将它们降级为官方版本

sudo apt-get install --reinstall libc6=2.31-0ubuntu9.2 libc6:i386=2.31-0ubuntu9.2

相关内容