커널 버전 불일치로 인한 APT


18

Apt는 나에게 유용한 어떤 것도 할 수 없을 것 같습니다.

dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured

이것은 기본적으로 동일한 문제 이며 닫힌 패키지 (linux-image-server, linux-server dependencies 오류) 를 닫을 수는 없습니다.이 상황에서는 전혀 쓸모없는 답변으로 복제됩니다. 의존성에 대한 매우 일반적인 답변에 대한 조언은 도움이되지 않습니다.

명시 적으로 :

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update

모두 효과가 없습니다. 동안

sudo apt-get -f install
sudo dpkg --configure -a
sudo apt-get -u dist-upgrade
sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade

모두 위의 오류 메시지 형식을 제공합니다.

답변:


20

을 (를) 실행 sudo apt-get update했지만 문제가 계속 발생합니다. 당신은 아마 최신 버전이 그래서 linux-image-server그리고 linux-headers-server어떤 것보다 linux-server가능한 패키지 구성된 소프트웨어 소스를 .

이것은 발생할 수있는 매우 (를 업데이트에 문제가 있다면 또는 더 긴 시간 동안)은 중앙 서버를 사용하는 경우에도 짧은 시간. 거울을 사용하면 오랜 시간 동안 발생할 수 있다는 것을 이해합니다. 그렇다고 미러를 사용해서는 안된다는 의미는 아닙니다. 중앙 서버 ( http://archive.ubuntu.com)가 매우 느리고 국가, 지역 또는 기타 미러가 훨씬 빠릅니다.

패키지 검색은 모두 해당 버전의 3.2.0.37.45 계시 linux-image-serverlinux-server우분투 12.04을 위해 존재합니다. 아마도 거울과 관련이있을 것입니다.

대안은 다음과 같습니다.

무시해

예를 들어 다른 패키지를 설치하기 위해 다른 용도로 패키지 관리자를 사용할 수 있다면 이것을 무시해도됩니다. 미러가 업데이트되면 패키지를 얻을 수 있습니다.

실제 소프트웨어를 제공하지 않는 메타linux-server 패키지이기 때문에 최신 패키지 가없는 것은 문제 가되지 않습니다. 3 개의 패키지를 종속성으로 나열 하여 설치 상태를 유지할 수 있도록하기 위해서만 존재합니다 .

linux-headers-server및 의 최신 버전이 이미 있습니다 linux-image-server. 내 생각에 이것은 64 비트 시스템이므로 메시지 linux-generic-pae가 표시 되지 않는 이유 입니다. 모든 것이 괜찮은 것 같습니다.

하나:

  • 문제로 인해 다른 패키지의 업데이트 및 설치가 작동 하지 않는 경우 ( 해당 메시지를 표시 하지만 방해하지 않는 경우) 다른 솔루션을 적용해야합니다.
  • 이러한 메시지를 항상보고 싶지 않고 제거하려는 경우에도 그렇게 할 수 있습니다.
  • 이 패키지는에서 제공하기 때문에 기본 다운로드 서버보다 약간 뒤 떨어진 미러를 사용하더라도이 패키지를 얻지 못하는 것은 조금 이상합니다 http://security.ubuntu.com. 해당 서버는 항상에서 활성화되어 있어야합니다 /etc/apt/sources.list. 따라서 활성화되어 있는지 확인하는 것이 좋습니다. sources.list편집 하기 전에 백업 할 수도 있습니다 ( sudo cp /etc/apt/sources.list /etc/apt/sources.list.old). 오래된 데이터가있는 캐싱 웹 프록시 (사용하는 경우)의 결과 일 수도 있습니다. (아래 솔루션도 그 문제를 해결할 것입니다.)

다른 다운로드 서버로 변경

우분투 서버 시스템을 실행 중이며 GUI가 설치되어 있지 않은 것 같습니다. 따라서 다음을 참조하십시오.

미러를 변경 한 후 다음을 실행하십시오.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

원하는 경우 linux-server업데이트 후 서버를 다시 변경할 수 있습니다 .

.deb패키지 파일 수동 다운로드 및 설치

Ubuntu 12.04에서 .deb최신 버전의 linux-server메타 패키지 파일을 수동으로 다운로드하여 설치할 수 있습니다 .

cd 패키지를 다운로드하려는 위치로

64 비트 시스템 인 경우 다음을 실행하십시오.

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_amd64.deb

이것이 32 비트 시스템 인 경우 다음을 대신 실행하십시오.

wget https://launchpad.net/ubuntu/+archive/primary/+files/linux-server_3.2.0.23.25_i386.deb

( linux-metaUbuntu소스 패키지에 대한 런치 패드 페이지에서 두 링크를 모두 얻었습니다 .)

이제 (64 비트 및 32 비트 모두) 다음 명령을 실행하여 패키지를 설치하십시오.

sudo dpkg -i linux-server_3.2.0.23.25_*.deb

또는 패키지 이름을 입력하고 Tab완료하는 데 사용 하십시오.

패키지 제거

이미 가지고있는 메타 패키지 제공 소프트웨어이므로 패키지를 제거 할 수 있습니다. 그러면 더 이상 오류가 발생하지 않습니다. 원하는 경우 나중에 다시 설치할 수 있습니다 ( apt-get update && apt-cache policy linux-server새 버전을 사용할 수 있는지 정기적으로 실행할 수 있음).

제거하려면 두 단계가 있습니다. 첫 번째는 제거하는 것 linux-server입니다. 두 번째는 나중에 패키지가 자동으로 제거되지 않도록하는 것입니다.

종속성은 즉시 제거 되지 않습니다 . 따라서 어떤 단계를 먼저 수행하든 문제가되지 않습니다.

1. 제거하십시오 linux-server.

를 제거하려면 linux-server다음을 실행하십시오.

sudo apt-get remove linux-server

2. 종속성을 수동으로 설치 한 것으로 표시

종속성을 선언하는 항목이 남아 있지 않아도 설치하려는 패키지에 대해 APT (패키지 관리자)에게 알리려면 수동으로 설치된 것으로 표시하십시오.

이를 수행하려면 64 비트 시스템 인 경우이 명령을 실행하십시오.

sudo apt-mark manual linux-image-server linux-headers-server

32 비트 시스템 인 경우이를 대신 실행하십시오.

sudo apt-mark manual linux-image-server linux-headers-server linux-generic-pae

(당신은해야 apt-mark하지만 그렇게하지 당신이 소프트웨어를 설치할 수없는 경우, 당신이 사용할 수있는 apt-get install대신 apt-mark manual수동으로 설치 패키지를 --specifying가 수동으로 이미 설치된 경우 경우에도 설치로 표시됩니다.)

출처 : deb 패키지를 사용 된 것으로 표시하므로 자동 제거에 권장되지 않습니다
(특히 Lekensteyn의 답변) .


3
자세한 답변 감사합니다. 미러를 변경해도 상황이 전혀 바뀌지 않았습니다. 그러나 최신 버전의 linux-server ( linux-server_3.2.0.37.45)를 수동으로 설치하면 문제가 해결되었습니다.
Leopd 2013

2
제 경우에는 아무것도 얻기 위해 apt-get을 사용할 수 없었습니다. 나는 항상 linux-server에 대한 충족되지 않은 종속성 오류를 받았습니다. 당신의 충고에서 영감을 받아 다음과 같이 시도해 보았고 훨씬 간단했습니다.sudo apt-get remove linux-server && sudo apt-get install linux-server
Andrew Ensley

4

전체 / 부팅 및 자동 보안 업그레이드 설치가 제대로 중단 된 경우, 내가있는 것과 같은 보트에있을 수 있습니다.

나는 전통적인 전체 / 부팅 조언이 효과가 없었던 어떤 것도 할 수 없었습니다. 오래된 커널 데이터를 수동으로 제거했습니다. 현재 실행중인 커널을 제거하지 마십시오. 'uname -a'로 확인하십시오. 'sudo rm / boot / -3.2.0- {23,24,25,26}-으로 제거했습니다 .

그런 다음 'sudo apt-get remove linux-server'및 'sudo apt-get install linux-server'를 실행하여 1/2 설치된 커널 문제로 인한 혼란을 해결해야했습니다. 결국, 나는 마침내 'sudo apt-get upgrade'하고 다시 움직일 수있었습니다.

좋은 측정을 위해 'sudo update-grub'과 'sudo apt-get autoremove'를 던져 부팅 메뉴가 정확하고 다른 패키지가 정리되었는지 확인했습니다.


나는이 과정에 대해 조금 더 썼다 : askubuntu.com/a/430944/47461 계약자로서 나는이 문제에 자주 부딪쳤다 .
flickerfly

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