PPA를 추가 한 후 충족되지 않은 종속성을 어떻게 해결합니까?


540

때로는 물건을 설치할 때 다음과 같은 오류가 발생합니다.

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

이 문제를 어떻게 해결할 수 있습니까?


33
정확한 패키지 이름을 잊어 버리십시오. 이 질문과 관련이 없습니다. 정식 질문 을 작성하려고합니다 . 따라서 정확한 패키지는이 특정 인스턴스와 관련이 없습니다.
jrg

33
실제로 "정확한 패키지 이름"은 귀하의 질문과 관련이 없지만 이와 관련하여 개인의 문제와 매우 관련이 있습니다. 일반적으로이를 해결하는 가장 좋은 첫 번째 단계는 pkg1 및 pkg2의 출처를 식별하는 것입니다. 이것은 대답에서 간과 된 것처럼 보이며, 대부분 그렇지 않으면 상당히 좋습니다. 또한 대부분의 경우는 아니지만 "<whatever> 설치"는 실제로 "<whatever>가 설치됨"을 의미합니다. 이것은 이것에 직면하는 많은 사용자들을 혼란스럽게하는 경향이 있으며 아래 답변에도 포함되어야합니다
doug

5
@doug 댓글이 아닌 답변으로 추가하면 좋습니다. :)
jrg

1
@Braiam Whaaaat는 요점을 가지고 있지만 질문은 PPA에만 국한되지 않으며 몇 가지 답변도 아닙니다. 상위 2 개의 답변이 다른 답변을 압도한다는 것을 알고 있지만 질문의 성격을 변경하는 것이 올바른 해결책인지 확실하지 않습니다. 특히 다른 답변을 무효화하기 때문입니다. 더 나은 답변이 없기 때문에 지금은 떠날 것이지만 생각해야 할 것입니다.
세스

2
아, 그리고 내 문제 해결 질문은 어디에 있습니까? : D
세스

답변:


561

APT는 데비안 및 Ubuntu와 같은 다른 Linux 배포판을위한 패키지 관리 시스템입니다. 대부분의 경우 APT는 패키지 설치, 제거 및 업데이트에 사용하기 쉽습니다. 드문 경우이지만 종종 타사 종속성을 혼합 할 때 다음과 같은 가능성이 있습니다.apt-get 패키지 설치를 완료 할 수 없다는 오류가 발생할 수 있습니다.

솔루션 :

항상 같은 구성 파일을 백업하는 것이 좋으 /etc/apt/sources.list므로 필요한 경우 변경 사항을 되돌릴 수 있습니다.

  • error다음과 같이 표시되는 경우 :

    <some-package>: Depends: <other-package> (= version) but this-version is to be installed

    그런 다음 restricteduniverse저장소가 사용 가능한지 확인하십시오 . 히트 Alt+ F2입력 software-properties-gtk과 충돌을 Enter.

    Ubuntu Software탭 아래에서 모든 리포지토리를 활성화하십시오.

  • 종속성이 충족되지 않는 원인 중 하나는 패키지 데이터베이스가 손상되었거나 일부 패키지가 제대로 설치되지 않은 것일 수 있습니다. 이 문제를 해결하려면 Alt+ Ctrl+ T를 눌러 터미널을 열고 다음 명령 중 하나를 실행하십시오.

    sudo apt-get clean

    또는,

    sudo apt-get 자동 청소

    apt-get clean검색된 패키지 파일 (.deb 파일)의 로컬 저장소를 지 웁니다. / var / cache / apt / archives / 및 / var / cache / apt / archives / partial /에서 잠금 파일을 제외한 모든 것을 제거합니다. apt-get autoclean검색된 패키지 파일의 로컬 리포지토리를 지우지 apt-get clean만, 달리 더 이상 다운로드 할 수없고 대체로 쓸모없는 패키지 파일 만 제거합니다.

  • 종속성 문제를 해결하기위한 가장 기본적인 수정 중 하나는 다음을 실행하는 것입니다.

    sudo apt-get -f 설치

    -f여기에 "깨진 해결"을 의미합니다. Apt깨진 종속성을 수정하려고 시도합니다. 종속성이없는 패키지를 수동으로 설치 한 경우apt-get 경우 가능하면 해당 종속성을 설치합니다. 그렇지 않으면 문제를 해결하기 위해 설치 한 패키지를 제거 할 수 있습니다.

    그런 다음 다음을 실행하십시오.

    sudo dpkg --configure -a

    그런 다음 이것을 다시 실행하십시오.

    sudo apt-get -f 설치

    출력이 다음과 같은 경우 :

    0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

    그것은 실패했다는 것을 의미합니다.

  • 다음 해결책은 다음을 실행하는 것입니다.

    sudo apt-get -u dist 업그레이드

    보류 된 패키지가 표시되면 제거하는 것이 가장 좋습니다. 패키지는 apt해결할 수없는 종속성 충돌로 인해 유지 됩니다. 충돌을 찾아서 복구하려면이 명령을 사용하십시오.

    sudo apt-get -o Debug :: pkgProblemResolver = 예 dist 업그레이드

    충돌을 해결할 수 없으면 다음과 같이 종료됩니다.

    0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

    보류 된 패키지 dist-upgrade가 더 이상 없을 때까지 매번 실행되는 보류 된 패키지를 하나씩 삭제하십시오 . 그런 다음 필요한 패키지를 모두 다시 설치하십시오. 사용하십시오--dry-run결과를 충분히 알 수 있도록 옵션 .

    sudo apt-get remove --dry-run 패키지 이름

    설치하려는 패키지를 제거하는 것이 이상적이지 않을 수 있으므로 종속성을 충족시키는 데 필요한 패키지가있는 저장소를 찾으십시오.

마지막으로, 다른 모든 방법이 실패하면 필요한 패키지를 찾아서 설치하거나 소스에서 패키지를 설치 한 다음 " deb "를 작성하여 종속성을 직접 만족시킬 수 있습니다. "패키지를 있습니다.

PPA 비활성화 / 제거 / 퍼지 :

PPA (Personal Package Archive)는 런치 패드에서 호스팅되는 저장소입니다. 입니다. PPA를 사용하여 공식 우분투 리포지토리에서 사용할 수없는 패키지를 설치하거나 업그레이드 할 수 있습니다.

충족되지 않은 종속성의 가장 일반적인 원인 중 하나는 특히 우분투 리포지토리에서 기존 패키지를 업그레이드하는 데 사용될 때 PPA입니다. 이 문제를 해결하려면 비활성화, 제거 (우분투 리포지토리의 원래 패키지로 다시 되돌리기) 또는 PPA 제거의 세 가지 옵션이 있습니다.

  • 비활성화 :

    PPA를 비활성화하면 해당 PPA에서 설치된 패키지에 대한 업데이트가 더 이상 필요하지 않습니다. PPA를 비활성화하려면 : 열기Software Center > Edit > Software Sources 또는,

    히트 Alt+ F2실행 software-properties-gtk.

    Other Software탭을 클릭 하면 각 PPA에 두 줄이 있습니다. 하나는 컴파일 된 패키지 용이고 다른 하나 Uncheck는 PPA를 비활성화하는 두 줄입니다. 여기에서 PPA를 추가 및 제거 할 수도 있습니다.

  • 숙청:

    PPA를 제거한다는 것은 선택한 PPA의 패키지를 공식 우분투 리포지토리의 버전으로 다운 그레이드하고 해당 PPA를 비활성화하는 것을 의미합니다. PPA 퍼지 가 바로 그 일을합니다. PPA Purge를 설치하려면 다음 명령을 실행하십시오.

    sudo apt-get ppa-purge 설치

그러나 질문 apt이 깨 졌다는 것을 고려하면 위의 명령은 실패합니다. 이 명령을 사용하십시오

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

PPA 제거를 사용하려면

sudo ppa-purge ppa : someppa / ppa

어떤 이유로 'ppa-purge'명령이 실패하면 PPA를 다시 활성화하지 않으면 'ppa-purge'를 다시 실행할 수 없습니다 (PPA를 활성화하려면 PPA 비활성화 및 Check 하고 특정 행을 모두 PPA를 사용하도록 설정).

참고 : PPA PurgePPA를 제거하지 마십시오 ( 나중에있을 수 있음 ). PPA를 수동으로 제거해야합니다.

  • 없애다:

    PPA에서 설치된 패키지가 공식 우분투 저장소에 존재하지 않으면 PPA Purge다운 그레이드 할 것이 없기 때문에 사용 하지 않는 것이 좋습니다.PPA Purge 할 것이 없으며 삭제하지 . PPA 및 설치된 패키지를 제거하려면 다음 명령을 실행하십시오. (설치된 패키지를 제거하지 않으려면 첫 번째 명령을 무시하십시오)

    sudo apt-get autoremove --purge package-name
    sudo add-apt-repository --ppa : someppa / ppa를 제거하십시오
    sudo apt-get 자동 청소
    

또는 Y PPA ManagerPPA를 비활성화 / 제거 / 지우기 위해 사용할 수 있습니다 (응답 끝에 세부 사항).

예방 조치 :

그렇다면 어떻게 이런 일이 발생하지 않도록 할 수 있습니까?

  • 우분투를 최신 상태로 유지하십시오. Ubuntu는 업데이트가 제공 될 때 자동으로 알리며 Session IndicatorUnity 패널에서을 클릭하여 사용 가능한 업데이트를 확인할 수도 있습니다.

    또는, 히트 Alt+ Ctrl+ T터미널 열고 다음 명령을 실행합니다 :

    sudo apt-get 업데이트
    sudo apt-get 업그레이드

    업데이트 : 사용 가능한 패키지 목록을 소스 리포지토리의 서버와 동기화합니다. 업그레이드 : 설치된 패키지의 최신 버전을 다운로드하여 설치합니다.

  • sources.list에 다른 리포지토리를 추가하기로 결정한 경우 리포지토리가 Ubuntu와 함께 작동하고 작동하는 것으로 알려져 있는지 확인하십시오. Ubuntu 버전과 작동하도록 설계되지 않은 리포지토리는 시스템에 불일치가 발생하여 다시 설치해야 할 수 있습니다. 또한 찾고있는 소프트웨어 패키지가 이미 공식 리포지토리에 도입되었을 수 있으므로 외부 리포지토리를 추가해야합니다! 출처
  • 중복 PPA를 제거하십시오. Y PPA Manager(응답 끝에 설치 안내서) 중복 PPA를 쉽게 스캔하고 제거 할 수 있습니다.

    • 히트 Alt+ F2실행 y-ppa-managerY PPA 관리자를 엽니 다.
    • 개방을 더블 클릭하면 또는 명중 EnterAdvanced.
    • 결과 창에서 선택 Scan and remove duplicate PPAs하고 확인을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

도움을 받다:

Askubuntu 또는 기타 도움말 포럼 에 대한 도움을 요청할 때는 질문에 다음 명령의 출력을 포함시켜야합니다.

  • 실제 오류 출력 :

    sudo apt-get 설치 패키지 이름
  • 소스 목록이 표시됩니다.

    고양이 /etc/apt/sources.list
  • PPA 목록이 표시됩니다 (있는 경우).

    고양이 /etc/apt/sources.list.d/*

추가 출처 :


Y PPA 관리자 : Y PPA 관리자는 모든 PPA 요구를 충족시키는 원 스톱 상점입니다.

y ppa 관리자

다음은 그 기능 중 일부입니다.

  • 모든 런치 패드 PPA에서 패키지 검색
  • PPA에서 패키지 목록 및 다운로드
  • PPA 추가 / 제거 / 지우기
  • PPA 소스 백업 및 복원
  • 중복 PPA 소스 제거

설치하려면 + +를 Y PPA Manager눌러 터미널을 열고 다음 명령을 실행하십시오.AltCtrlT

sudo add-apt-repository ppa : webupd8team / y-ppa-manager
sudo apt-get 업데이트
sudo apt-get 설치 y-ppa-manager

질문을 고려하면 apt깨 졌으므로 대신이 명령을 사용하십시오.

sudo su

32 비트 :

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 비트 :

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

3
apt가 파손 된 경우 unmet depandancies를 설치하는 방법은 무엇입니까?
Tachyons

4
이것은 큰 도움이되었습니다 ... Lubuntu 12.04를 새로 설치했으며 gvim (vim-gtk) 또는 openssh-server와 같은 기본 항목을 설치할 수 없었습니다. 나는 문자 그대로이 기계와 Xubuntu를 올바르게 실행하는 다른 컴퓨터에서 /etc/apt/sources.list의 diff를 수행하는 것을 포함하여 모든 종류의 명령 행 옵션을 시도했습니다. 이 가이드를 따른 후, 어떻게 든 'main'repos의 상자가 선택되지 않은 software-properties-gtk에서 발견되었습니다! 문제 해결됨!
memilanuk

1
언젠가 당신은 실제로 깨진 패키지를 개최했습니다 ... 그래서 가장 좋은 것은 그들을 잡고 삭제하는 것입니다.
Rmano

3
실제로 의존성 버전이 충족되지 않은 패키지를 설치하는 방법에 대해서는 아무도 대답하지 못했습니다. 하느님! 이전 버전의 패키지를 강제로 설치하고 싶습니다.
해병대

3
이것은 나를 위해 작동하지 않았다 : S
AlvaroAV

87

참고 : 실행 요청 된 모든 명령은 터미널에서 실행해야하며, Ctrl+에서 Alt+를 T열거 나 대시에서 터미널을 검색하여 열 수 있습니다 .

정말 고장 났나요?

다음 명령을 실행하고 설치하려는 소프트웨어를 다시 설치하십시오.

sudo apt-get update

사전 수행 단계

백업

다음 파일을 백업하십시오.

  • /etc/apt/sources.list
  • /var/lib/dpkg/status

이렇게하려면 다음 명령을 사용하십시오.

sudo cp /etc/apt/sources.list /etc/apt/sources.list.original

sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original

apt-cache 지우기

apt설치해야 할 때 대역폭을 절약하기 위해 최근에 다운로드 한 패키지의 캐시를 유지합니다. 경우에 따라 비생산적 일 수 있습니다.

이제 청소하려면 두 가지 옵션이 있습니다.

sudo apt-get clean 

이 폴더에 속한 모든 캐시 패키지 제거 /var/cache/apt/archives//var/cache/apt/archives/partial.lock 파일을 제외합니다. 이것은 추천

sudo apt-get autoclean

이 폴더 검색 /var/cache/apt/archives//var/cache/apt/archives/partial패키지는 저장소에하면 계속 확인을하고 있지 않은 사람을 제거


의존성 수정

apt의 수정 깨진 모드 사용

sudo apt-get -f install

이로 인해 apt는 누락 된 종속성을 스캔하여 리포지토리에서 수정합니다.

출력에 새로 설치되거나 업그레이드 된 것이 아무것도없는 것으로 표시되면 실패한 것입니다.


필요한 모든 소스가 활성화되어 있는지 확인

입력 gksu software-properties-gtk하면이 창이 나타납니다

모든 소스가 활성화되어 있는지 확인하십시오.

다음으로 Other software (기타 소프트웨어) 탭으로 이동하여 설치할 소프트웨어에 필요한 PPA가 있고 활성화되어 있는지 확인하십시오. 또한 패키지가 손상되었을 수있는 일부 PPA를 비활성화하십시오.

지금, 실행 sudo apt-get update

지금 소프트웨어를 설치하십시오

다운로드 할 더 나은 서버 선택

입력 gksu software-properties-gtk하면이 창이 나타납니다

드롭 다운 상자에서 다운로드를 클릭하고 다른

최상의 서버 선택을 클릭하십시오.

운영 sudo apt-get update

소프트웨어를 설치하십시오

또한, 사용해보십시오 sudo apt-get install -f


PPA 퍼지

부러 지거나 원치 않는 ppa와 그 응용 프로그램을 제거하는 데 사용되는 도구입니다.

설치하려면 다음을 실행하십시오.

sudo apt-get install ppa-purge

그러나 질문 apt이 깨 졌다는 것을 고려하면 위의 명령이 실패합니다. 이 명령을 사용하십시오

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

이제 ppa purge를 사용하십시오.

sudo ppa-purge ppa:someppa/ppa  

Y-PPA 관리자

Y-PPA 관리자는 PPA 및 이와 관련된 다양한 문제를 관리 할 수있는 GUI 앱입니다.

설치하려면

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

sudo apt-get update

sudo apt-get install y-ppa-manager

질문을 고려하면 apt깨 졌으므로 대신이 명령을 사용하십시오

sudo su

32 비트 :

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 비트 :

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

이제 입력 y-ppa-manager

이 창이 나타납니다

고급을 두 번 클릭하면이 창이 나타납니다.

검은 색으로 표시된 다음 작업을 수행하십시오.


예방은 치료보다 낫다

AskUbuntu : D에서이 질문을 검색하는 것보다 예방하는 것이 좋습니다

안전을 지키기위한 지침은 다음과 같습니다.

시스템을 최신 상태로 유지

항상 다음 명령을 정기적으로 실행하십시오.

sudo apt-get update&&sudo apt-get upgrade

또는이 명령으로 항상 Update Manager를 사용할 수 있습니다

gksu update-manager

신뢰할 수있는 PPA 만 사용

Ubuntu에서도 사용되는 PPA 만 사용하고 신뢰할 수있는 출처의 PPA 만 사용하십시오. 사실, 패키지는 이미 우분투 저장소에있을 수 있습니다

상황이 좋을 때 백업하고 나중에 복원

이를 위해서는 Y-PPA-Manager가 필요합니다. 설치 단계는 위에 나와 있습니다.

이 명령을 실행하여 Y-PPA-Manager를 엽니 다.

y-ppa-manager

이 창이 나타납니다

고급을 두 번 클릭하면이 창이 나타납니다.

이것을 실행하십시오 :

tar.gz 파일을 아래와 비슷한 대화 상자로 저장하라는 메시지가 표시됩니다. 다른 파티션이나 안전한 장소에 저장하십시오

나중에 다시 복원해야 할 때 비슷한 단계를 수행하고 고급 대화 상자가 나타나면 다음을 클릭하십시오.

아래와 비슷한 대화 상자를 사용하여 이전에 저장 한 이전 백업에서 복원하라는 메시지가 표시됩니다


그래도 작동이 안되는?

패키지 종속성 오류는 항상 일반적인 것은 아니며 설치할 패키지에 따라 다릅니다.

오류를 해결하기 위해 제공된 모든 단계를 수행해도 효과가 없으면 언제든지 Ubuntu문의하십시오.

다음은 출력을 게시해야하는 몇 가지 명령입니다.

sudo apt-get install packagename

cat /etc/apt/sources.list

cat /etc/apt/sources.list.d/*

( Basharat Sial 에게 감사합니다 )

출력이 필요한 다른 파일 / 명령도 있으며 오류가있을 수 있으며, 사용자는 주석을 입력하여 파일 / 명령을 게시하라는 메시지를 표시 할 것입니다.


나는 apt-get update목록의 상단 근처에 두었습니다 . 때때로 새로운 패키지 하나가 원격으로 업데이트 된 시스템에서 업데이트를 수행했지만, 종속 된 패키지가 아직 빌드를 완료하지 않은 경우가 있습니다. 또는 로컬 캐시에있는 버전이 업데이트되었습니다. 이 경우 간단한 apt-get update캐시가 로컬 캐시를 업데이트하여 계속 진행할 수 있습니다.
Hamish Downer

1
최고의 노치 답변! 그것은 단지 apt 및 dpkg가 그들이 붙어있는 부서진 상태에 빠지지 않도록하거나 더 잘 해결하기 위해 더 나은 보호 기능을 갖기를 바랍니다. 나는이 문제를 전에 가지고 있었고 apt-get install -f그것을 고치지 않을 때 상당히 좌절 했다.
Jeff Welling

"PPA가 활성화 된 상태에서 시스템을 업그레이드하지 마십시오. 먼저 비활성화 한 다음 업그레이드하십시오."PPA 버전으로 업그레이드 한 다음 PPA가 종료되면 결국 죽었다는 의미이므로 . 전체 시스템을 낮은 버전 번호로 다운 그레이드 할 수 없으며 표준 저장소에서 무언가를 설치할 수 없습니다. 표준 저장소의 패키지가 설치된 PPA 패키지와 충돌합니다.
Anwar

2
나를 위해 더 나은 서버를 선택하십시오. 감사합니다!
Hoang Huynh

나는 -f깃발이 힘을 나타내는 것으로 생각 하고 항상 사용하지 않는 것이 좋습니다
user907860

38

지금까지 이러한 답변은 이러한 문제를 자동으로 해결하는 방법에 중점을두고 있으며, 대부분 자체적으로 해결되기를 바라지 만 종속성을 조사하는 방법을 이해하는 데 중점을 두지는 않습니다. 패키지 목록을 최신 상태로 유지하는 등의 작업을 수행하는 것이 중요합니다. 간단한 업데이트 나 캐시 지우기로 문제를 해결하지 않고 깊이 파고 들기 때문입니다. 그러나 배후의 모든 것이 제대로 작동한다면 의존성을 이해하는 방법을 배우는 것이 가장 중요합니다. 때로는 의존성 계층이 압도적 인 것처럼 보일 수 있지만 개념은 간단하며 우분투 시스템에서 소프트웨어가 설치 / 제거되는 방법을 이해하는 데 중요합니다.

우분투와 같은 .deb 기반 시스템을 사용하는 모든 사람 에게 적성 을 권장 합니다. 트리 구조를 통해 권장 및 제안 된 패키지를 포함한 종속성을 쉽게 찾아 볼 수있을뿐만 아니라 충돌 및 충족되지 않은 종속성을 시각화 할 수 있습니다. apt-get이 간단한 솔루션을 제공하지 않고 일반적으로 종속성을 시각화하는 데 유용한 도구입니다. ( Ubuntu에서도 시냅틱 을 사용할 수 있지만 직관적 인 것은 아닙니다.)

또한 Aptitude는 충돌 / 문제없이 모든 요구 사항을 충족하기 위해 설치 / 제거 / 업그레이드 / 등 패키지의 가능한 모든 조합을 안내하는 충돌 해결 프로그램을 제공합니다. apt가 솔루션을 찾을 수없는 경우에도 성공할 수 있습니다. 우분투 사용자는 일반적으로 특정 패키지가 설치되는 이유를 조사 해야하는 상황이 발생하지 않지만 시스템을 더 많이 사용할수록 거의 불가피합니다.


3
적성 분쟁 해결 자에 대한 투표로 선정되었습니다. 이와 같은 고급 도구를 사용하여 가능성을 확인하고 핵심 갈등을 찾아야하는 경우가 있습니다.
존 S Gruber

3
이것은 실제로이 스레드에서 가장 좋은 대답 일 수 있습니다. aptitude충돌 해결 프로그램 에 대한 샷 튜토리얼을 통해 향상시킬 수도 있습니다 .
Luís de Sousa

2
이 의존성, 또는 일반적인 개념을 설명하지 않지만이 링크, 대화 형 해결 프로그램의 빠른 튜토리얼을 보여 수행합니다 aptitude.alioth.debian.org/doc/en/ch02s03s03.html
overprescribed

1
+1 적성은 GTK3 충돌에 직면하여 베이컨을 구했습니다. apt-get은 전혀 도움이되지 않았습니다.
Chris Laplante

1
내가 좋아하는 것은 sudo aptitude --full-resolver my_package입니다. 그것은 일반적으로 The following packages have unmet dependencies그중 하나를 제공합니다 7) <my_package> [Not Installed](7은 단지 예입니다). 각 단계에서 적성은 새로운 선택을 제공합니다. 나를 위해 일한 것은 먼저 7, 그다음 r 7(설명에 해당 Rejecting the removal of my_package), 그 다음에 n (아니오)를 선택하여 이전 의 선택 이 아니 었습니다.하지만 새로운 선택은 my_package 설치와 함께 일부 패키지의 다운 그레이드를 제공했습니다. 마지막으로 Y(YES)

24

package1 : 종속 : package2 (> = 1.8)이지만 1.7.5-1ubuntu1을 설치해야합니다.

메시지 설명 :

  1. 설치를 완료하려면 package1에 package2가 필요합니다.
  2. package2는 버전> = 1.8에서 사용 가능해야합니다.
  3. 패키지 관리자는 모든 리포지토리를 확인하고 설치할 수있는 버전 1.7.5-1ubuntu1 만 찾았습니다. 1.8보다 작기 때문에 수행 할 수 없습니다

고치다

이 질문에 대한 정답은 없으며 간단한 답변도 없습니다.

이러한 상황이 발생할 수있는 많은 시나리오가 있으며 모든 옵션을 조사하고이 오류로 이어지는 전제 조건을 해결해야합니다.

시나리오 A :

액세스 할 수있는 모든 리포지토리에는 버전> = 1.8의 package2가 없으므로 해당 리포지토리를 찾아야합니다. 버전이 1.8보다 큰 저장소를 찾을 수없는 경우 소스에서 package2를 빌드하고 설치해야 할 수 있습니다. 그런 다음 package1을 설치하십시오.

소스에서 패키지를 작성하는 방법을 알고 싶다면 다른 질문 / 답변을 확인하거나 새 패키지를 게시하십시오.

시나리오 B :

리포지토리에는 버전> = 1.8에 package2가 포함되지만 패키지 관리자는 여전히 이전 버전 (1.7.5)을 설치하려고합니다.

그 이유는 이미 설치된 다른 패키지에서 지원하지 않는 일부 최신 기술에 의해 빌드 된 이후 버전의 package2 때문일 수 있습니다.

전혀 수정하지 못할 수도 있습니다. apt 또는 synaptic을 사용하고 리포지토리에서 사용 가능한 모든 버전의 package2를 찾은 다음 특정 버전> = 1.8을 설치하십시오.

호환되지 않는 다른 패키지가 있고이를 수행하는 경우 package2> = 1.8 설치를 방해하는 다른 모든 패키지에 대한 유사한 오류 메시지 목록이 표시됩니다.

이 경우 더 큰 문제가 있습니다. package2를> = 1.8이어야하는 package1을 설치하려고했지만 버전> = 1.8의 package2를 사용하려면 package3의 버전이 6.7 이상이어야하고 package3 버전 6.3이 있어야합니다.

문제는 패키지 관리자 (APT)가 가능하면 이러한 모든 종속성을 자동으로 해결하려고 시도한다는 것입니다. 불가능하다는 메시지가 표시되면 (질문과 같은 메시지가 표시됨) 신뢰해야합니다.

패키지 관리자를 신뢰하지 않기로 결정하고 문제가 없을 것이라고 확신 할 경우, 필요한 모든 버전의 패키지를 하나씩 강제로 설치하고 확인을 원할 수 있습니다.

시스템 패키지에 대해이 작업을 수행하면 심각한 문제가 발생할 수 있습니다. 시스템에서 자신을 잠그고 중요한 서비스를 차단할 수 있습니다.

시나리오 C :

문제의 원인에 관계없이 항상 수동 컴파일을 설정하고 필요한 패키지를 빌드하고 소스의 정확한 버전에 필요한 모든 패키지를 빌드 할 수 있습니다. 이 옵션을 사용하면 시스템과 충돌하지 않도록 별도의 디렉토리와 시스템 경로에서 빌드 한 내용을 유지할 수 있습니다. 이것은 아마도 가장 깨끗한 해결책 일 수 있으며 때로는 더 빠를 수도 있습니다.

시나리오 D :

패키지 관리자는 패키지에 대한 오래된 정보에 액세스 할 수 있으므로 솔루션을 찾을 수 없습니다. 다른 답변을보십시오.

시나리오 E :

패키지 관리자는 종속성 확인 코드에 버그가 있습니다.

이것이 사실인지 조사한 다음 버그 요청을 발행해야합니다.

...

시나리오 Z :

다른 시나리오가있을 수 있습니다.

예를 들어 패키지 관리자는 잘못된 것일 수 있으며 package1 <1.8 버전에서도 package1이 작동하는지 확인하지 않았으며 사양에서 잘못된 종속성을 설정했습니다.


17

충족되지 않은 종속성과 관련하여 오류가 발생할 때마다 이러한 방법을 따라야합니다.

지시 사항을 따른 후 소프트웨어 설치를 시도하십시오. 이 방법 중 하나가 당신을 위해 작동 해야 합니다

1 . 새로운 명령을 시도하거나 새로운 ppa를 추가하기 전에 이것을 시도하십시오

apt 캐시 정리 :

sudo apt-get clean

사용하지 않는 종속성 정리 :

sudo apt-get autoremove

apt-cache 업데이트

sudo apt-get update

그러면 모든 캐시가 제거되고 새로운 캐시가 다운로드됩니다. 새로운 캐시 패키지와 최신 업데이트를 얻으려면이 작업을 수행해야합니다.

2 . 시도하십시오 sudo apt-get install -f.

아마도 패키지를 제거하고 설치하는 방법에 대한 제안을 할 것입니다.

3 . 서버의 파일이 손상되기 때문에 다음 Download Server에서 변경하십시오 Software Sources.

여기에 이미지 설명을 입력하십시오
여기에 이미지 설명을 입력하십시오
여기에 이미지 설명을 입력하십시오

4 . 또한 종속성이 손상되어 외부 ppa를 추가 한 경우에도 발생합니다.

  • sudo add-apt-repository --remove ppa:someppa/ppappa가 설치된 파일 / 라이브러리 를 입력 한 다음 수동으로 제거

또는

  • ppa 삭제 (설치된 파일도 제거)

    sudo apt-get install ppa-purge   #a one time install 
    sudo ppa-purge ppa:someppa/ppa  
    

도 5 . 4가 아닌 경우 최소한 종속성이 손상 된 것으로 보이는 패키지를 제거하려고 시도한 다음 다시 설치를 시도하십시오. 이것은 꽤 많은 사람들에게 문제가 있다고보고되었습니다.

도 6 . 항상 안정적인 버전의 저장소 / PPA를 추가하십시오.

여기에 이미지 설명을 입력하십시오

7 또한 모든 공식 리포지토리를 활성화해야합니다 (In Software Sources).

여기에 이미지 설명을 입력하십시오

Proposed Updates테스트 / 개발자를 위해 사용하도록 설정하지 마십시오 .

여기에 이미지 설명을 입력하십시오


더그가 말한 것처럼 :

일반적으로이 문제를 해결하는 가장 좋은 첫 번째 단계는 <pkg1>& 의 출처를 식별하는 것입니다 <pkg2>.

또한 대부분의 경우가 아니라면 "<whatever> 설치"는 실제로 "<whatever>가 설치됨"을 의미하므로 아무 것도 작동하지 않으면 제거해야합니다 (5 지점 참조).


수정하기 위해 더 많은 것을 찾아서 계속 추가 할 것 unmet dependencies입니다.


3
@Ashu 고칠 수있는 것 중 하나 는 apt 캐시 (다운로드 한 파일과 저장 한 파일 에 대한 정보를 저장하는 파일 로 구성됨)를 업데이트 apt-get update하지 않는 것 입니다. 패키지 색인 파일 ( 사용 가능한 각 소프트웨어 소스에서 다운로드하여 설치할 수 있는 패키지에 대한 정보로 구성)를 업데이트합니다 . 이전에 말했듯 이 업데이트 하는 것과 동일한 것을 정리하지 않습니다 . 자세한 내용 을 참조하십시오. .deb.debapt-get cleanapt-get updateman apt-get
Eliah Kagan

16

대부분의 경우 패키지를 통해 설치하면 aptitude충족되지 않은 종속성이 해결됩니다. 기본 aptitude패키지가 PC에 설치되지 않았으므로 먼저 실행하여 설치하십시오.

sudo apt-get update
sudo apt-get install aptitude

그때,

sudo aptitude install packagename

예를 들어

    
avinash @ avinash-Lenovo-IdeaPad-Z500 : ~ $ sudo apt-get 설치 우분투 SDK
패키지 목록을 읽는 중 ... 완료
의존성 트리 구축       
상태 정보를 읽는 중 ... 완료
일부 패키지를 설치할 수 없습니다. 이것은 당신이 가지고 있음을 의미 할 수 있습니다
불가능한 상황을 요청했거나 불안정한 경우
일부 필수 패키지가 아직 작성되지 않은 분배
또는 수신에서 제외되었습니다.
다음 정보는 상황을 해결하는 데 도움이 될 수 있습니다.

다음 패키지는 충족되지 않은 종속성이 있습니다.
 ubuntu-sdk : 의존 : qtcreator-plugin-ubuntu 그러나 설치되지 않을 것입니다
E : 문제를 해결할 수 없어서 깨진 패키지가 있습니다.

통해 패키지 설치 aptitude

avinash @ avinash-Lenovo-IdeaPad-Z500 : ~ $ sudo 적성 설치 ubuntu-sdk
다음과 같은 새로운 패키지가 설치됩니다.
  appamor-easyprof {a} appamor-easyprof-ubuntu {a} at {a} 빌드 필수 {a} 
  클릭 {a} 클릭 Apparmor {a} 클릭 Dev {a} 클릭 Doc {a} cordova-ubuntu-2.8 
  cordova-ubuntu-2.8-examples {a} debhelper {a} devscripts {a} dh-apparmor {a} 
  dh-make {a} distro-info-data {a} dpkg-dev {a} dput {a} g ++ {a} g ++-4.8 {a} 
  geoclue-gypsy {a} libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libboost-filesystem1.53.0 {a} 
  libboost-program-options1.53.0 {a} libboost-regex1.53.0 {a} 
  libbotan-1.10-0 {a} libdee-qt5-3 {a} libdistro-info-perl {a} 
  libexporter-lite-perl {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libio-stringy-perl {a} libjs-jquery {a} libjs-sphinxdoc {a} 
  libjs-underscore {a} liblockdev1 {a} libmail-sendmail-perl {a} 
  libparse-debcontrol-perl {a} libpcre3-dev {a} libpcrecpp0 {a} 
  libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5declarative5 {a} 
  libqt5designer5 {a} libqt5designercomponents5 {a} libqt5feedback5 {a} 
  libqt5help5 {a} libqt5location5-plugins {a} libqt5multimedia5 {a} 
  libqt5multimedia5- 플러그인 libqt5multimediaquick-p5 {a} 
  libqt5multimediawidgets5 {a} libqt5organizer5 {a} 
  libqt5qml 그래픽 효과 {a} libqt5script5 libqt5scripttools5 {a} 
  libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} libqt5v8-5-dev 
  libqt5versit5 {a} libqt5versitorganizer5 {a} libqt5webkit5-dev 
  libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++-4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  python3-magic {a} qmlscene qt3d5-dev qtbase5-doc {a} qtcreator {a} 
  qtcreator-doc {a} qtcreator-plugin-ubuntu {a} 
  qtcreator-plugin-ubuntu-common {a} qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-doc-html {a} qtdeclarative5-folderlistmodel-plugin 
  qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin 
  qtdeclarative5-particles-plugin qtdeclarative5-poppler1.0 
  qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin {a} 
  qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin {a} 
  qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin {a} 
  qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5- 윈도우 플러그인 {a} qtdeclarative5-xmllistmodel-plugin 
  qtgraphicaleffects5-doc {a} qtlocation5-dev {a} qtmultimedia5-dev 
  qtmultimedia5-doc {a} qtmultimedia5-doc-html {a} qtscript5-dev 
  qtscript5-doc {a} qtscript5-doc-html {a} qtsensors5-dev {a} qtsvg5-doc {a} 
  qtsvg5-doc-html {a} qttools5-dev qttools5-dev-tools qttools5-doc {a} 
  qtwebkit5-doc-html {a} schroot {a} schroot-common {a} sqlite3 {a} 
  우분투 -html5- 컨테이너 우분투 -html5-sdk {ab} 우분투 -html5- 테마 {a} 
  우분투 -html5- 테마-예제 우분투 -sdk 우분투 -sdk-libs 
  우분투 -sdk-libs-dev {a} 우분투 -ui-toolkit-doc {a} 
  우분투 -ui-toolkit-examples {a} 우분투 -ui-toolkit-theme {a} 
  unity-action-doc {a} upstart-app-launch {a} upstart-app-launch-tools {a} 
  usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
다음과 같은 패키지가 업그레이드됩니다 :
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15 개 패키지 업그레이드, 151 개 새로 설치, 0 개 제거 및 293 개 업그레이드되지 않음
108MB / 126MB의 아카이브를 가져와야합니다. 포장 풀기 후 273MB가 사용됩니다.
다음 패키지는 충족되지 않은 종속성이 있습니다.
 ubuntu-html5-sdk : 의존 : qtdeclarative5-ubuntu-webapps-api (가상 패키지).
                    ubuntu-html5-ui-toolkit에 따라 다르지만 설치되지는 않습니다.
다음 조치는 이러한 종속성을 해결합니다.

     다음 패키지를 현재 버전으로 유지하십시오.              
1) qtcreator-plugin-ubuntu [설치되지 않음]                          
2) ubuntu-html5-sdk [설치되지 않음]                                 
3) ubuntu-sdk [설치되지 않음]                                       

     다음 종속성을 해결하지 않은 상태로 두십시오.                       
4) libhud-client2는 hud를 추천합니다 (= 13.10.1 + 13.10.20131014-0ubuntu1)
5) qtcreator-plugin-ubuntu-common은 qtcreator-plugin-ubuntu를 권장합니다


이 솔루션을 수락 하시겠습니까? [Y / n / q /?] y
다음과 같은 새로운 패키지가 설치됩니다.
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} 빌드 필수 {a} 
  click {a} 클릭 의류 {a} cordova-ubuntu-2.8 debhelper {a} dh-apparmor {a} 
  dh-make {a} dpkg-dev {a} g ++ {a} g ++-4.8 {a} geoclue-gypsy {a} 
  libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libdee-qt5-3 {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libjs-jquery {a} libmail-sendmail-perl {a} libpcre3-dev {a} 
  libpcrecpp0 {a} libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5designer5 {a} 
  libqt5designercomponents5 {a} libqt5feedback5 {a} libqt5help5 {a} 
  libqt5location5- 플러그인 {a} libqt5multimedia5 {a} libqt5multimedia5- 플러그인 
  libqt5multimediaquick-p5 {a} libqt5multimediawidgets5 {a} 
  libqt5organizer5 {a} libqt5qml 그래픽 효과 {a} libqt5script5 
  libqt5scripttools5 {a} libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} 
  libqt5v8-5-dev libqt5versit5 {a} libqt5versitorganizer5 {a} 
  libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++-4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  qmlscene qt3d5-dev qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5- 폴더리스트 모델 플러그인 qtdeclarative5-friends0.2 
  qtdeclarative5-localstorage-plugin qtdeclarative5- 입자 플러그인 
  qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin 
  qtdeclarative5-qtfeedback-plugin {a} qtdeclarative5-qtlocation-plugin 
  qtdeclarative5-qtmultimedia-plugin {a} qtdeclarative5-qtorganizer-plugin 
  qtdeclarative5-qtquick2-plugin {a} qtdeclarative5-qtsensors-plugin 
  qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5- 윈도우 플러그인 {a} qtdeclarative5-xmllistmodel-plugin 
  qtlocation5-dev {a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev {a} 
  qttools5-dev qttools5-dev-tools sqlite3 {a} 우분투 -html5- 컨테이너 
  우분투 HTML5 테마 {a} 우분투 HTML5 테마 예제 ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme {a} upstart-app-launch {a} 
  upstart-app-launch-tools {a} usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
다음과 같은 패키지가 업그레이드됩니다 :
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15 개 패키지 업그레이드, 108 개 새로 설치, 0 개 제거 및 293 개 업그레이드되지 않음
27.1MB / 45.8MB의 아카이브를 가져와야합니다. 포장 풀기 후 104MB가 사용됩니다.
계속 하시겠습니까? [Y / n /?]

귀하의 예제는 설치를 중단하는 적성을 가지고 있습니다. 실제로 아무것도 설치하지 않습니다.
kiri February

2
@AvinashRaj, ..하지만 설치하기 전에 aptitude종속성 문제를 해결해서는 안됩니까?
정확한

예, 대부분의 경우 종속성을 해결합니다.
Avinash Raj

2
만약 시스템이 패키지를 깨뜨렸다면, 그것이 고쳐질 때까지 새로운 설치를 허용하지 않을 것입니다. 그래서 aptitude먼저 문제를 해결하지 않고 어떻게 설치 하겠습니까!
정확한

이 경우 먼저 깨진 패키지를 해결해야합니다. 그렇지 않으면 설치할 수 없습니다 aptitude. 패키지로 인해 오류가 발생하지 않으면 적성을 설치할 수 있습니다.
Avinash Raj

11

내 대답은 위의 릭과 비슷합니다.

사용하여 apt-get clean, apt-get autoclean, apt-get autoremove, apt-get upgrade, apt-get update, apt-get -u dist-upgrade, 등 나를 위해 작동하지 않았다 모두.

apt-get install아래 예제 를 통해 그림을 통해 종속성 트리로 내려 가서이 문제를 해결했습니다 . 제 경우에는 libmagickwand-dev다음 을 설치하고 싶었습니다 .

apt-get install libmagickwand-dev

이 오류가 발생했습니다.

The following packages have unmet dependencies:
 libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed

따라서 apt-get install실패한 종속성 중 하나를 실행 했습니다.

apt-get install libmagickcore-dev

The following packages have unmet dependencies:
 libmagickcore-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libgraphviz-dev but it is not going to be installed

나는 나무 아래로 내려 갔다.

apt-get install libgraphviz-dev

또 다른 오류가 있습니다.

The following packages have unmet dependencies:
 libgraphviz-dev : Depends: libgvc5 (= 2.26.3-10ubuntu1) but it is not going to be installed

다시 한 번 나무를 더 깊게 살펴보십시오.

apt-get install libgvc5

이상한 이유가 있었지만, 이것이 성공했으며 원하는 원래 패키지를 설치할 수있었습니다 apt-get install libmagickwand-dev.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libpathplan4
Suggested packages:
  libgd-tools
The following NEW packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 808 kB of archives.
After this operation, 2,320 kB of additional disk space will be used.
Do you want to continue [Y/n]?

8

훌륭한 답변! 그러나 오늘 제 사건은 당신과 다릅니다. 여기 내 조언이 있습니다.

문제:

우분투 10.10에서 apache2를 설치하지 못했습니다.

rick@wen-VirtualBox:~$ sudo apt-get install apache2

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

 apache2 : Depends: apache2-mpm-worker (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-prefork (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-event (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-itk (= 2.2.16-1ubuntu3) but it is not going to be installed

           Depends: apache2.2-common (= 2.2.16-1ubuntu3) but it is not going to be installed

E: Broken packages

해결책:

내 방법은 종속 패키지를 설치 목록에 추가하는 것입니다.

'sudo apt-get install apache2'가 실패한 경우 ' sudo apt-get install apache2 apache2.2-common '을 시도하십시오 .

보다? apache2.2-common은 이전 단계의 오류 로그에서옵니다.

마지막으로 다음과 같은 종속성 체인이 있음을 발견했습니다.

 apache2.2-common <-- apache2.2-bin <-- libaprutil1-ldap <-- libaprutil1

처음 3 개 패키지의 경우 apt-get log에서 '설치하지 않을 것'이라고 말했습니다.

그러나 마지막 패키지의 경우 'libaprutil1-ldap : 종속 : libaprutil1 (= 1.3.9 + dfsg-3build1)이지만 1.3.9 + dfsg-3ubuntu0.10.10.1이 설치됩니다'를 표시합니다.

내 라이브러리에 다른 버전이 있으므로 다음과 같습니다.

sudo apt-get remove libaprutil1

sudo apt-get install apache2

지금은 괜찮아요.


이 답변 위의 다른 하나의 결합 된 읽기 여기가 종속성 문제가 무엇인지에 대한 이해를 제공합니다. 여기에 다른 답변이 '일반화 된'솔루션을 제공하면 이해할 수 있습니다.
VenkiPhy6

7

충족되지 않은 종속성은 무엇입니까

우분투에서 패키지는 소프트웨어가 구축, 배포 및 설치되는 기본 방법입니다. 아주 간단하게 패키지는 소프트웨어를 처음부터 다운로드, 빌드 및 설치하는 대신 사용할 수 있습니다. 표준 "소스에서 빌드"모델에 비해 소프트웨어의 설치, 제거, 모니터링 및 상호 작용 처리 측면에서 많은 이점을 제공합니다. 우분투는 중앙 포장 시스템을 사용합니다. 즉, 모든 패키지는 다른 패키지에 따라 다릅니다. 패키지를 설치할 때 종속성이 설치됩니다. 패키지의 종속성을 설치할 수없는 경우 충족되지 않은 종속성 오류가 발생합니다

가능한 원인들

1.Computer is not connected to the Internet
2.The repository containing the depandancy package is not enabled
3.Package catalog is not updated
4.The version of the depandancy in the current repository is old
5.Software index is broken
6.The depandancy is not available for ubuntu

TRy로 해결하자

  1. 인터넷에 연결 : D
  2. 모든 기본 리포지토리가 활성화되어 있는지 확인하십시오

    -> Software Center편집-> 소프트웨어 소스-> 기타 소스-> 추가 " 에서 쉽게 추가 할 수 있습니다.

    -> 시작하십시오 Software Center.

    ->. 패널에서로 이동하여을 Edit선택하십시오 Software Sources.

    편집 소프트웨어 소스

    -> 모든 리포지토리를 확인하십시오 여기에 이미지 설명을 입력하십시오

  3. 소프트웨어 카탈로그 업데이트

    오른쪽 상단 아이콘을 클릭하고 메뉴에서 업데이트 가능한 항목을 선택하십시오.
    여기에 이미지 설명을 입력하십시오

확인 버튼을 누릅니다 여기에 이미지 설명을 입력하십시오

터미널을 열고 입력하는 4.type ctrl+ alt+tsudo apt-get install -f

5. ppa-purge ppa-purge를 사용하여 최근에 추가 한 ppa를 제거하십시오 Ppa-Purge 설치

이 프로그램은 소프트웨어 소스에서 PPA를 비활성화하고 시스템을 공식 우분투 패키지로 되돌립니다. PPA에서 새 버전을 테스트 한 후이를 사용하여 시스템을 정상으로 되돌릴 수 있습니다.

통사론

sudo ppa-purge ppa:<repository-name>/<subdirectory>

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. 소프트웨어 센터를 열고 소프트웨어를 설치하십시오. 다음 대화 상자가 나타나면 복구 버튼을 누르고 기다리십시오.

여기에 이미지 설명을 입력하십시오

다른 유형 ctrl+ alt+는 t터미널을 열고 다음을 입력하는 sudo apt-get install -f화면의 지시를 따릅니다

여전히 오류가 발생하면 askbuntu 에 문의하십시오.


@ jrg 나는 이미 내 대답에 그것을 가지고 있습니다 ... 모든 대답이 같은 것을 가져야합니까?
Ashu

2
@Ashu 나는 사람들이 정식 대답을 할 수 있도록 노력하고있어 - 내가 얘기를 해 모두를 지분에 500 담당자 현상금이 있기 때문에, 나는 다른 사람을 자신의 답변 특정 사람을 돕는하지만 무시와 즐겨 찾기를 재생하고 싶지 않아 . : s
jrg

5

... 'build-dep'을 잊지 마세요

위의 답변 외에도-나는이 접근법을 언급 한 사람이 아무도 없다는 것을 인정해야합니다.이 접근법은 apt-get 충돌이나 해결되지 않은 패키지 (또는 시스템이 완고한 경우 .... 하!).

편집 : sudo dpkg -r [package]꽤 강력한 제거 기능이 있으므로 사용 을 권장합니다. 이후 apt-get함께와 작품 dpkg수단, apt-get순종 dpkg기능.

  sudo dpkg -r [package]
  sudo apt-get build-dep [package]  
  ## pre-install all deps for the package

apt-get을 호출하여 시스템에 설치하려는 실패한 패키지를 제거한 다음 build-dep 명령을 호출합니다. apt-get은이 패키지에 속한 종속 항목을 개별적으로 가져 와서 설치합니다. 이전의 패키지. 그런 다음 apt-get install을 호출하십시오.

sudo apt-get install [package]

.... '아! "Uncle!"이라고 소리 칠 때까지 팔을 비틀어 보자. '

이것은 오랜 기간 동안 리눅스를 사용하는 동안 거의 발생하지 않았지만 나는이 접근법을 거의 사용하지 않고 성공했습니다. 이것은 내가 한 달 전에 패키지와 관련된 최근의 투쟁에 대한 예 mysql-client/mysql-server이다. --sqlp-grant-tables techqiue를 통해 mysql-server를 사용하여 루트 암호를 재설정하지 않은 수십 번의 시도가 실패했지만 마침내 'Uncle!'

sudo dpkg -r mysql-server mysql-client
sudo apt-get autoclean  
## this dumps any copy of existing package to prevent apt-get from "re-using" it.
sudo apt-get build-dep mysql-client   
 ## one package at a time, starting with client first
sudo apt-get install mysql-client
sudo apt-get build-dep mysql-server
sudo apt-get install mysql-server

apt-get autoclean 이 솔루션의 핵심


3

64 비트 Multiarch Ubuntu 시스템에서 i386 패키지를 설치하는 동안

많은 i386 패키지에 의존하는 패키지를 설치하려는 경우 sudo dpkg --add-architecure i386명령 을 실행하여 i386 아키텍처를 추가하지 않으면 위에서 언급 한 종속성 오류가 발생합니다 .

예:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 skype : Depends: skype-bin but it is not installable
E: Unable to correct problems, you have held broken packages.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype-bin:i386 sni-qt:i386 zlib1g:i386
Suggested packages:
  nas:i386 glibc-doc:i386 locales:i386 rng-tools:i386 libglide3:i386
  gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 libvisual-0.4-plugins:i386
  gstreamer-codec-install:i386 gnome-codec-install:i386
  gstreamer1.0-tools:i386 gstreamer1.0-plugins-base:i386 jackd2:i386
  pulseaudio:i386 libqt4-declarative-folderlistmodel:i386
  libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
  libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libicu48:i386 libthai0:i386 qt4-qtconfig:i386
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype skype-bin:i386 sni-qt:i386 zlib1g:i386
0 upgraded, 115 newly installed, 0 to remove and 7 not upgraded.
Need to get 63.7 MB of archives.
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

가능한 원인 중 하나 일 수 있음에 동의합니다. vlcskype를 설치 한 후 다른 패키지 (예 :) 를 설치하려고했을 때 충족되지 않은 종속성이 있습니다. :amd64패키지 이름 끝에 오류를 일으키는 추가하여 비슷한 상황에서 나왔습니다 . 어떻게 회복 했습니까? 가장 좋은 해결책은 무엇입니까?
souravc

이것이 왜 다운 보트인지 확실하지 않습니다. 32 비트 와인을 설치하는 데 필요한 것입니다. BTW, --add-architecture에 오타가 있으며 --add-architecture 후에 apt-get upgrade를 실행하도록 미리 알림을 추가해야합니다.
Matt Chambers

1

이 스레드 (및 다른 스레드)에서 언급 한 모든 방법에 가까이 노력한 후에 나는 포기했습니다. 데비안 레니를 스퀴즈로 업그레이드했는데, PHP5, Apache, MySQL 등이 설치를 원하지 않는 이유를 알 수 없었습니다. 결국 나는 사용하려고

sudo apt-get purge apache2
sudo apt-get purge php5
sudo apt-get purge mysql-server
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install apache2 php5 mysql-server

.. 그리고 그것은 완벽하게 작동했습니다! ( 가, 조심 수있는 당신의 설정 파일을 파괴, 그래서 그들을 백업! )


언급 된 패키지가 설치되어 있지 않으면 문제가 해결되지 않습니다.
Braiam

1

나를 위해 일한 것은 종속성을 다시 설치하는 것입니다. 설치된 버전이 최신 버전 (시냅틱이 보여주는 것)보다 최신 인 경우입니다. 실제로 시냅틱이 의존성 패키지를 다운 그레이드하도록 허용하는 것은 동일합니다.

또 다른 효과는 "적성"을 사용하는 것입니다.

root@arau:~# aptitude install libgfortran3
The following NEW packages will be installed:
  libgfortran3{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 250 kB of archives. After unpacking 1 230 kB will be used.
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is installed.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgfortran3 [Not Installed]                       



Accept this solution? [Y/n/q/?] n
Internal error: found 2 (choice -> promotion) mappings for a single choice.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

      Downgrade the following packages:                                        
1)      cpp-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
2)      gcc-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
3)      gcc-4.8-base [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
4)      libasan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
5)      libatomic1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
6)      libgcc-4.8-dev [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]
7)      libgomp1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
8)      libitm1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
9)      libquadmath0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
10)     libstdc++6 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
11)     libtsan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      

Accept this solution? [Y/n/q/?] y

그것은 기본적으로 당신이 여기에서 최고 등급의 답변에서 철회 할 수있는 것과 새로운 것을 아무것도 아닙니다 ...
JoKeR

1
예, 그러나 수십억 개의 솔루션이 있습니다. 저는 단지 나를 위해 일한 것을 언급했습니다.
Bob Yoplait

0

다음과 같은 오류가 발생하는 경우 :
여기에 이미지 설명을 입력하십시오

이것은 패키지가 이미 설치되어 있지만 작동해야하는 다른 패키지를 모두 설치하지 않았 음을 나타냅니다. 다음을 실행하여이 문제를 해결할 수 있어야합니다.

sudo apt-get -f install

이 명령은 충족되지 않은 종속성을 자동으로 설치해야합니다.

또는 이와 같은 것 (관련 패키지와 함께) :

sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools

그러나 이런 종류의 오류가 발생하면 : 패키지 / 패키지를 설치할 수 없거나 설치 후보가 없습니다.

그런 다음 여기 또는 여기 에 설치 방법을 검색 할 수 있습니다 .
위의 예, 당신은 같은 페이지를 찾을 수 있어야 다음 사용 PPA를 , 또는 설치 32 비트에 대한 뎁 , 또는 64 비트에 대한 뎁을 .

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