ทำให้ apt-get (หรือ aptitude) ทำงานด้วย -y แต่ไม่แจ้งให้เปลี่ยนไฟล์การกำหนดค่า?


71

เมื่อทำงานapt-get -y install <packages ...>กับ Ubuntu 10.04 ฉันต้องการapt-get(หรือaptitudeถ้าทำให้ง่ายขึ้น) เพื่อไม่แจ้งให้ฉันทราบเมื่อติดตั้งการพึ่งพาเพิ่มเติม (พฤติกรรม-yที่ฉันเข้าใจ) และไม่แจ้งเตือนฉันเกี่ยวกับการเขียนทับไฟล์กำหนดค่าแทนที่จะถือว่ามีอยู่เสมอ (ซึ่งโดยปกติจะเป็นค่าเริ่มต้น) น่าเสียดายที่--trivial-onlyดูเหมือนจะเป็นสิ่งที่ตรงกันข้าม-yและไม่มีผลต่อพรอมต์ที่ปรากฏตามmanหน้า

โดยเฉพาะอย่างยิ่งในแพคเกจ auch เป็นsamba, nullmailer, localepurgeและlighttpdได้บังคับให้ฉันโต้ตอบกับขั้วแม้ว่าขั้นตอนทั้งหมดถูก scripted และความหมายที่จะไม่โต้ตอบ

คำตอบ:


97

คุณสามารถใช้:

sudo apt-get update
sudo apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

สำหรับแพ็คเกจเฉพาะเช่น mypackage1 mypackage2:

sudo apt-get update
sudo apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install mypackage1 mypackage2

ที่มา: http://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/

Avoiding the conffile prompt

Every time that dpkg must install a new conffile that you have modified
(and a removed file is only a particular case of a modified file in dpkg’s eyes),
it will stop the upgrade and wait your answer. This can be particularly annoying for
major upgrades. That’s why you can give predefined answers to dpkg with the help
of multiple --force-conf* options:

    --force-confold: do not modify the current configuration file, the new version
is installed with a .dpkg-dist suffix. With this option alone, even configuration
files that you have not modified are left untouched. You need to combine it with
--force-confdef to let dpkg overwrite configuration files that you have not modified.
    --force-confnew: always install the new version of the configuration file, the
current version is kept in a file with the .dpkg-old suffix.
    --force-confdef: ask dpkg to decide alone when it can and prompt otherwise. This
is the default behavior of dpkg and this option is mainly useful in combination with
--force-confold.
    --force-confmiss: ask dpkg to install the configuration file if it’s currently
missing (for example because you have removed the file by mistake).

If you use Apt, you can pass options to dpkg with a command-line like this:

$ apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

You can also make those options permanent by creating /etc/apt/apt.conf.d/local:

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}

คุณสามารถค้นหาข้อมูลเพิ่มเติมและตัวเลือกเพิ่มเติมได้ในคู่มือ dpkg ที่http://manpages.ubuntu.com/manpages/xenial/en/man1/dpkg.1.htmlหรือman dpkgค้นหา "confdef"


33
"ฉันเชื่อว่านี่เป็นการอธิบายตนเอง" ... วิธีการใช้ตัวเลือกที่ฉันไม่เคยเห็นใครใช้สำหรับ apt-get
notbad.jpeg

1
@ notbad.jpeg: ฉันเชื่อว่าคำกล่าวนั้นมุ่งเป้าไปที่การตั้งชื่อตัวเลือกเหล่านั้น ฉันพบชื่อจริง ๆ ด้วยตนเอง แน่นอนว่าการใช้มันไม่ได้เป็น :-D
0xC0000022L

3
แล้ว-yไงล่ะ
JDS

4
ดูเพิ่มเติมที่: linux.die.net/man/1/dpkgภายใต้--forceส่วนนั้นจะอธิบายconfoldและconfdefตัวเลือก มีประโยชน์ด้วย: apt-config dumpจากaskubuntu.com/questions/254129/…
thom_nic

3
"อธิบายตนเอง" ... อืมฉันพบว่าคำอธิบายนั้นทำให้เกิดความสับสนอย่างยิ่งโดยเฉพาะอย่างยิ่งว่าจะใช้ร่วมกันหรือไม่ dpkg(1)หนึ่งที่ล้างสิ่งขึ้นเป็น ขอบคุณ @thom_nic
Lloeki
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.