Bash

chroot heredoc 提前終止特定包

  • January 8, 2021

一些有趣的東西,有點超出我的理解。我可以毫無問題地對 Debian Buster chroot 執行這些命令。這對我來說很方便在 chroot 中使用單個輸入流執行多個命令。

# Ex1. This works fine and prints "hi"
chroot LIVE_BOOT/chroot/ /bin/bash <<EOF
false
bad_command
echo "hi"
EOF

# Ex2. This *also* works fine and prints "hi!"
chroot LIVE_BOOT/chroot/ /bin/bash <<EOF
apt install -y --no-install-recommends nano
echo "hi!"
EOF

但是關於這個特定包的某些東西會導致腳本提前中止,因此以下命令不會執行。

# This runs the apt command fine, but then stops executing.
chroot LIVE_BOOT/chroot/ /bin/bash <<EOF
apt install -y --no-install-recommends xserver-xorg-core
echo "hi????"
EOF

xserver-xorg-core我有一種預感,它與呼叫的事實有關keyboard-configuration,但這是一個瘋狂的猜測。

debconf: falling back to frontend: Teletype
Configuring keyboard-configuration

不管是什麼原因,apt安裝都可以xserver-xorg-core正常完成,但是heredoc之後立即終止,我不知道為什麼或如何修復它。這是一個奇怪的地方chroot還是我正在使用的發行版?出於某種原因,我需要特殊的/dev/proc坐騎嗎?

您可以通過關閉互動式前端來解決它:

DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends xserver-xorg-core

引用自:https://unix.stackexchange.com/questions/628127