/etc/apt/sources.list
我正在寻找从命令行恢复默认值的最佳方法。
有没有办法引用生成此文件的包的源代码或类似的东西?我想要一种可信赖且与版本无关的方法来恢复此文件。
解决方案被排除
在你将其标记为重复之前,请注意我已经审查过这个问题已经。仅当您有 Ubuntu GUI 可用时才适用。这个问题特定于命令行。
我也评论过这个问题可接受的解决方案是有人粘贴了其文件的内容sources.list
。这不是恢复文件的合适方法,因为无法验证提供文件内容的人的意图,并且文件可能会随着新版本的发布而发生变化。
我查看了simplelinux.ch 上的生成器,但这也不是来自 Ubuntu,所以我不打算使用它。
答案1
我不确定你想要什么,但是:
- 父存储库是总是 http://archive.ubuntu.com/ubuntu- 其他所有镜像都是此镜像。其他主镜像都具有以下形式的域
<cctld>.archive.ubuntu.com
,其中两个字符的短代码是国家代码顶级域名。您可以在以下位置找到其他镜像及其状态发射台。amd64
如果你使用的是除(eeg、、、arm64
等armhf
)以外的架构ppc64el
,那么父存储库是http://ports.ubuntu.com/ubuntu-ports.在随后的所有内容中使用ports.ubuntu.com/ubuntu-ports
代替。archive.ubuntu.com/ubuntu
- 发行代号是渠道(第三术语)的一部分。您可以使用
lsb_release -sc
找出答案,它是版本名称的第一个单词,用小写字母表示(trusty
例如,Trusty Tahr)。 - 共有五个频道:
<codename>
、<codename>-security
、<codename>-updates
和。第一个频道是必需的<codename>-backports
,<codename>-proposed
因为它是基础;第二个频道是强烈推荐的,因为它包含安全修复程序;第四个频道仅在您需要从较新版本反向移植某些软件包时使用;第五个频道仅在开发人员要求您启用它以测试可能的修复程序时使用。 - 存储库有四个部分:
main
、、multiverse
和universe
(restricted
多元宇宙、受限宇宙和主宇宙之间有什么区别?)
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
或者,lsb_release
不可用,请/etc/os-release
从base-files
包中使用:
printf 'deb http://archive.ubuntu.com/ubuntu %s main multiverse universe restricted\n' "$(. /etc/os-release; printf "%s" "$UBUNTU_CODENAME")"{,-security} > /etc/apt/sources.list
除了 Launchpad 列表之外,软件源程序提供的列表来自/usr/share/python-apt/templates/Ubuntu.mirrors
,它来自python-apt-common
包。此包只是间接建议依赖apt
,因此它可能不会默认安装在服务器上。
答案2
如果你理解了 中每行代表什么/etc/apt/sources.list
,你可以生成自己的列表。例如,我的 中有一行sources.list
是,
deb http://archive.ubuntu.com/ubuntu/ trusty main
它有 4 个部分:
- 第 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,则代号将为“精确”。现在要声明其他频道,例如声明您需要使用的安全频道trusty-security
。第 4 节:此节包含存储库的“节名称”。通常使用 4 个节名称:
main
、、、。您可以将所有节名称放在声明存储库的同一行中restricted
,也可以为每个节使用不同的行,但不得有任何重复的条目。如果您阅读,那么您将看到每个节包含的软件包的描述。universe
multiverse
/etc/apt/sources.list