apt-get이 Repo의 데비안 무인 설치에서 새 구성 파일을 수락하도록 만드는 방법


21

우리 저장소에있는 패키지의 무인 설치를위한 스크립트를 작성 중입니다. 데비안에서 표시된 구성 파일 중 하나가있는 소프트웨어 패키지입니다. 새 구성 파일을 허용 하도록 apt-get/에 전달할 수있는 옵션이 aptitude있습니까?

기본적으로 나는 필요 apt/ aptitude의 동등한 dpkg --force-confnew

apt-getY로 설치 하는 동안 제기 된 다음 질문에 대답해야합니다.


구성 파일``/ opt / application / conf / XXX.conf` '

==> File on system created by you or by a script.
==> File also in package provided by package maintainer.

What would you like to do about it ?  Your options are:
Y or I  : install the package maintainer's version
N or O  : keep your currently-installed version
  D     : show the differences between the versions
  Z     : background this process to examine the 

The default action is to keep your current version.

추가 정보:

또한 sudo파이프에 암호를 전달 하여 명령을 실행합니다.

echo "mysudopass"|sudo -S apt-get mypackage

설치가 대화식 구성 단계에있을 때 설치 오류를 표시합니다.

우분투 10.04
apt 버전에 있습니다 : apt 0.7.25.3

내가 사용할 수없는 이유 dpkg:이 데비안은 Repo에서 설치해야하며 컴퓨터에 로컬 데비안이 없습니다.


답변:


22

이처럼 dpkg매개 변수를 전달할 수 있습니다apt-get

apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install pkgname1 pkgname2 ...

--force-confdef된 설정 파일이 여전히 존재하는 경우, 그들은 재정의받지 않습니다. 그래서 당신은 아마 그것을 사용하지 않을 것입니다, 나는 다른 사람들을 위해 그것을 문서화하고 있습니다.

sudo사용자의 인증 옵션을 무효화하거나 NOPASSWD특정 항목에 태그를 추가하면 비밀번호를 묻지 않습니다 . 예 :

someuser ALL = NOPASSWD: /usr/bin/apt-get

7

다음을 시도해 볼 수 있습니다.

export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install whatever-2

그러나 이것은 빈 기본 암호와 같은 의미를 갖습니다 (퍼펫, 요리사, 패브릭과 같은 배포 / 구성 도구가 필요할 수 있습니다 ...?).

암호없는 호출 을 허용하는 방법에 대해서는 sudoers (5)를 참조하십시오 sudo.


3

forcefsck가 제안한 대안 대신 이 옵션을 APT 설정에 추가하여 작성하기 어려운 옵션을 항상 추가 할 필요는 없습니다. 또한이 설정이 있으면 무인 업그레이드에도 도움이됩니다.

/etc/apt/apt.conf.d/71debconf다음 내용을 갖도록 파일을 작성 하십시오.

Dpkg::Options {
  "--force-confnew";
};

참고 사항 (Geoff에서) :이 변경 사항은 전역 변경 사항입니다. 시스템에 무인 업그레이드를 원하지만 수동으로 구성한 다른 패키지가있는 경우 적절한 솔루션이 아닙니다.


이것은 좋은 옵션 일 수 있지만 이것이 글로벌 변경이라는 점을 명심해야합니다. 시스템에 무인 업그레이드를 원하지만 구성한 다른 패키지가있는 경우 적절한 솔루션이 아닙니다.
Geoff

2

다른 답변 외에도 환경 UCF_FORCE_CONFFNEW = 1 을 설정해야 할 수도 있습니다 .

예를 들어 데비안 스트레치에서 openssh openssh-server/openssh-7.4p1/debian/openssh-server.postinst는 구성 파일에 대해 묻는 데 ucf (debconf 아님)를 사용 합니다. ( http://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dsc 에 대해 openssh-server.postinst사용하여 볼 수 있습니다 )dget

우리는이 페이지의 모든 트릭을 사용하여 debconf preseeding의 자유 사용자가되어야했습니다 .

그러나 우리가 export DEBIAN_FRONTEND=noninteractive무언가를 놓쳤는 지 알고 싶기 때문에 (중요 할 수도 있음) 부족하지 않았습니다 . 우리의 사용 사례는 작업을 시작하는 운영자입니다. 업그레이드는 비 대화식 일 것으로 예상되지만 문제가 발생하여 대화 상자가 표시되면 운영자가있는 것입니다. 상황이 다를 수 있습니다.

그러나 export DEBIAN_FRONTEND=noninteractive당신의 격언 망치입니다.

다만주의 : 설정 -o Dpkg::Options::=--force-confnew및 / 또는 UCF_FORCE_CONFFNEW=1수단을 것을 모든 설치된 패키지에서 설정 파일 상류 사람 되돌아갑니다. 의 경우 예를 들어, 그래서 openssh-server, 당신의 /etc/ssh/sshd_config공장 설정으로 재설정됩니다. 예를 들어 PermitRootLogin=yes제거됩니다. 그러나 물론 당신은 그것을 사용하지 않으므로 괜찮을 것입니다! ;-)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.