라즈베리파이, 라즈비안 버스터 업그레이드 할 때 오류 해결 방법 / 멀티부팅 – 베리부트 사용 시 업그레이드 문제
라즈베리 파이를 사서 테스트 한다고 사용을 하다가, 몇 개월 간 사용 하지 않았었다. 방금 찾아보니, 6개월 이상은 된 듯하다. 처음 샀던 게 라즈베리 파이 제로 더블유(Raspberry Pi Zero W)이고, 간단히 리뷰를 했었던 글이 있는데, 찾아보니 작년에 작성했던 라즈베리파이 제로 W, 크기는 너무 마음에 드는데... Raspberry Pi Zero W @ 2019.1.15 글이었다.
그러다가 최근에 사용을 해보려고 찾아보니, 라즈비안 스트레치 (Raspbian Stretch) 였던 게 업그레이드가 되어서 버스터(Raspbian Buster)가 라즈베리파이 공식 홈페이지에 다운로드 페이지에 있는 것을 볼 수 있었다.
라즈베리파이 공식 홈페이지의 라즈비안 다운로드 페이지: https://www.raspberrypi.org/downloads/raspbian/
멀티부팅을 위해 베리부트 사용 시 업그레이드 문제.
현재 사용하고 있는 라즈베리 파이 3와 파이 제로 W 등에 깔려 있는 게 라즈비안 스트레치인데, 문제는 멀티부팅을 한다고 베리부트(berryboot)를 이용하고 있는 탓에 업데이트를 하니, 베리부트가 망가져 버려서 사용할 수가 없어져 버렸다.
찾아보면 방법이 있을 지도 모르겠지만, 어차피 테스트용으로 사용한 거라 지워도 별 상관없는 터라 편하게 그냥 지우고 다시 깔았다. 찾아보니, 베리부트도 내가 사용하던 건 구버전이어서 라즈비안 버스터와 호환성 여부도 알 수가 없었기 때문이다.
라즈베리파이는 PC에서 흔히 사용되는 하드디스크가 아닌 마이크로SD 카드를 하드디스크처럼 사용하기 때문에 마이크로SD 카드를 빼서 운영체제를 새로 설치하면 된다.
물론 기존에 설정된 것들이 모두 없어져서 초기 설정 상태로 돌아가기 때문에 필요한 것은 다시 설정해줘야 한다.
라즈비안 버스터 업그레이드 할 때 생긴 오류.
라즈베리 파이 3와 파이 제로 W가 여러 개 있어서 그 중에 몇 개는 업그레이드를 해봤었다. 그런데 이상하게 오류가 생기는 경우가 있었다.
보통 sudo apt-get을 이용해 새로운 프로그램을 설치할 때 버전 호환성 등의 이유로
sudo apt-get update && sudo apt-get upgrade
를 하라고 권유를 한다.
어떤 강좌나 튜토리얼을 보느냐에 따라 다를 수 있겠지만, 구글닷컴을 이용해서 영문으로 검색해보면, 그렇게 권유하는 강좌나 튜토리얼을 쉽게 볼 수 있었다.
그렇게 알고 있었던 터라 새로 설치한 라즈비안 버스터에
sudo apt-get update
sudo apt-get upgrade
를 했더니, 아래와 같은 오류가 나면서 업그레이드가 중단 되었다.
....
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:
vlc-bin : Depends: libvlc-bin (= 3.0.8-0+deb10u1+rpt1) but 3.0.8-0+deb10u1+rpt7
is to be installed
vlc-plugin-skins2 : Depends: vlc-plugin-qt (= 3.0.8-0+deb10u1+rpt7) but 3.0.8-0
+deb10u1+rpt1 is to be installed
E: Broken packages
위에 메시지를 보면, 소프트웨어 패키지를 설치 못 하는데, 그 이유는 불가능한 걸 업그레이드 요청했거나, 불안정한 배포 버전(Linux distros)이어서 요청한 소프트웨어 패키지가 해당 배포 버전에서는 만들어지지 않았거나, 이동(없어진??)해서 없어서 라고 한다.
처음에는 이 메시지가 참 황당하게 느껴졌었다. 왜냐하면, 새로 설치한 라즈비안 버스터여서 불안정한 버전일 리도 없고, 설마 다운 받다가 중간에 오류가 섞인 채로 받아졌다고 하기에도 좀 애매한 면이 있어서 였다.
어쨌든 처음에는 아래에 raspbian buster upgrade vlc problem 이라는 형태로 구글닷컴에 검색을 했더니, 구버전인 제시(Jessie)도 보이고, 스트레치(Stretch)도 보여서 무척 헷갈렸다.
업그레이드시 sudo apt-get upgrade가 아닌 sudo apt full-upgrade를 이용하면 문제 해결.
이렇게 저렇게 검색하다가 찾게 된 것이 라즈베리파이 포럼에 글이었다.
[Solved] Broken packages - Raspberry Pi Forums: https://www.raspberrypi.org/forums/viewtopic.php?t=261822
첫 번째 글 마지막에
'sudo apt-get purge vlc', 'autoremove', 'update', 'upgrade', 'autoremove', 'install vlc' seems to have resolved the issue.
''안에 있는 명령어들을 입력하면 된다는 것 같은 데, 상당히 복잡해 보여서, 다른 사람의 글을 읽었다.
그러다가 보니, 라즈비안 공식 문서에서
sudo apt get
이 아닌,
sudo apt full-upgrade
를 사용하길 권한다는 글을 찾을 수 있었다.
그래서 라즈비안 업데이트와 업그레이드에 대한 라즈베리파이 공식 문서를
Updating and upgrading Raspbian - Raspberry Pi Documentation - https://www.raspberrypi.org/documentation/raspbian/updating.md
보니,
sudo apt update
sudo apt full-upgrade
를 이용하라는 걸 볼 수 있었고,
아래처럼 브로큰 패키지(Borken packages) 오류가 나지 않고, 정상적으로 업그레이드가 잘 되었다.
즉,
sudo apt-get upgrade
는 과거에 사용하던 스타일로--물론 지금 사용해도 되는 걸로 보이긴 하지만, 호환성 등을 생각한다면,
앞으로는
sudo apt full-upgrade
를 이용하길 권한다.
공식 문서에 설명된 대로 따라하는 게 가장 안정적인 방법이라고 할 수 있을 것이기 때문이다.