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

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

나는 데비안 태그가 지정된 프로필 중 하나가 포함된 패키지인 우리 저장소의 패키지를 자동 설치하기 위한 스크립트를 작성 중입니다. 새 프로필을 허용하도록 apt-get/ 에 전달할 수 있는 옵션이 있습니까 ?aptitude

기본적으로 다음과 동등한 apt/ 가 필요합니다 .aptitudedpkg --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

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

나는 Ubuntu 10.04
apt 버전을 사용하고 있습니다: apt 0.7.25.3

사용할 수 없는 이유 dpkg: 이 데비안은 저장소에서 설치되었으며 내 컴퓨터에 로컬 데비안이 없습니다.

답변1

다음과 같은 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

답변2

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

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

그러나 이는 빈 기본 비밀번호와 같은 의미를 갖는다는 점에 유의하십시오(아마도 꼭두각시, 요리사, 패브릭...과 같은 일부 배포/구성 도구가 필요할 수 있음).

바라보다스도(5)sudo비밀번호 없는 통화를 허용하는 방법에 대해

답변3

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

예를 들어, debianstretch의 openssh는 debconf 대신 ucf를 사용하여 openssh-server/openssh-7.4p1/debian/openssh-server.postinst구성 파일을 요청합니다. ( 이것은 against를 openssh-server.postinst사용하여 볼 수 있습니다.dgethttp://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dsc)

무료 사용자가 되는 것 외에도 이 페이지의 모든 팁을 사용해야 합니다.debconf 사전 설정.

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삭제됩니다. 하지만 당연히 안쓰시니까 괜찮을거에요! ;-)

답변4

또는 뭔가필수검사권장 사항 이러한 어려운 프로그램 옵션을 계속 추가할 필요가 없도록 이를 APT 설정에 추가하는 것이 좋습니다. 또한 이러한 설정이 있으면 무인 업그레이드에 도움이 됩니다.

/etc/apt/apt.conf.d/71debconf다음 콘텐츠를 포함하는 파일을 만듭니다 .

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

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

관련 정보