从命令行还原sources.list中的默认apt存储库


18

我正在寻找/etc/apt/sources.list从命令行还原为默认值的最佳方法。

没有办法引用生成该文件或类似文件的软件包的源代码吗?我想要一种可靠且与版本无关的还原此文件的方式。

解决方案被排除

在将其标记为重复之前,请注意,我已经审查了这个问题。仅当您具有可用的Ubuntu GUI时才适用。此问题特定于命令行。

我还回顾了这个问题,其中可接受的解决方案是有人粘贴了sources.list文件内容。这不是还原文件的适当方法,因为无法验证提供文件内容的人员的意图,并且文件可能会随着新版本的发布而更改。

在simplelinux.ch处签出了生成器,但这也不是来自Ubuntu,所以我不打算使用它。

Answers:


20

我不确定您要什么,但是:

  • 父存储库始终http://archive.ubuntu.com/ubuntu-其他所有内容都反映了这一点。其他主镜像都具有格式的域<cctld>.archive.ubuntu.com,其中两个字符的短代码是“ 国家/地区代码顶级域”。您可以在Launchpad中找到其他镜像及其状态。
  • 分发代号是通道的一部分(第三项)。您可以使用lsb_release -sc它找出来,并且它是发行版漂亮名称的首字母(用小写字母表示)(trusty例如,对于Trusty Tahr)。
  • 有5个通道<codename><codename>-security<codename>-updates<codename>-backports<codename>-proposed。第一个是必需的,因为它是基础,强烈建议第二个,因为它包含安全修复程序,第四个仅在您需要从较新版本向后移植某些软件包的情况下,第五个仅在开发人员要求您启用它以测试可能的版本时固定。
  • 有四个库部分:mainmultiverseuniverserestricted什么是多元宇宙,宇宙,限制,主要的区别?

因此,您始终可以创建一个sources.list仅包含以下内容的保险箱:

deb http://archive.ubuntu.com/ubuntu <codename> main multiverse universe restricted
deb http://archive.ubuntu.com/ubuntu <codename>-security main multiverse universe restricted

如果要使用命令执行此操作:

printf 'deb http://archive.ubuntu.com/ubuntu %s main multiverse universe restricted\n' $(lsb_release -sc){,-security} > /etc/apt/sources.list

除了启动板列表之外,软件来源程序提供的列表也来自/usr/share/python-apt/templates/Ubuntu.mirrors,来自python-apt-common软件包。该软件包只是的间接建议依赖项apt,因此默认情况下可能未将其安装在服务器上。


这正是我想要澄清的内容。谢谢!
瑞安·伯内特

这完美地回答了两个帖子(一个链接到另一个)
Brian Thomas

但是您仍然必须使用Ubuntu网站本身的文档来验证此答案,因为您无法验证提供此答案的人员的意图?
Herbert Van-Vliet

7

如果您了解每行代表什么/etc/apt/sources.list,则可以生成自己的列表。例如我的一行sources.list

deb http://archive.ubuntu.com/ubuntu/ trusty main

它分为四个部分:

  • 第1节:第一部分在deb这里,这意味着它是所有二进制包的存储库。只有其他可能的值deb-src意味着它是源代码的存储库。
  • 第2节:本节包含存储库的URI(在本例中为http://us.archive.ubuntu.com/ubuntu/)。镜像的URI可能有所不同,例如,如果您要使用美国官方镜像,则URI为http://us.archive.ubuntu.com/ubuntu/
  • 第3节:它包含您正在使用的发行版的代号(和通道名称),在本例中trusty,这是我的Ubuntu发行版(14.04 LTS)的代号。您可以通过找到您的lsb_release -sc。例如,如果您使用的是12.04,则代号将为“ precise”。现在声明其他通道,例如声明需要使用的安全通道trusty-security

  • 第4节:此部分包含存储库的“部分名称”。通常有使用4个名称:mainrestricteduniversemultiverse。您可以将所有节的名称放在声明存储库的同一行中,也可以对每个节使用不同的行,但不得有任何重复的条目。如果您阅读了/etc/apt/sources.list,那么您将看到这些部分中每个部分包含的软件包说明。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.