apt-get (또는 aptitude)을 -y로 실행하지만 구성 파일 교체를 요구하지는 않습니까?


71

실행하면 apt-get -y install <packages ...>우분투 10.04에 내가 좋아하는 것 apt-get(또는 aptitude그 그것을 취하면 쉽게) 추가 종속성 (의 행동을 설치할 때 나 메시지를 표시하지 않는 -y나는 그것을 이해)을하고 있지만 하지 구성 파일을 덮어 쓸 나 메시지를 표시하는 대신 항상 기존을 유지하기 위해 가정 (일반적으로 기본값입니다). 불행히도 페이지 에 따르면 표시되는 프롬프트 --trivial-only의 반대 인 것으로 보이며 -y영향을 미치지 않습니다 man.

특히 패키지로 오슈 samba, nullmailer, localepurgelighttpd전체 절차는 스크립트와 비 대화식으로 의미에도 불구하고, 터미널과 상호 작용하는 저를 강요했다.

답변:


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섹션, 그것은 설명 confoldconfdef옵션을. 또한 도움이 : 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.