วิธีป้องกันพรอมต์ที่ขอให้เริ่มบริการเมื่อติดตั้ง libpq-dev


29

ฉันต้องการติดตั้งlibpq-devบนเครื่อง Vagrant ของฉัน ฉันติดตั้งด้วย

$ apt-get install -y libpq-dev

ระหว่างการติดตั้งจะมีข้อความปรากฏขึ้นถามว่าจะอนุญาตให้เริ่มบริการบางอย่างโดยอัตโนมัติหรือไม่ พรอมต์นี้แบ่งบทบัญญัติของ Vagrant ของฉัน จะปิดใช้งานพรอมต์นี้ได้อย่างไร

รวดเร็ว

ข้อความ:

มีบริการที่ติดตั้งบนระบบของคุณซึ่งจำเป็นต้องรีสตาร์ทเมื่อมีการอัพเกรดไลบรารีบางอย่างเช่น libpam, libc และ libssl เนื่องจากการรีสตาร์ทเหล่านี้อาจทำให้เกิดการหยุดชะงักของการบริการสำหรับระบบโดยปกติคุณจะได้รับแจ้งในการอัพเกรดแต่ละครั้งสำหรับรายการบริการที่คุณต้องการเริ่มต้นใหม่ คุณสามารถเลือกตัวเลือกนี้เพื่อหลีกเลี่ยงการได้รับแจ้ง แต่การรีสตาร์ทที่จำเป็นทั้งหมดจะทำเพื่อคุณโดยอัตโนมัติเพื่อให้คุณสามารถหลีกเลี่ยงคำถามที่ถูกถามในการอัปเกรดแต่ละไลบรารี

**** แก้ไข ****

ขอบคุณคำตอบของ Patrickและคำถามนี้ฉันแก้ไขมันแล้ว ตอนนี้ Vagrantfile ของฉันมี:

 sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libpq-dev

ฉันแนะนำให้ใช้-yแต่ดูเหมือนจะไม่เปลี่ยนแปลงมากนัก ดูman apt-get | less +/--force-yes
Valentin Bajrami

ฉันได้ลองใช้ตัวเลือกนั้นด้วย แต่ก็ไม่ได้ผลเช่นกัน
OrangeTux

คำตอบ:


28

DEBIAN_FRONTEND=noninteractiveตั้งค่าตัวแปรสภาพแวดล้อม

ตัวอย่างเช่น:

export DEBIAN_FRONTEND=noninteractive
apt-get install -y libpq-dev

สิ่งนี้จะทำให้apt-getเลือกตัวเลือกเริ่มต้น


2
ไม่ทำงานในกรณีนี้
ไนเจลฮอร์น

2
โปรดระบุว่า "กรณีนี้" คืออะไร ผู้เขียนคำถามเลือกคำตอบนี้ถูกต้อง หากคำตอบไม่ได้ผลสำหรับคุณฉันขอแนะนำให้คุณถามคำถามใหม่และตรวจสอบให้แน่ใจว่ากรณีของคุณแตกต่างกันอย่างไรและวิธีนี้ไม่ได้ผลสำหรับคุณ
แพทริค

1
มันไม่ได้ผลสำหรับฉันเลย
เฟลิเป้

ตัวเลือกเริ่มต้นคือการเริ่มบริการหรือไม่เริ่มบริการใหม่หรือไม่
Nicholi

ไม่ได้ผลสำหรับฉันเช่นกัน - export DEBIAN_FRONTEND=noninteractive; sudo apt-get update; sudo apt-get install -y libssl-dev openssl. ubuntu 18
RSHAP

9

debconf-set-selectionsคุณควรจะสามารถที่จะบรรลุนี้โดยใช้ จากหน้าคน:

debconf-set-selections can be used to pre-seed the debconf database
with answers, or to change answers in the database. Each question will
be marked as seen to prevent debconf from asking the question
interactively.

เพื่อกำหนดอินพุตที่ต้องการdebconf-set-selectionsหากไม่ทราบคุณสามารถตอบรับคำพร้อมต์ด้วยตนเองจากนั้นตรวจสอบฐานข้อมูล debconf เพื่อค้นหาค่าที่ถูกต้อง หากต้องการทำสิ่งนี้ติดตั้งdebconf-utils:

sudo apt-get -y install debconf-utils

ซึ่งให้debconf-get-selectionsคำสั่ง แล้ว:

sudo debconf-get-selections | grep libssl1.0.0:amd64

เพื่อตรวจสอบค่าในฐานข้อมูล ในระบบของฉัน (Ubuntu แต่ Debian ควรคล้ายกัน) ฉันไม่ได้รับแจ้งเมื่อฉันติดตั้ง libpq-dev และฉันมีรายการนี้:

libssl1.0.0:amd64   libssl1.0.0/restart-services     string

ดังนั้นคุณควรใช้:

echo 'libssl1.0.0:amd64 libssl1.0.0/restart-services string' | sudo debconf-set-selections

เพื่อตั้งค่ารายการบริการที่จะรีสตาร์ทเมื่ออัพเกรด libssl เป็น 'none'

ภายใต้ Debian ควรจะมีข้อมูลเพิ่มเติมเกี่ยวกับค่าที่ถูกต้องสำหรับสายนี้ในไฟล์ภายใต้questions.dat /var/lib/cdebconfดูhttps://www.debian.org/releases/stable/i386/apbs03.html.enสำหรับรายละเอียดเพิ่มเติม


4

ฉันคิดว่าคำตอบที่มีอยู่อาจจะเก่าไปหน่อย ต่อไปนี้ใช้งานได้สำหรับฉันเมื่อเร็ว ๆ นี้

เพื่อดูการตั้งค่าสำหรับแพ็คเกจ

sudo debconf-show <package-name>

เช่น:

$ sudo debconf-show libssl1.1 
  libssl1.1/restart-services:
  libssl1.1/restart-failed:
* libraries/restart-without-asking: false

เพื่อเปลี่ยนการตั้งค่า

echo '<package-and-setting-string>' | sudo debconf-set-selections

เช่น

echo 'libssl1.1 libraries/restart-without-asking boolean true' | sudo debconf-set-selections

เคล็ดลับโบนัสในการตั้งค่านี้สำหรับแพ็คเกจทั้งหมดใช้ '*' แทนชื่อแพ็คเกจ

เช่น

echo '* libraries/restart-without-asking boolean true' | sudo debconf-set-selections

คำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน แต่ใช้debconf-set-selectionsไม่ได้
bradj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.