리눅스/Debian or Ubuntu

패키지 목록 업데이트, 특정 패키지 업그레이드, 기존 패키지 전체 업그레이드, 의존성(=종속성) 확인 업그레이드

씨실과 날실 2018. 10. 20. 10:00

이전 포스트에서 저장소를 수정했으니 이제 저장소 변경을 우분투에 확인시키고 저장소 내 패키지 목록을 업데이트하고 패키지들을 업그레이드할 차례입니다.

저장소 패키지 목록 업데이트

sudo apt update

먼저 저장소 패키지 목록을 업데이트합니다.

study@study-VirtualBox:~$ sudo apt update

그럼 아래 그림처럼 나옵니다.

사실 처음 위 명령을 실행하면 위 그림처럼 간단하게 끝나지 않습니다.

스크롤이 길게 생길 정도록 쭈루룩 과정이 길게 이어집니다.

물론 마지막 안내는 똑같습니다.

모든 패키지가 최신이라는 문구가 나오거나 위 그림처럼 몇개의 패키지가 업그레이드되었으니 apt list --upgradable을 실행해 그것들을 확인하라는 문구가 나옵니다.

패키지를 업그레이드 하기 전에 업그레이드 가능한 패키지를 확인하는 습관을 들이도록 합니다. 왜냐하면 확인도 하지 않고 무조건 모두 업그레이드했다가 기존의 프로그램 혹은 환경과 충돌을 일으키는 경우가 있기 때문입니다.

apt list --upgradable

업그레이드 가능한 패키지 목록을 확인해봅시다.

study@study-VirtualBox:~$ apt list --upgradable

아래와 같이 업그레이드 가능 패키지 목록이 나올 겁니다.

업그레이드 방식은 둘로 나뉘게 됩니다.

선택적 업그레이드와 전체 업그레이드 입니다.

업그레이드 가능 패키지 확인은 시스템에 변경을 주는 명령이 아니므로 앞에 sudo 명령어를 붙일 필요 없지만 패키지 설치, 업그레이드, 제거 등은 시스템에 변화를 주는 명령이므로 반드시 sudo 명령을 붙여 실행해야 합니다.

만약 그렇지 않으면 다음과 같은 문구가 나옵니다.

E: 잠금 파일 /var/lib/dpkg/lock 파일을 열 수 없습니다 - open (13: 허가 거부)
E: 관리 디렉터리를 (/var/lib/dpkg/) 잠글 수 없습니다. 루트 사용자가 맞습니까?

위 그림에서 녹색으로 표시된 것이 패키지 이름입니다.

특정 패키지 업그레이드

sudo apt install --only-upgrade 패키지명

그 중 두개만 선택해 업그레이드 해봅시다.

study@study-VirtualBox:~$ sudo apt install --only-upgrade nautilus nautilus-data

그럼 아래와 같이 나옵니다.

위 그림에 나타난 안내의 내용을 자세히 풀어서 설명해드리겠습니다.

저는 nautilus라는 패키지와 nautilus-data라는 패키지 두개를 선택해 업그레이드하라는 명령을 실행했습니다.

다음의 추가 패키지가 설치될 것입니다 :
  libnautilus-extension1a
제안하는 패키지:
  brasero gnome-sushi tracker
다음 패키지를 업그레이드할 것입니다:
  libnautilus-extension1a nautilus nautilus-data
3개 업그레이드, 0개 새로 설치, 0개 제거 및 7개 업그레이드 안 함.
0 바이트/893 k바이트 아카이브를 받아야 합니다.
이 작업 후 4,096 바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n]ㄱ

라는 문구가 나왔네요.

다음의 추가 패키지가 설치될 것입니다 :
  libnautilus-extension1a

이 문구는 제가 업그레이드하라고 명령 내린 패키지 중 어떤 것이 의존성이 있어 반드시 같이 업그레이드 혹은 설치를 해야 한다는 이야기입니다.

제안하는 패키지:
  brasero gnome-sushi tracker

이건 우분투에서 이들 패키지를 설치할 것을 추천하는 것입니다. 그렇지만 이것은 제안을 하는 것일 뿐 꼭 설치할 필요는 없는 겁니다.

다음 패키지를 업그레이드할 것입니다:
  libnautilus-extension1a nautilus nautilus-data
3개 업그레이드, 0개 새로 설치, 0개 제거 및 7개 업그레이드 안 함.
0 바이트/893 k바이트 아카이브를 받아야 합니다.
이 작업 후 4,096 바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n]

이것은 제가 따로 설명해 드릴 필요 없을 겁니다.

계속 하시겠습니까? [Y/n] 물음에 y를 눌러 설치합니다.

설치 완료되면 위 그림처럼 나옵니다.

그리고 설치 진행과정에는 진행률을 표시해 진행 정도를 알려줍니다.

기존 패키지 전체 업그레이드

sudo apt upgrade

전체 패키지 업그레이드는 명령어가 간단합니다.

study@study-VirtualBox:~$ sudo apt upgrade 
앞서 특정 패키지 업그레이드에서 3개 패키지를 설치했으므로 7개가 설치될 것입니다.

y를 눌러 진행합니다.

완료가 되면 위와 같이 나옵니다.

다시 패키지 목록 업데이트를 실행해봅시다.

이렇게 나올 겁니다. 그럼 패키지 업그레이드는 완료된 것입니다.

중요한 것은 이 명령은 기존의 패키지를 업그레이드하되, 기존 패키지를 제거하거나 다른 새로운 패키지를 설치하지는 않습니다.

의존성(=종속성) 확인 업그레이드

sudo apt full-upgrade

study@study-VirtualBox:~$ sudo apt full-upgrade

위 명령은 기존의 패키지를 업그레이드할 때 패키지 간의 종속성을 확인하여 기존의 패키지를 제거하기도 하고, 다른 패키지를 설치하기도 합니다.

예전에는 같은 역할을 sudo apt dist-upgrade가 맡았었습니다. 물론 호환성을 위해 지금도 이 명령을 사용할 수 있습니다만 점차 sudo apt full-upgrade가 세를 불려가고 있습니다.