Dpkg::Options --force-confold가 무시되는 이유는 무엇입니까?

Dpkg::Options --force-confold가 무시되는 이유는 무엇입니까?

수정된 구성 파일 및 충돌과 관련된 대화형 대화 상자를 표시하지 않으려고 노력해 왔습니다. 검색결과에 다 떴는데 다들 계속 복사해서 붙여넣기 하네똑같은 대답추가 컨텍스트를 제공하지 않고.

/etc/apt/apt.conf.d잘 복사하여 붙여넣은 항목이 포함된 구성 파일을 넣는 솔루션에 도달했습니다 .

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

나는 포함 APT::Get::Assume-Yes "true";했고이것절대적으로 작동합니다. 나는 apt-config그 사실을 확인했다.Dpkg::Options ~이다로드 중입니다. 하지만 DEBIAN_FRONTEND=noninteractive sudo apt upgrade이 구성을 시도할 때마다 대화형 대화 상자가 자동화된 스크립트를 중지합니다.

이 구성이 실패하는 이유에 대해 누군가가 copypasta 이상의 것을 제공할 수 있습니까? 이러한 설정이 무시되는 이유는 무엇입니까?


내 곤경을 재현하려면:

  1. Lightsail에서 새 Ubuntu 20.04 인스턴스 생성
  2. /etc/apt/apt.conf.d/99confold위의 설정을 포함하는 추가
  3. /etc/cloud/cloud.cfg어떤 식으로든 수정하세요
  4. sudo apt update그 다음에sudo apt upgrade

업데이트가 끝날 무렵에도 충돌 대화 상자가 계속 나타납니다.

답변1

/etc/apt/apt.conf.d 파일에 지정한 Dpkg::Options 설정이 무시될 수 있는 몇 가지 이유가 있습니다.

Dpkg::Options 설정을 지원하지 않는 apt 버전을 사용 중일 수 있습니다. Dpkg::Options 설정은 apt 버전 1.1.0에서 도입되었으므로 이전 버전을 사용하는 경우 이 설정은 무시됩니다.

Dpkg::Options 설정은 다른 구성 파일의 설정으로 재정의될 수 있습니다. apt는 여러 위치에서 구성 파일을 읽으며 이후 파일의 설정은 이전 파일을 재정의할 수 있습니다. 예를 들어 Dpkg::Options {"--force-confnew"}; 줄이 포함된 /etc/apt/apt.conf.d/99force-confold 파일이 있는 경우 이 설정은 --force-를 재정의합니다. 이전 구성 파일에서 지정한 설정을 구성합니다.

Dpkg::Options 설정은 수행 중인 특정 패키지나 작업에 적용되지 않을 수 있습니다. Dpkg::Options 설정은 패키지를 설치하거나 업그레이드할 때 dpkg가 구성 파일을 처리하는 방법에 영향을 주지만 패키지 제거 또는 패키지 캐시 업데이트와 같은 다른 작업에는 적용되지 않을 수 있습니다.

최신 버전의 apt를 사용하고 있고 Dpkg::Options 설정이 다른 구성 파일에 의해 재정의되지 않는 경우 수행하려는 작업에 --force-confold 옵션이 적용되지 않을 수 있습니다. 대신 --force-confdef 옵션을 지정하여 dpkg가 수정된 구성 파일의 기본 버전을 사용하도록 할 수 있습니다.

DEBIAN_FRONTEND=noninteractive 설정은 apt를 사용할 때 모든 대화형 프롬프트를 억제하지 않는다는 점도 주목할 가치가 있습니다. 특정 패키지를 설치하는 동안 질문을 하고 구성 옵션을 설정하는 데 사용되는 debconf 시스템과 특별히 관련된 프롬프트만 표시하지 않습니다. debconf와 관련되지 않은 대화형 프롬프트가 표시되는 경우 이 설정은 이를 억제하지 않습니다.

관련 정보