"적절한 업그레이드"는 이미 설치된 패키지를 대체하기 위해 종속 패키지를 자동으로 설치할 수 있습니까?

"적절한 업그레이드"는 이미 설치된 패키지를 대체하기 위해 종속 패키지를 자동으로 설치할 수 있습니까?

우리 팀은 적절한 업데이트가 어떻게 작동하는지에 대한 어두운 구석에 빠졌으며 탈출구를 찾는 데 도움이 필요합니다.

여기의 컨텍스트는 로컬 저장소의 배포 집합입니다. foo현재 모든 컴퓨터에 설치되어 있는 패키지가 있습니다 . 또한 , 및 주석이 달린 새 패키지도 있습니다 betterfoo.Replaces: fooConflicts: fooProvides: foo

이것은 예상대로 작동합니다. 누군가 수동으로 설치한 경우 먼저 제거 betterfoo하면 foo파일이 문제 없이 작동됩니다.

이제 문제는 bar현재 버전 2.0인 두 번째 패키지가 있다는 것입니다. 버전 2.1 업데이트에서는 betterfoo.

불행하게도 해당 종속성을 버전 2.1에 추가하고 이를 저장소에 넣으면 apt upgrade업데이트된 패키지가 설치되지 않습니다. 오류가 발생한 것 같습니다 bar: Depends: betterfoo but it is not going to be installed.

수동으로 수행하면 apt install bar설치 betterfoo(교체 foo)되고 모든 것이 잘 작동합니다. 다시 말하지만, 이 작업을 먼저 수행하면 작동할 것 apt install betterfoo입니다 apt upgrade.

설치된 컴퓨터에서 apt upgrade자동으로 교체 되도록 설정할 수 있는 방법이 있습니까 foo?betterfoobar

몇 가지 추가 참고 사항(해당하는 경우):

  • 한 가지 제한 사항: foo모든 곳에서 자동으로 교체할 수는 없습니다 betterfoo.
  • 우리의 설정 foobetterfoo. 이것이 문제의 원인이라면 해결할 수 있습니다.
  • 마찬가지로 foo버전 3.0도 betterfoo버전 1.0입니다. 어쩌면 Provides:항목에 버전 번호를 제공 해야 할까요 betterfoo?

관련 정보