apt install -t 如何区分一个源和另一个源?

apt install -t 如何区分一个源和另一个源?

我阅读了有关如何apt从特定来源安装的答案。https://askubuntu.com/questions/27362/how-to-only-install-updates-from-a-specific-repository/57749#57749

但我对这个例子感到困惑。

来源是: deb http://mozilla.debian.net/ squeeze-backports iceweasel-release

命令是:apt-get install -t squeeze-backports iceweasel

所以这就是deb http://xxx.xxx.xx/唯一定义源之后的内容。

然后我检查了我的来源列表。我发现了重复的路径,想知道如何apt区分一个路径和另一个路径?

Hit:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
Hit:2 http://mirrors.aliyun.com/ubuntu bionic-security InRelease                                                       
Hit:3 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease                                                                                     
Hit:4 http://mirrors.aliyun.com/ubuntu bionic-proposed InRelease                                                                                    
Hit:5 http://mirrors.aliyun.com/ubuntu bionic-backports InRelease                                                                                   
Ign:6 http://dl.google.com/linux/chrome/deb stable InRelease                                                                                             
Hit:7 http://packages.microsoft.com/repos/vscode stable InRelease                                                                                        
Hit:8 http://dl.google.com/linux/chrome/deb stable Release                                                                                               
Ign:10 https://dl.bintray.com/rabbitmq-erlang/debian {distribution} InRelease                                                                            
Err:11 https://dl.bintray.com/rabbitmq-erlang/debian {distribution} Release                                                                              
  404  Not Found [IP: 52.41.180.114 443]
Hit:12 http://ppa.launchpad.net/certbot/certbot/ubuntu bionic InRelease                                                                                  
Hit:13 http://linux.teamviewer.com/deb stable InRelease                                                                                                  
Hit:14 https://www.charlesproxy.com/packages/apt charles-proxy InRelease                                                                                 
Hit:15 http://ppa.launchpad.net/fontforge/fontforge/ubuntu bionic InRelease                                                                              
Hit:16 https://download.sublimetext.com apt/stable/ InRelease                                                              
Hit:18 http://ppa.launchpad.net/nathan-renniewaldock/flux/ubuntu bionic InRelease                                          
Hit:17 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu bionic InRelease

例如:

 Hit:17 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu bionic InRelease
 Hit:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
 Hit:12 http://ppa.launchpad.net/certbot/certbot/ubuntu bionic InRelease  
 Hit:1 http://mirrors.aliyun.com/ubuntu bionic InRelease

所有 4 个源链接都有ubuntu bionic InRelease.

如果简单提供的话,如何apt知道我想从哪个特定源安装

apt install something_all_these_4_source_has -t ubuntu bionic InRelease,没有完整的网址?

(假设所有 4 个来源都有我要安装的应用程序,但版本不同)

答案1

所以这就是deb http://xxx.xxx.xx/唯一定义源之后的内容。

不,源是由其Release文件和其中的条目(特别是Codename条目)定义的;参见例如拉伸向后移植Release文件

当您指定该-t选项时,它将覆盖apt的“默认版本”,这是最高优先级的版本。可能的值是基于配置的存储库的可访问版本。 “ubuntu bionic InRelease”不是有效目标。

如果同名的多个存储库具有给定包的不同版本,apt则基于优先级的解析将确定使用哪个版本;看APT 固定依赖关系解析(这可以让你区分包起源,IE包含它们的存储库)。默认情况下,最高版本获胜。您可以通过指定特定的版本(而不是存储库或目标版本)与=: apt install package=version

所有这一切背后都有一个基本假设:给定版本的包的所有可用副本在所有宣传它的存储库中都是相同的。

相关内容