자동 업데이트 프로그램: 신뢰할 수 없는 패키지 설치 필요

자동 업데이트 프로그램: 신뢰할 수 없는 패키지 설치 필요

최근 일주일 정도 UI에서 자동 업데이트를 실행하면 위의 메시지가 나타납니다. "이렇게 하려면 인증되지 않은 소스에서 패키지를 설치해야 합니다."라는 메시지가 계속 표시됩니다. 에게 추천한다는 글을 읽었습니다 apt-upgrade. 그러나 이것이 의도된 솔루션인 이유에 대한 설명을 찾지 못했습니다.

apt-upgrade매우 안정적인 시스템을 그런 식으로 다루기 전에 지금 당장 필요한 이유와 관련하여 자동 업데이트 릴리스 프로세스를 이해하고 싶습니다 . 지난 몇 년간 내 시스템에 이 기능을 요구하는 업데이트가 기억나지 않습니다.

우분투 14.04 LTS.

감사해요!

답변1

왜 이런 일이 발생하는지 이해하려면 먼저 Stock apt(즉, 우선순위가 설정되지 않은 apt)가 어떻게 작동하는지 이해해야 합니다. 다음을 사용하여 업그레이드를 실행한다고 가정해 보겠습니다. apt upgrade(에 대한 정보를 찾을 수 없기 때문에 이것이 apt-upgrade가 의미하는 것이라고 가정합니다 apt-upgrade.) 먼저 apt는 설치된 모든 소프트웨어의 로컬 버전을 저장소의 원격 버전과 함께 확인하고 패키지 업그레이드가 필요한지 확인하십시오. 설명을 위해 패키지 1개 sayhello를 업그레이드해야 하는 가상 시나리오를 만들어 보겠습니다 .

다음은 가상의 변경 로그입니다.

sayhello 1.1 now depends on libhello (>= 1.0) to print "hello."

이제 source.list에 두 개의 소스가 나열되어 있다고 상상해 보십시오. 하나는 기본 Ubuntu 저장소이고 다른 하나는 Jim's amazing taco repo.

Jim의 저장소에는 다음 3가지 패키지가 포함되어 있습니다.

jimplayer 2.5 (No depends)
jimsbetterhello 1.0 (Depends on libhello (>= 2.0))
libhello 2.0 (No depends)

얼마 전에는 이 저장소를 사용하여 jimplayer를 설치했지만 나중에 Jim이 저장소에 jimsbetterhello를 추가하기로 결정한 것 같습니다. 이제 상황이 흥미로워집니다.

Ubuntu의 저장소는 호환성 이유로 여전히 libhello 1.5를 사용합니다(일부 패키지는 아직 새 libhello 버전에서 작동하지 않기 때문에).

이제 apt가 업그레이드로 이동하면 sayhello수수께끼에 직면하게 됩니다. libhello설치할 수 있는 버전이 2개 있습니다 ! 어느 것을 선택해야 할까요? 글쎄, 기본적으로 apt는 최신 버전의 패키지를 선택합니다. doesn't conflict with other currently installed packages.이제 일반적으로 이 프로세스는 사용자에게 투명하지만 타사 저장소에 대한 GPG 키를 추가하지 않았거나 키가 변경되었거나 기타 사항이 있는 경우 , 기본 Ubuntu 리포지토리에서 설치했더라도 sayhellolibhello 2.0은 신뢰할 수 없는 패키지가 될 것이며 apt는 이에 대해 경고할 것입니다. 이는 apt가 이에 대해 경고할 수 있는 다양한 변형 중 하나일 뿐입니다. 추가한 타사 저장소에서만 사용할 수 있는 패키지가 누락되었기 때문일 수도 있습니다. 가장 좋은 해결 방법은 기본 저장소를 더 높은 우선순위로 설정하고, 신뢰할 수 있는 키체인에 키를 추가하지 않고 불필요한 타사 저장소를 정리하는 것입니다.

관련 정보