如果出现连接问题,apt update 的回退机制如何工作?

如果出现连接问题,apt update 的回退机制如何工作?

今天安装更新时,我注意到了这一点:

Get:15 http://in.archive.ubuntu.com/ubuntu/ trusty-updates/main libdns100 i386 1:9.9.5.dfsg-3ubuntu0.2 [626 kB]
Err http://in.archive.ubuntu.com/ubuntu/ trusty-updates/main libdns100 i386 1:9.9.5.dfsg-3ubuntu0.2
  Connection failed [IP: 91.189.92.200 80]
Get:16 http://security.ubuntu.com/ubuntu/ trusty-security/main libdns100 i386 1:9.9.5.dfsg-3ubuntu0.2 [626 kB]

从我的常规更新镜像下载软件包时出现了一些连接问题http://in.archive.ubuntu.com/ubuntu/更新程序选择http://security.ubuntu.com/ubuntu/作为回退以下载相同的软件包,此后更新成功。这是我第一次在下载更新时注意到这种回退机制。

/etc/apt/sources.list但是,我的文件内容如下:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to

# newer versions of the distribution.
deb http://in.archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ trusty main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://in.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ trusty-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://in.archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://in.archive.ubuntu.com/ubuntu/ trusty universe
deb http://in.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://in.archive.ubuntu.com/ubuntu/ trusty-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://in.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://in.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ trusty-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://in.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu trusty-security main restricted
deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe
deb http://security.ubuntu.com/ubuntu trusty-security multiverse
deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu trusty partner
# deb-src http://archive.canonical.com/ubuntu trusty partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu trusty main
deb-src http://extras.ubuntu.com/ubuntu trusty main

可以看到,只trusty-security为 security.ubuntu.com 启用了存储库。但是,出现问题的软件包来自trusty-updates。那么,这种回退机制是如何工作的?此外,触发此机制的场景有哪些?

答案1

如果多个存储库提供完全相同版本的包,则apt使用最先出现的存储库sources.list作为首选,其他存储库作为后备。

如果使用apt-cache policy,您将获得以下形式的结果:

$ apt-cache policy libdns100
libdns100:
  Installed: 1:9.9.5.dfsg-3ubuntu0.1
  Candidate: 1:9.9.5.dfsg-3ubuntu0.1
  Version table:
 *** 1:9.9.5.dfsg-3ubuntu0.1 0
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
        500 http://in.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     1:9.9.5.dfsg-3 0
        500 http://in.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

如您所见,两个存储库提供了完全相同版本的软件包 - 尽管它们位于不同的渠道,但它们提供相同的软件包和版本。

man apt_preferences

   Several instances of the same version of a package may be available
   when the sources.list(5) file contains references to more than one
   source. In this case apt-get downloads the instance listed earliest in
   the sources.list(5) file. The APT preferences do not affect the choice
   of instance, only the choice of version.

相关内容