如何通过 preseed/early_command 安装 squid-deb-proxy-client

如何通过 preseed/early_command 安装 squid-deb-proxy-client

使用 Lucid,从 Lucid mini.iso 安装。均为 AMD64。

下面我尝试了 \、apt-get、apt-install、anna-install、dpkg 全部命令:

d-i preseed/early_command string <cmd+opt> squid-deb-proxy-client

我也尝试过:

d-i preseed/early_command string /usr/bin/wget \
    -O squid-deb-proxy-client_0.3.1_all.deb \
    http://ubuntu.media.mit.edu/ubuntu//pool/universe/s/squid-deb-proxy/squid-deb-proxy-client_0.3.1_all.deb && dpkg -i squid-deb-proxy-client_0.3.1_all.deb

这可能吗?如果可能,最早什么时候可以安装使用 squid-deb-proxy 服务器?

答案1

要强制安装程序使用代理服务器,请使用以下选项正确配置它d-i mirror/http/proxy,例如:

d-i mirror/http/proxy string http://ip-or-hostname-of-proxy:8000/

您实际上并不需要该squid-deb-proxy-client软件包来使用 Squid 代理。该软件包的唯一用途-client是它可以自动发现网络中的代理服务器。

答案2

当 early_command 运行时,我认为您甚至还没有/target格式化/挂载。例如,preseed/early_command可用于在安装程序环境中安装 udebs(但请注意,不是标准 debs):

# This first command is run as early as possible, just after
# preseeding is read.
#d-i preseed/early_command string anna-install some-udeb

您可以在 late_command 中运行它,然后您就可以在目标系统中实际安装东西了:

d-i preseed/late_command string \
in-target apt-get install -y --force-yes openssh-server; \
true

我认为让您的系统从代理获取软件包的最佳方法是 Pete Ashdown 建议的。

答案3

由于错误 #,目前无法实现1183326但是,如果有一天它被修复了,那么应该可以:

d-i anna/choose_modules string squid-deb-proxy-client-udeb

在您的预置文件中,镜像/http/代理由于错误,该技巧仅在有限的场景下有效 #642159

答案4

您可以使用安装后 bash 脚本来安装包,下面是 preseed/late_command:

d-i preseed/late_command string \
    cp /cdrom/post_install.sh /target/root/; \
    chroot /target chmod +x /root/post_install.sh; \
    chroot /target bash /root/post_install.sh

安装后:

#!/bin/sh

apt-get install -y --force-yes \
    git \
    python-pip \
    ansible

相关内容