Raspbian 패키지 업그레이드 (apt-get upgrade) 오류

2016. 9. 4. 15:05

쉽게 생각했던 설치된 패키지들의 업그레이드 시 발생한 오류 해결 경험을 공유합니다.


apt-get (Advanced Packaging Tool)은 리눅스 패키지를 관리하는 매우 편리한 툴입니다

이 툴 덕분에 설치된 패키지들의 업그레이드는 매우 쉬운 두 명령어의 조합으로 가능하죠.


apt-get은 /etc/apt/sources.list 에 패키지의 index를 관리합니다.

index는 사용하고 있는 페키지와 버젼 정보 등을 담고 있는데요.

아래 명령을 통해 index정보를 업데이트 할 수 있습니다.


sudo apt-get update


index 정보가 업데이트 되었으므로 이를 바탕으로 패키지를 업그레이드합니다.


sudo apt-get upgrade


보통은 위 두 명령어로 간단하게 리눅스 패키지들의 업데이트가 가능한데요.

저는 아래와 같은 unmet dependencies 라는 오류에 부딪혔습니다.


apt-get upgrade 오류: unmet dependencies(libperl, perl)


안내 문구에는 -f 라는 옵션을 사용하면 해결될 것처럼 보입니다.

You might want to run ~ : might는 상당히 조심스러운 권고를 의미합니다.

-f 라는 옵션은 'Force(강제)'를 의미하는 것으로 위험성을 내포하기 때문인데요.

git과 같은 형상관리툴에서 쉽게 -f를 사용하다가 혼난 경험이 있습니다.

하루 고생해서 작성한 코드를 날려먹었죠. (심지어 다른 분의 코드도... ㅜ)

그 이후에는 -f 라는 옵션은 최후의 수단으로만 사용합니다.

-f 쓰기 싫다는 사설이 길었네요.


그 아래 오류의 원인에 대한 자세한 설명이 나옵니다.

unmet dependencies 라는 오류입니다.

현재 설치된 패키지 중 libperl5.20과 perl 패키지에 오류가 났네요.

오류를 보면 두 패키지가 의존하고 있는 패키지들 버젼이 낮기 때문임을 알 수 있습니다.

아래 명령을 이용하여 의존 패키지들을 수동으로 업데이트 해주면 오류가 해결됩니다.


apt-get download { 다운로드할 패키지 명 }

sudo dpkg -i { 다운로드 된 패키지 deb 파일 명 }


perl-base 패키지 수동 다운로드 및 업데이트


저의 경우 perl-base와 perl-modules를 위와 같이 설치하였습니다.

그 이후에 정상적으로 모든 패키지들의 업데이트를 완료할 수 있었죠.

무서운 -f 옵션을 사용하지 않구요.


최신 버젼이 늘 좋은 것은 아니지만 꾸준한 업데이트는 장비에 대한 애정입니다. ^^

TechTrip IT Tech/RaspberryPi