ปิดใช้งานพรอมต์ขณะติดตั้งแพ็คเกจ Debian


22

ฉันจะปิดการใช้งานพรอมต์ทั้งหมดที่ปรากฏขึ้นขณะติดตั้งแพ็คเกจ Debian ได้อย่างไรฉันใช้ตัวเลือกทั้งหมดที่ฉันพบ แต่มีบางแพ็คเกจที่ยังคงเปิดใช้งานอยู่

ฉันกำลังใช้คำสั่งนี้:

apt-get -y --allow-unauthenticated --force-yes -o DPkg::Options::="--force-overwrite" -o DPkg::Options::="--force-confdef" install x11-common

เหตุใดแพ็คเกจ x11 ทั่วไปจึงยังคงพร้อมใช้งานอยู่ ฉันจะกำจัดข้อความแจ้งเหล่านี้ได้อย่างไร

ขอบคุณล่วงหน้า

--Victor

แก้ไข: เพื่อชี้แจงให้ชัดเจนไม่ใช่พรอมต์ "ใช่ / ไม่ใช่" เป็นคำถามแบบเปิดในหน้าจอสี (โดยทั่วไปคือหน้าจอสองสี) แต่ฉันต้องการตั้งค่าตัวเลือกเริ่มต้นของคำถามเหล่านี้

คำตอบ:


38

เลือกส่วนหน้าใหม่โดยการตั้งค่า env ของคุณ

DEBIAN_FRONTEND=noninteractive apt-get -y install x11-common

cfengineผมใช้นี้ตลอดเวลาในการทำงานอัตโนมัติติดตั้งแพคเกจด้วย


+1 นี่คือคำตอบที่ถูกต้อง
lynxman

ในบางกรณีที่แปลกเช่นเมื่อคุณจำเป็นต้องใช้สิ่งนี้ภายใน chroot ที่ไม่ต้องมีการโต้ตอบคุณสามารถใช้DEBIAN_FRONTEND=noninteractive sudo -E chroot . echo "something"
mschuett

8

ไม่มีการติดตั้ง x11- ร่วมกันด้วยตนเองฉันไม่แน่ใจว่าคำถามที่คุณกำลังถาม แต่ถ้าพวกเขามาจาก debconf debconf-set-selectionsแล้วคุณควรจะสามารถก่อนตอบคำถามด้วย


นี่คือทางออกขอบคุณ ฉันได้รับคุณสมบัติที่มี debconf-get-selections และตั้งค่าไว้ก่อนหน้านี้ด้วย debconf-set-selections และไม่มีพรอมต์ปรากฏขึ้นอีกต่อไปแล้ว
victorgp

แม้จะมีการเลือกชุดแพคเกจบางอย่างอาจยังคงถามคำถามขึ้นอยู่กับลำดับความสำคัญ แต่ฉันขอแนะนำให้ตั้งค่าการเลือกหากทำได้ การตั้งส่วนหน้าให้noninteractiveเป็นเวทย์มนตร์ "อย่าถามอะไรเลยไม่ว่าธงอะไร"
บาฮามาต

4

คุณต้องdpkg-reconfigure debconfและบอกให้ "ละเว้นคำถามที่มีลำดับความสำคัญต่ำกว่า: สำคัญ"

สิ่งนี้ไม่ได้ช่วยให้คุณตอบคำถามสำคัญ


1

หากต้องการปิดการใช้งานพรอมต์ทั่วโลกเพื่อกำหนดค่าแพ็คเกจทั้งหมดด้วยdebconfเพียงแค่ใส่เครื่องหมายบรรทัดที่สองจาก/etc/apt/apt.conf.d/70debconfไฟล์

หรือถ้าคุณกำลังเตรียม VM ให้เพิ่มคำสั่งเหล่านี้ในสคริปต์การจัดสรรของคุณ:

sudo ex +"%s@DPkg@//DPkg" -cwq /etc/apt/apt.conf.d/70debconf
sudo dpkg-reconfigure debconf -f noninteractive -p critical

คุณอาจลองแบบเดียวกับที่ Travis CI ทำเช่นนี้:

sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install some_package

สำหรับแพ็คเกจอื่น ๆ เช่นttf-mscorefonts-installer(ซึ่งขึ้นอยู่กับlanguage-pack-en) ดังกล่าวข้างต้นดูเหมือนจะไม่ทำงานดังนั้นให้ลอง:

echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
sudo apt-get install -y language-pack-en

1
--force-yesเป็นวิธีที่น่ากลัวมากและไม่แนะนำให้ทำการระเบิดผ่านระบบแจ้ง อย่าแปลกใจถ้าคุณจบด้วยระบบที่เสียหายและไม่สามารถกู้คืนได้ในสักวันหนึ่ง
dragon788
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.