보류 된 깨진 패키지를 수정하는 방법?


21

우분투 14.04.2에 libssl-dev를 설치하려고합니다

$ make
fatal error: openssl/sha.h: No such file or directory
compilation terminated.

$ sudo apt-get install libssl-dev
The following packages have unmet dependencies:
 libssl-dev : Depends: zlib1g-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt-get install zlib1g-dev
The following packages have unmet dependencies:
 zlib1g-dev : Depends: zlib1g (= 1:1.2.3.4.dfsg-3ubuntu4) but 1:1.2.8.dfsg-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

보류 된 패키지를 제거하고 올바른 설치 방법은 무엇입니까?


마지막으로 언제 sudo apt update그리고 / 또는 sudo apt upgrade?
DopeGhoti

안녕하세요, 각 단계 사이에 두 가지를 모두 수행했습니다.
Sam Healey

답변:


18

먼저 다음을 입력하십시오. sudo dpkg --configure -a

이것은 깨진 종속성을 수정하는 데 먼 길을 갈 것입니다. 충분하지 않으면 다음을 시도하십시오. sudo apt-get install -f

그런 다음 정리하고 업데이트하십시오. sudo apt-get clean && sudo apt-get update

그런 다음 업그레이드하십시오 sudo apt-get upgrade (예 : 'y')

일부 패키지가 "보류되었다"는 메시지가 표시되면 다음을 수행하십시오.

sudo apt-get dist-upgrade

이제 다음 두 명령을 수행하십시오.

sudo apt-get purge zlib1g-dev
sudo apt-get autoremove

그런 다음 입력하면 어떻게되는지 확인하십시오. sudo apt-get install libssl-dev

여전히 작동하지 않으면 다음을 시도하십시오.

sudo aptitude install libssl-dev zliblg-dev=1:1.2.8.dfsg-1ubuntu1

그래도 작동하지 않으면 Synaptic Package Manager를여 십시오 (Launcher에 있어야합니다. 찾을 수 없으면 터미널에 입력하십시오 synaptic-pkexec).

를 검색하십시오 zlib1g-dev. zlib1g-dev 옆의 상자가 녹색이 아닌 경우 해당 상자를 클릭하고 "설치 표시"를 선택하십시오. 여러 버전이 표시되면을 선택하십시오 1:1.2.8.dfsg-1ubuntu1. 그런 다음을 검색하십시오 libssl-dev. libssl-dev 옆의 상자가 녹색이 아닌 경우 해당 상자를 클릭하고 "설치 표시"를 선택하십시오.

그런 다음 "적용"을 선택하십시오.


답장을 보내 주셔서 감사합니다. 위의 모든 작업을 수행했으며 원래 게시물과 동일한 오류가 발생했습니다. 업그레이드를 실행했을 때 다음 메시지가 나타납니다. linux-generic-lts-utopic linux-headers-generic-lts-utopic linux-image-generic-lts-utopic 0 업그레이드, 0 새로 설치, 0 제거 및 3 업그레이드되지 않은 패키지.
Sam Healey

무엇을 제공 apt-cache policy zlib1g-dev하고grep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list

@Bahamut 정말로 "-P"를 의미합니까? 나를 위해, 나는 얻는다E: Command line option 'P' [from -P] is not known.
gracious1

@ SamHealey 나는 대답을 다소 수정했습니다. 내가 제안한 것을 시도하고 어떻게 진행되는지 알려주십시오.
gracious1

1
@Bahamut 그래픽 프로그램으로 sudo가없는 이유는 무엇입니까?
gracious1

2

패키지와 관련된 모든 파일을 찾아서 제거한 다음 다시 설치해야합니다.

sudo dpkg --list
sudo apt-get purge "file-name"

모든 파일에 대해 두 번째 명령을 반복 한 다음 다시 설치하십시오.


0
sudo aptitude install lib_name_depending

libcurl4-openssl-dev우분투 14.04LTS에 설치 하고 싶을 때 나를 위해 일했습니다 .

내 컴퓨터에 여러 종속 라이브러리가 설치되어 있지 않고 aptitude 도구를 사용하여 설치할 수있는 필수 라이브러리 / 패키지를 대화 형으로 설치 / 다운 그레이드 할 수 있습니다 libcurl4-openssl-dev.

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