패키지 업그레이드
이 문서는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
목차
요약
시스템에 설치된 패키지를 업그레이드하는 방법(apt upgrade 명령어 및 시냅틱 패키지 관리자 이용).
키워드
- apt update
- apt list --upgradable
- apt upgrade
- 시냅틱 패키지 관리자(synaptic package manager)
주의 사항
시스템에 설치한 패키지를 최신 버전으로 유지하는 것은 보안을 향상시킬 수 있으며, 최신의 프로그램을 사용할 수 있다는 장점이 있습니다. 하지만 패키지를 업그레이드하기 전에, 패키지를 업그레이드한 후 기존 패키지와 호환성 문제가 없는지 충분히 고려해야 합니다. 만약 젠 하이퍼바이저(Xen hypervisor)를 설치한 시스템(domain-0)에서 커널을 업그레이드하면, 젠 하이퍼바이저가 제대로 작동하지 않을 수도 있습니다.
또한 버추얼박스 환경에서 게스트 확장 기능을 설치한 가상머신의 커널을 업그레이드하면, 리눅스 가상머신이 제대로 동작하지 않을 수도 있습니다. 왜냐하면 버추얼박스의 게스트 확장은 '특정한' 커널 헤더에 의존하기 때문입니다.
예를 들어 데비안 9.5(호스트)에 설치한 버추얼박스(v5.2.18 r124319 (Qt5.7.1)) 환경에서, 리눅스 가상머신(데비안 9.5 · 게스트)이 게스트 확장 기능을 사용하려면, 특정 패키지(linux-headers-amd64, linux-headers-4.9.0-7-amd64)를 설치해야 합니다. 하지만 아래처럼 커널 버전을 업그레이드하면 버추얼박스의 리눅스 가상머신이 제대로 작동하지 않습니다.
westporch@test-vm-01:~$ uname -a
- Linux test-vm-01 4.9.0-7-amd64 #1 SMP Debian 4.9.110-3+deb9u2 (2018-08-13) x86_64 GNU/Linux
+ Linux test-vm-01 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64 GNU/Linux
버추얼박스에 설치한 가상머신의 커널 버전을 업그레이드한 후, 리눅스 가상머신이 제대로 동작하지 않는 구체적인 증상은 다음과 같습니다.
- 부팅시 GUI 모드가 아닌 콘솔 모드로 부팅됨(콘솔 모드에서 startx를 입력하면 GUI로 접근할 수 있음)
- 양방향 클립보드 공유(호스트↔게스트)를 설정했음에도 불구하고, 가상머신(호스트)에서 게스트로 클립보드 공유가 안 됨(그 반대는 가능함)
- GUI를 사용하다가 저절로 로그아웃됨(화면호보기 작동시 화면 잠금 기능은 꺼두었음)
- 저절로 로그아웃된 후, 다시 로그인하면 'Could not acquire name on session bus' 메시지가 발생함.
- 위와 같은 화면에서 '닫기' 버튼을 누르면 시스템이 멈춤.
- 이때 Control + Alt + F1를 누르면, 정상적으로 GUI 화면으로 접근할 수 있음.
위와 같은 문제의 원인은 커널을 업그레이드 한 후에 버추얼박스의 게스트 확장이 제대로 작동하지 않기 때문이라고 생각합니다.
westporch@test-vm-01:~$ sudo dpkg -l | grep linux-headers* ii linux-headers-4.9.0-7-amd64 4.9.110-3+deb9u2 amd64 Header files for Linux 4.9.0-7-amd64 ii linux-headers-4.9.0-7-common 4.9.110-3+deb9u2 all Common header files for Linux 4.9.0-7 ii linux-headers-4.9.0-8-amd64 4.9.110-3+deb9u6 amd64 Header files for Linux 4.9.0-8-amd64 ii linux-headers-4.9.0-8-common 4.9.110-3+deb9u6 all Common header files for Linux 4.9.0-8 ii linux-headers-amd64 4.9+80+deb9u6 amd64 Header files for Linux amd64 configuration (meta-package)
패키지를 업그레이드하는 방법
방법①: apt upgrade
패키지 목록 업데이트
westporch@test-vm-01:~$ sudo apt update (.. 중략 ..) 내려받기 91.0 k바이트, 소요시간 0초 (111 k바이트/초) 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 1 package can be upgraded. Run 'apt list --upgradable' to see it.
업그레이드 가능한 패키지 확인
westporch@test-vm-01:~$ sudo apt list --upgradable Listing... 완료 linux-image-amd64/stable 4.9+80+deb9u6 amd64 [upgradable from: 4.9+80+deb9u5] N: There is 1 additional version. Please use the '-a' switch to see it
apt list --upgradable 명령에 -a 옵션을 추가(즉 apt list --upgradable -a)하면, 업그레이드할 수 있는 패키지의 정보(아래 녹색 부분)를 확인할 수 있습니다.
제가 사용하는 시스템에서, 업그레이드할 수 있는 패키지는 오직 커널뿐입니다. 상황(시스템에 설치한 패키지, 패키지를 업데이트하려는 시점)에 따라 업그레이드할 패키지가 많거나 적을 수도 있고 아예 없을 수도 있습니다. 업그레이드할 패키지가 없다는 것은 안 좋은 의미가 아닙니다. 최신 버전의 시스템을 사용하고 있다는 좋은 뜻입니다.
westporch@test-vm-01:~$ sudo apt list --upgradable -a
Listing... 완료
linux-image-amd64/stable 4.9+80+deb9u6 amd64 [upgradable from: 4.9+80+deb9u5]
- N: There is 1 additional version. Please use the '-a' switch to see it
+ linux-image-amd64/stable,now 4.9+80+deb9u5 amd64 [installed,upgradable to: 4.9+80+deb9u6]
패키지 업그레이드
westporch@test-vm-01:~$ sudo apt upgrade 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 업그레이드를 계산하는 중입니다... 완료 다음 새 패키지를 설치할 것입니다: firmware-linux-free irqbalance linux-image-4.9.0-8-amd64 다음 패키지를 업그레이드할 것입니다: linux-image-amd64 1개 업그레이드, 3개 새로 설치, 0개 제거 및 0개 업그레이드 안 함. 39.1 M바이트 아카이브를 받아야 합니다. 이 작업 후 193 M바이트의 디스크 공간을 더 사용하게 됩니다. 계속 하시겠습니까? [Y/n] y (.. 중략 ..) Processing triggers for systemd (232-25+deb9u4) ... firmware-linux-free (3.4) 설정하는 중입니다 ... update-initramfs: deferring update (trigger activated) Processing triggers for man-db (2.7.6.1-2) ... irqbalance (1.1.0-2.3) 설정하는 중입니다 ... linux-image-amd64 (4.9+80+deb9u6) 설정하는 중입니다 ... Processing triggers for initramfs-tools (0.130) ... update-initramfs: Generating /boot/initrd.img-4.9.0-8-amd64 Processing triggers for systemd (232-25+deb9u4) ...
시스템을 다시 시작해야 업그레이드한 커널이 시스템에 적용됩니다.
그러므로 시스템을 다시 시작합니다.
westporch@test-vm-01:~$ sudo reboot
시스템을 다시 시작한 후에 커널 버전을 확인하면, 버전이 업그레이드 된 것(아래 녹색 부분)을 확인할 수 있습니다.
westporch@test-vm-01:~$ uname -a
- Linux test-vm-01 4.9.0-7-amd64 #1 SMP Debian 4.9.110-3+deb9u2 (2018-08-13) x86_64 GNU/Linux
+ Linux test-vm-01 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64 GNU/Linux
방법②: 시냅틱 패키지 관리자
실행
아래처럼 프롬프트에서 synaptic 명령을 실행하면 시냅틱 패키지 관리자를 실행할 수 있습니다.
westporch@test-vm-02:~$ sudo synaptic
물론 마우스를 사용해서 시냅틱 패키지 관리자를 실행할 수도 있습니다. 아래 화면처럼 시스템 메뉴 → 관리 → 시냅틱 패키지 관리자를 순서대로 클릭하면 됩니다(단, 데스크톱 환경으로 MATE를 사용할 경우).
관리자(root)의 비밀번호를 입력합니다.
다음은 시냅틱 패키지 관리자를 실행한 화면입니다.
새로고침
'새로고침' 버튼을 클릭하면, 내부적으로 'apt update' 명령을 실행합니다. 패키지 정보를 내려받기 위해서, 새로고침 버튼을 클릭합니다.
시냅틱 패키지 관리자가 패키지 정보를 자동으로 내려받습니다.
모든 업그레이드 표시
새로고침 버튼을 눌러서 패키지 정보를 내려받았다면, 이제는 '모든 업그레이드 표시' 버튼을 클릭해야 합니다.
'표시' 버튼을 눌러서 업그레이드할 수 있는 패키지를 표시합니다.
시냅틱 패키지 관리자가 작업을 완료하면, 실행 창의 하단에 '가능한 모든 업그레이드를 성공적으로 표시했습니다.'라는 문장을 출력합니다.
이제 아래 화면처럼 '상태(T)' 버튼을 클릭합니다.
'설치함(업그레이드 가능)' 항목을 클릭하면, 업그레이드할 수 있는 패키지가 노란색 음영으로 표시되었습니다.
(제가 별도의 그래픽 프로그램으로 노란색 음영을 추가한 것이 아니라, 시냅틱 패키지 관리자가 표시한 것입니다.)
왜냐하면 이전에 '모든 업그레이드 표시' 버튼을 눌렀기 때문입니다.
적용
'적용' 버튼을 누르면(내부적으로 'apt upgrade' 명령을 실행함) 노란색 음영으로 표시되었던 패키지(linux-image-amd64)를 업그레이드합니다. '적용' 버튼을 누르기 전에 노란색 음영 부분을 클릭하면, 아래 화면처럼 간단한 패키지의 정보를 확인할 수 있습니다.
'Apply' 버튼을 누릅니다.
시냅틱 패키지 관리자가 패키지를 내려받습니다.
시냅틱 패키지 관리자가, 내려받은 패키지를 설치합니다.
드디어 패키지 업그레이드를 완료했습니다. 'Close' 버튼을 클릭합니다.
패키지를 업그레이드 했으므로, 이제는 '설치함(업그레이드 가능)' 항목을 볼 수 없습니다.
시스템을 다시 시작해야 업그레이드한 커널이 시스템에 적용됩니다.
그러므로 시스템을 다시 시작합니다.
westporch@test-vm-02:~$ sudo reboot
시스템을 다시 시작한 후에 커널 버전을 확인하면, 버전이 업그레이드 된 것(아래 녹색 부분)을 확인할 수 있습니다.
westporch@test-vm-02:~$ uname -a
- Linux test-vm-01 4.9.0-7-amd64 #1 SMP Debian 4.9.110-3+deb9u2 (2018-08-13) x86_64 GNU/Linux
+ Linux test-vm-01 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64 GNU/Linux