diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass
index 6af29b40..95210f4c 100644
--- a/meta/classes-recipe/rootfs.bbclass
+++ b/meta/classes-recipe/rootfs.bbclass
@@ -390,9 +390,15 @@ rootfs_install_pkgs_install[network] = "${TASK_USE_SUDO}"
 rootfs_install_pkgs_install() {
     run_privileged_heredoc <<'EOF'
     set -e
+    # Unpack and configure packages using the host apt. Dependency resolution
+    # and the apt frontend run natively (-o Dir points at the rootfs), while
+    # dpkg chroots into the rootfs to run the target maintainer scripts
+    # (emulated via qemu in cross builds), mirroring how mmdebstrap installs.
     ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS')) if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''}
-    chroot "${ROOTFSDIR}" \
-        /usr/bin/apt-get ${ROOTFS_APT_ARGS} --no-download ${ROOTFS_PACKAGES}
+    /usr/bin/apt-get -o APT::Architecture=${ROOTFS_ARCH} \
+        -o Dir="${ROOTFSDIR}" \
+        -o DPkg::Chroot-Directory="${ROOTFSDIR}" \
+        ${ROOTFS_APT_ARGS} --no-download ${ROOTFS_PACKAGES}
 EOF
 }
 
