1

我刚刚配置了一个预置文件以包含一个本地存储库。

# Debian mirrors
d-i apt-setup/local0/comment string local mirror
d-i apt-setup/local0/repository string http://<repo_url>
d-i apt-setup/local0/key string http://<repo_key>

我在这里面临的主要问题是 repo 没有添加到 sources.list,因为 Releases 文件几天前就过期了,所以我无法获取我需要的一些包。

我知道有这个选项可以添加到 apt.conf 文件中:

Acquire::Check-Valid-Until "false"

这将忽略 Releases 文件在一段时间前过期的事实。但是,我真的需要一种在预置文件中包含相同选项的方法。为此,我一直在寻找可能的解决方案:

  1. 有一位德国开发人员似乎也遭受了同样的痛苦(https://lists.debian.org/debian-user-german/2012/04/msg00382.html)。基本上,建议他尝试添加:

    d-i apt-setup/check_valid_until boolean false
    

    但我尝试过这个选项,但没有成功。

  2. 我考虑在 late_command 阶段包含一些东西来相应地更新 sources.list (即执行

    in-target echo <my_mirror_information> >> /etc/apt/sources.list.d/custom.list
    in-target apt-get -o Acquire::Check-Valid-Until="false" update
    in-target apt-get upgrade
    

但是,我确实认为这不是解决问题的正确方法,因为准备了一个 apt-setup 部分来处理这些问题。

我可以在 preseed 中使用任何其他解决方案吗?

非常感谢!

4

3 回答 3

2

这有效:

d-i partman/early_command string echo "echo 'Acquire::Check-Valid-Until \"false\";' > /target/etc/apt/apt.conf.d/02IgnoreValidUntil" > /usr/lib/apt-setup/generators/02IgnoreValidUntil ; chmod +x /usr/lib/apt-setup/generators/02IgnoreValidUntil
于 2018-07-18T08:18:19.393 回答
1

遇到同样的问题并且没有找到解决方案,我最终使用 preseed 让它工作:

d-i partman/early_command string echo "echo 'Acquire::Check-Valid-Until \"false\";' > /target/etc/apt/apt.conf.d/02IgnoreValidUntil" > /usr/lib/apt-setup/generators/02IgnoreValidUntil ; chmod +x /target/etc/apt/apt.conf.d/02IgnoreValidUntil

这是给 Debian/Jessie 的

于 2015-02-26T14:24:24.173 回答
0

di 预置/运行字符串 script.sh

在“script.sh”中:

fix_apt_repo_expire()
{
local APT_DIR="/target/etc/apt/apt.conf.d"
while [ ! -d "$APT_DIR" ]; do sleep 1; done
echo 'Acquire::Check-Valid-Until "false";' > "$APT_DIR"/90ignore-repo-expiry
}

fix_apt_repo_expire &
于 2019-03-28T14:15:04.287 回答