Create /dev/null in new root to prevent hangs

gnupg post install script does "dirmngr </dev/null &>/dev/null".
Since "pacman -r" does not mount any filesystems but it does chroot
into the new root, /dev/null does not exist, making the script hang
forever.
This commit is contained in:
Davide Depau 2020-04-16 23:55:17 +02:00
parent d408745d04
commit 8df03273a2

View file

@ -19,7 +19,13 @@ mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{de
mkdir -m 1777 -p "$newroot"/tmp mkdir -m 1777 -p "$newroot"/tmp
mkdir -m 0555 -p "$newroot"/{sys,proc} mkdir -m 0555 -p "$newroot"/{sys,proc}
echo 'Creating /dev/null in new root'
mknod "$newroot/dev/null" c 1 3
echo 'Installing packages to %s' "$newroot" echo 'Installing packages to %s' "$newroot"
if ! pacman -r "$newroot" -Sy --noconfirm "${pacman_args[@]}"; then if ! pacman -r "$newroot" -Sy --noconfirm "${pacman_args[@]}"; then
die 'Failed to install packages to new root' die 'Failed to install packages to new root'
fi fi
echo 'Deleting /dev/null from new root'
rm "$newroot/dev/null"