set DPkg::Chroot-Directory in APT_CONFIG so that hooks calling apt from outside do not have to manually add it with -o
This commit is contained in:
parent
81d155cac8
commit
a2a619f911
3 changed files with 8 additions and 4 deletions
|
@ -10,6 +10,7 @@ TARGET="$1"
|
|||
|
||||
if [ "${MMDEBSTRAP_MODE:-}" = "chrootless" ]; then
|
||||
APT_CONFIG=$MMDEBSTRAP_APT_CONFIG apt-get --yes install \
|
||||
-oDPkg::Chroot-Directory= \
|
||||
-oDPkg::Options::=--force-not-root \
|
||||
-oDPkg::Options::=--force-script-chrootless \
|
||||
-oDPkg::Options::=--root="$TARGET" \
|
||||
|
@ -20,7 +21,7 @@ if [ "${MMDEBSTRAP_MODE:-}" = "chrootless" ]; then
|
|||
dpkg-query --showformat '${Source}\n' --show usr-is-merged | grep -q '^usrmerge$'
|
||||
dpkg --compare-versions "1" "lt" "$(dpkg-query --showformat '${Version}\n' --show usr-is-merged)"
|
||||
else
|
||||
APT_CONFIG=$MMDEBSTRAP_APT_CONFIG apt-get --yes install -oDPkg::Chroot-Directory="$TARGET" usr-is-merged
|
||||
APT_CONFIG=$MMDEBSTRAP_APT_CONFIG apt-get --yes install usr-is-merged
|
||||
chroot "$TARGET" dpkg-query --showformat '${db:Status-Status}\n' --show usr-is-merged | grep -q '^installed$'
|
||||
chroot "$TARGET" dpkg-query --showformat '${Source}\n' --show usr-is-merged | grep -q '^usrmerge$'
|
||||
dpkg --compare-versions "1" "lt" "$(chroot "$TARGET" dpkg-query --showformat '${Version}\n' --show usr-is-merged)"
|
||||
|
|
|
@ -1116,6 +1116,8 @@ sub run_apt_download_progress {
|
|||
"-oDebug::NoLocking=1",
|
||||
# no need for pty magic if we write no log
|
||||
"-oDpkg::Use-Pty=0",
|
||||
# unset this or otherwise "cat >&$fd" will fail
|
||||
"-oDPkg::Chroot-Directory=",
|
||||
),
|
||||
@{ $options->{APT_ARGV} },
|
||||
],
|
||||
|
@ -2007,6 +2009,7 @@ sub run_setup() {
|
|||
print $conf "Apt::Architectures \"$options->{nativearch}\";\n";
|
||||
}
|
||||
print $conf "Dir \"$options->{root}\";\n";
|
||||
print $conf "DPkg::Chroot-Directory \"$options->{root}\";\n";
|
||||
# not needed anymore for apt 1.3 and newer
|
||||
print $conf
|
||||
"Dir::State::Status \"$options->{root}/var/lib/dpkg/status\";\n";
|
||||
|
@ -2902,6 +2905,7 @@ sub run_essential() {
|
|||
# Example: if the host has --path-exclude set, then this will also
|
||||
# affect the chroot. See #808203
|
||||
my @chrootless_opts = (
|
||||
'-oDPkg::Chroot-Directory=',
|
||||
'-oDPkg::Options::=--force-not-root',
|
||||
'-oDPkg::Options::=--force-script-chrootless',
|
||||
'-oDPkg::Options::=--root=' . $options->{root},
|
||||
|
@ -3025,6 +3029,7 @@ sub run_install() {
|
|||
if ($options->{mode} eq 'chrootless') {
|
||||
if (scalar @pkgs_to_install > 0) {
|
||||
my @chrootless_opts = (
|
||||
'-oDPkg::Chroot-Directory=',
|
||||
'-oDPkg::Options::=--force-not-root',
|
||||
'-oDPkg::Options::=--force-script-chrootless',
|
||||
'-oDPkg::Options::=--root=' . $options->{root},
|
||||
|
@ -3078,8 +3083,6 @@ sub run_install() {
|
|||
$options->{mode} eq 'fakechroot'
|
||||
? ('-o', 'DPkg::Install::Recursive::force=true')
|
||||
: (),
|
||||
'-o',
|
||||
"DPkg::Chroot-Directory=$options->{root}",
|
||||
'--yes',
|
||||
'install'
|
||||
],
|
||||
|
|
|
@ -4,6 +4,6 @@ export LC_ALL=C.UTF-8
|
|||
trap "rm -f /tmp/debian-chroot.tar" EXIT INT TERM
|
||||
{{ CMD }} --mode={{ MODE }} --variant=essential --include=apt \
|
||||
--essential-hook='APT_CONFIG=$MMDEBSTRAP_APT_CONFIG apt-get update' \
|
||||
--essential-hook='APT_CONFIG=$MMDEBSTRAP_APT_CONFIG apt-get --yes install -oDPkg::Chroot-Directory="$1" apt' \
|
||||
--essential-hook='APT_CONFIG=$MMDEBSTRAP_APT_CONFIG apt-get --yes install apt' \
|
||||
{{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}
|
||||
tar -tf /tmp/debian-chroot.tar | sort | grep -v ./var/lib/apt/extended_states | diff -u tar1.txt -
|
||||
|
|
Loading…
Reference in a new issue