[관련 게시물]
우분투(Ubuntu) 20.04 LTS Focal Fossa 관련 연재
2020/04/07 - [리눅스/Ubuntu] - 우분투(Ubuntu) 20.04 LTS Focal Fossa 릴리스 노트(ReleaseNotes)
2020/04/11 - [리눅스/Ubuntu] - 우분투(Ubuntu) 20.04 LTS Focal Fossa Beta 미리보기
2020/04/24 - [리눅스/일반] - Rufus로 부팅 가능한 USB 디스크 만들기 - 예시 : 우분투(Ubuntu) 20.04
2020/04/25 - [기타] - USB 부팅 디스크로 컴퓨터 부팅하기
2020/04/25 - [리눅스/Ubuntu] - 우분투(Ubuntu) 20.04 Focal Fossa 설치 방법(+ 버추얼박스 활용)
2020/04/27 - [리눅스/Ubuntu] - 우분투(Ubuntu) 20.04 Focal Fossa로 업그레이드 방법
우분투(Ubuntu) 관련 연재 카테고리
https://wnw1005.tistory.com/category/리눅스/Ubuntu안내
예전에도 우분투 업그레이드 방법을 연재했던 적이 있어 이번에는 건너뛸까도 생각했습니다만 그래도 이번 버전은 LTS 버전이므로 다시 한번 짚고 넘어가는 것도 나쁘지는 않겠다 싶어 다시 한번 업그레이드 방법을 적게 되었습니다.
단 이번에는 모든 작업을 터미널에서 수행하도록 하겠습니다.익숙해지면 CLI 에서의 작업이 편리합니다. 특히 GUI 방식으로는 새 배포판 출시 후 약간의 안정 기간이 지난 다음에야 업그레이드가 가능한데 그전에 빠르게 업그레이드하려고 한다거나 중간 배포판을 건너뛰고 업그레이드하려면 터미널에서의 명령행 입력 방식이 필수입니다.
2019/04/29 - [리눅스/Ubuntu] - 우분투(Ubuntu) 데스크톱 배포판 업그레이드 (18.04 → 18.10 → 19.04) - GUI 방식
2019/05/01 - [리눅스/Ubuntu] - 우분투(Ubuntu) 데스크톱 배포판 업그레이드 (18.04 → 18.10 → 19.04) - CLI 방식
2019/05/03 - [리눅스/Ubuntu] - 우분투(Ubuntu) 데스크톱 배포판 업그레이드 (18.04 → 19.04) - CLI 방식
2019/10/19 - [리눅스/Ubuntu] - 우분투(Ubuntu) 19.10으로의 업그레이드 01 (CLI)
2019/10/20 - [리눅스/Ubuntu] - 우분투(Ubuntu) 19.10 Eoan Ermine 클린 설치(Clean Install)
2019/10/25 - [리눅스/Ubuntu] - 우분투(Ubuntu) 19.04에서 19.10으로의 업그레이드 02 (GUI)
GUI 방식을 이용한 업그레이드 방법은 예전 연재를 참고하시기 바랍니다.
우분투 백업 절차 요약
01. 시스템 백업
02. 우분투 버전 확인
03. 보류(고정) 패키지 해제
04. 저장소 패키지 목록 업데이트
05. 업그레이드 가능한 패키지 목록 확인
06. 일반 패키지 업그레이드
07. 의존성 고려 패키지 업그레이드
08. 불필요한 패키지 자동제거
09. 시스템 재부팅
10. 업데이트 관리자 코어 설치
11. 우분투 배포판 업그레이드 수준 확인
12. 우분투 배포판 업그레이드 수준 설정 변경
13. 중간 배포판 건너뛰어 업그레이드 하기 위한 작업
14. 우분투 배포판 업그레이드
15. 우분투 배포판 업그레이드 진행과정
16. 우분투 배포판 업그레이드 후 버전 확인
17. 우분투 배포판 업그레이드 후 할일
사실 OS의 판올림(버전 업그레이드)는 권장하지 않습니다. 업그레이드 과정 중에 어떤 문제가 발생할지 모르기 때문입니다. 특히 새 버전이 출시된 지 얼마 되지 않은 경우는 더더욱 그러합니다. 따라서 가능하면 새로 클린 설치하는 것을 권장합니다. 우분투(Ubuntu) 20.04 Focal Fossa의 클린 설치 방법은 아래 링크를 참고하시기 바랍니다.
그러나 내외부의 제한으로 인해 새로 설치하는 것이 쉽지 않은 경우가 있을 것입니다. 그렇다면 최대한 안전하게 업그레이드하는 것이 시스템 관리자의 목표가 됩니다.
업그레이드하기 전에 OS가 출시된 직후 나타날 여러 버그들이 보고되고 개발진이 그것들을 수정할 떄까지 충분한 시간을 두는 것이 좋습니다.
이후 다음의 절차를 거쳐 업그레이드를 진행하는 것을 권장합니다.
우분투 업그레이드(판올림) 절차
01. 시스템 백업
2019/09/20 - [리눅스/Ubuntu] - 리눅스(우분투) 백업과 복원
2019/01/04 - [서버 운영/버추얼박스(VirtualBox)] - 버추얼박스(VirtualBox) 6.0 스냅샷 기능 이용하기
사실 업그레이드 과정 중에서 가장 중요한 과정이라 할 수 있습니다. 아무리 조심스레 업그레이드한다하더라도 오류의 위험은 상존하고 있기 때문입니다.
백업이 있다면, 문제가 발생한면 이전으로 복원하면 그만입니다. 백업이 있다는 것만으로도 업그레이드로 마주칠 미지의 버그를 대할 용기가 생깁니다.
백업의 중요성은 아무리 강조해도 지나침이 없습니다. 백업이 없다면 업그레이드할 생각은 하지 않는 것이 좋습니다. 백업이 중요하지 않는 경우는 운영하는 시스템이 그다지 중요하지 않아 훼손되더라도 무방할 때 뿐입니다.
백업 방법은 위 링크의 글을 참고하시기 바랍니다.
02. 우분투 버전 확인
$ lsb_release -a
우분투의 버전을 확인하는 방법은 여러가지가 있습니다. 위 방법은 그중 가장 간편하고 널리 알려진 방법입니다.
study@study-VirtualBox:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic study@study-VirtualBox:~$
위 예시는 지금까지 제 블로그의 주 연재 바탕이 된 우분투 18.04의 버전 확인 출력 내용입니다. 만약 더 나중에 출시된 배포판을 사용 주이라면 거기에 맞춰 내용이 나올 것입니다.
03 고정 패키지 해제
고정 패키지 확인
study@study-VirtualBox:~$ sudo apt-mark showhold mc study@study-VirtualBox:~$
패키지 고정 해제
study@study-VirtualBox:~$ sudo apt-mark unhold mc mc 패키지 고정 취소함. study@study-VirtualBox:~$
04. 저장소 패키지 목록 업데이트
$ sudo apt update
CentOS와는 달리 우분투는 패키지를 업그레이드하거나 설치할 때 그전에 반드시 위 명령을 실행하여 저장소의 패키지 목록을 업데이트해주어야 합니다.
study@study-VirtualBox:~$ sudo apt update [sudo] study의 암호: 기존:1 http://mirror.kakao.com/ubuntu bionic InRelease 받기:2 http://mirror.kakao.com/ubuntu bionic-updates InRelease [88.7 kB] 받기:3 http://mirror.kakao.com/ubuntu bionic-backports InRelease [74.6 kB] 받기:4 http://mirror.kakao.com/ubuntu bionic-security InRelease [88.7 kB] ... 중략 ... 내려받기 4,819 k바이트, 소요시간 2초 (2,009 k바이트/초) 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 4 packages can be upgraded. Run 'apt list --upgradable' to see them. study@study-VirtualBox:~$
위 예시에 표시된 http://mirror.kakao.com/ubuntu는 기본 저장소 주소를 카카오 미러로 설정하여 나타난 것입니다.
우분투 지역 설정을 서울(한국)로 하면 패키지 저장소의 주 서버가 카이스트 미러로 자동 설정되어 설치됩니다만 패키지의 안정적이고 빠른 업데이트를 위해 많은 우분투 사용자들이 카카오 미러로 바꾸곤 합니다.
바꾸는 방법은 위 링크를 참고하시기 바랍니다.
05. 업그레이드 가능한 패키지 목록 확인
$ apt list --upgradable
업그레이드가 가능한 패키지 목록을 나열하는 명령입니다.
우분투 배포판 자체의 업그레이드의 경우는 큰 의미를 지니지 않습니다만 한 번쯤 훑어보시는 것도 나쁘지는 않을 것입니다.
study@study-VirtualBox:~$ apt list --upgradable 리스팅... 완료 distro-info-data/bionic-updates,bionic-updates 0.37ubuntu0.7 all [upgradable from: 0.37ubuntu0.6] python3-update-manager/bionic-updates,bionic-updates 1:18.04.11.12 all [upgradable from: 1:18.04.11.10] update-manager/bionic-updates,bionic-updates 1:18.04.11.12 all [upgradable from: 1:18.04.11.10] update-manager-core/bionic-updates,bionic-updates 1:18.04.11.12 all [upgradable from: 1:18.04.11.10] study@study-VirtualBox:~$
06. 일반 패키지 업그레이드
$ sudo apt upgrade
우분투의 일반적인 패키지 업그레이드 명령입니다. 이 명령은 의존성(또는 종속성)을 이유로 설치되어 있는 패키지를 제거하지 않습니다.
study@study-VirtualBox:~$ sudo apt upgrade 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 업그레이드를 계산하는 중입니다... 완료 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: dbconfig-common dbconfig-mysql javascript-common libclamav7 libjs-jquery libjs-sphinxdoc libjs-underscore libllvm7 libllvm8 php-bz2 php-mysql php-php-gettext php-phpseclib php-tcpdf php7.2-bz2 php7.2-mysql Use 'sudo apt autoremove' to remove them. 다음 패키지를 업그레이드할 것입니다: distro-info-data python3-update-manager update-manager update-manager-core 4개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함. 599 k바이트 아카이브를 받아야 합니다. 이 작업 후 2,048 바이트의 디스크 공간을 더 사용하게 됩니다. 계속 하시겠습니까? [Y/n] y 받기:1 http://mirror.kakao.com/ubuntu bionic-updates/main amd64 distro-info-data all 0.37ubuntu0.7 [4,676 B] 받기:2 http://mirror.kakao.com/ubuntu bionic-updates/main amd64 python3-update-manager all 1:18.04.11.12 [35.0 kB] 받기:3 http://mirror.kakao.com/ubuntu bionic-updates/main amd64 update-manager-core all 1:18.04.11.12 [8,508 B] 받기:4 http://mirror.kakao.com/ubuntu bionic-updates/main amd64 update-manager all 1:18.04.11.12 [551 kB] 내려받기 599 k바이트, 소요시간 0초 (2,983 k바이트/초) (데이터베이스 읽는중 ...현재 184591개의 파일과 디렉터리가 설치되어 있습니다.) Preparing to unpack .../distro-info-data_0.37ubuntu0.7_all.deb ... Unpacking distro-info-data (0.37ubuntu0.7) over (0.37ubuntu0.6) ... Preparing to unpack .../python3-update-manager_1%3a18.04.11.12_all.deb ... Unpacking python3-update-manager (1:18.04.11.12) over (1:18.04.11.10) ... Preparing to unpack .../update-manager-core_1%3a18.04.11.12_all.deb ... Unpacking update-manager-core (1:18.04.11.12) over (1:18.04.11.10) ... Preparing to unpack .../update-manager_1%3a18.04.11.12_all.deb ... Unpacking update-manager (1:18.04.11.12) over (1:18.04.11.10) ... python3-update-manager (1:18.04.11.12) 설정하는 중입니다 ... distro-info-data (0.37ubuntu0.7) 설정하는 중입니다 ... update-manager-core (1:18.04.11.12) 설정하는 중입니다 ... update-manager (1:18.04.11.12) 설정하는 중입니다 ... Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ... Processing triggers for mime-support (3.60ubuntu1) ... Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ... Processing triggers for libglib2.0-0:amd64 (2.56.4-0ubuntu0.18.04.6) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... study@study-VirtualBox:~$
study@study-VirtualBox:~$ sudo systemctl reboot
07. 의존성 고려 패키지 업그레이드
sudo apt full-upgrade
이 업그레이드는 앞서 다룬 apt upgrade과는 달리 필요하다면 업그레이드할 패키지에 맞춰 의존성을 고려하여 제거할 패키지는 제거하고 추가 설치할 패키지는 새로 설치하는 방식입니다.
study@study-VirtualBox:~$ sudo apt full-upgrade 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 업그레이드를 계산하는 중입니다... 완료 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: dbconfig-common dbconfig-mysql javascript-common libclamav7 libjs-jquery libjs-sphinxdoc libjs-underscore libllvm7 libllvm8 php-bz2 php-mysql php-php-gettext php-phpseclib php-tcpdf php7.2-bz2 php7.2-mysql Use 'sudo apt autoremove' to remove them. 0개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함. study@study-VirtualBox:~$
08. 불필요한 패키지 자동제거
sudo apt --purge autoremove
이 명령은 사용자가 명시적으로 설치하지 않고 종속성의 이유로 자동으로 같이 설치된 것들 중 더이상 쓰이지 않는 패키지를 자동으로 제거하는 명령입니다.
--purge 옵션을 붙이지 않아도 되지만 붙이면 설정값 등도 같이 제거합니다.
study@study-VirtualBox:~$ sudo apt autoremove 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 다음 패키지를 지울 것입니다: dbconfig-common dbconfig-mysql javascript-common libclamav7 libjs-jquery libjs-sphinxdoc libjs-underscore libllvm7 libllvm8 php-bz2 php-mysql php-php-gettext php-phpseclib php-tcpdf php7.2-bz2 php7.2-mysql 0개 업그레이드, 0개 새로 설치, 16개 제거 및 0개 업그레이드 안 함. 이 작업 후 155 M바이트의 디스크 공간이 비워집니다. 계속 하시겠습니까? [Y/n] y (데이터베이스 읽는중 ...현재 184590개의 파일과 디렉터리가 설치되어 있습니다.) Removing dbconfig-mysql (2.0.9) ... Removing dbconfig-common (2.0.9) ... Removing javascript-common (11) ... Conf javascript-common disabled. apache2_invoke prerm: Disable configuration javascript-common Removing libclamav7:amd64 (0.100.3+dfsg-0ubuntu0.18.04.1) ... Removing libjs-sphinxdoc (1.6.7-1ubuntu1) ... Removing libjs-jquery (3.2.1-1) ... Removing libjs-underscore (1.8.3~dfsg-1) ... Removing libllvm7:amd64 (1:7-3~ubuntu0.18.04.1) ... Removing libllvm8:amd64 (1:8-3~ubuntu18.04.2) ... Removing php-bz2 (1:7.2+60ubuntu1) ... Removing php-mysql (1:7.2+60ubuntu1) ... Removing php-php-gettext (1.0.12-0.1) ... Removing php-phpseclib (2.0.9-1) ... Removing php-tcpdf (6.2.13+dfsg-1ubuntu1) ... Removing php7.2-bz2 (7.2.24-0ubuntu0.18.04.4) ... Removing php7.2-mysql (7.2.24-0ubuntu0.18.04.4) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Processing triggers for libapache2-mod-php7.2 (7.2.24-0ubuntu0.18.04.4) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... study@study-VirtualBox:~$
study@study-VirtualBox:~$ sudo apt --purge autoremove 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 다음 패키지를 지울 것입니다: dbconfig-common* dbconfig-mysql* javascript-common* libclamav7* libjs-jquery* libjs-sphinxdoc* libjs-underscore* libllvm7* libllvm8* php-bz2* php-mysql* php-php-gettext* php-phpseclib* php-tcpdf* php7.2-bz2* php7.2-mysql* 0개 업그레이드, 0개 새로 설치, 16개 제거 및 0개 업그레이드 안 함. 이 작업 후 155 M바이트의 디스크 공간이 비워집니다. 계속 하시겠습니까? [Y/n] y (데이터베이스 읽는중 ...현재 184590개의 파일과 디렉터리가 설치되어 있습니다.) Removing dbconfig-mysql (2.0.9) ... Removing dbconfig-common (2.0.9) ... Removing javascript-common (11) ... Conf javascript-common disabled. apache2_invoke prerm: Disable configuration javascript-common Removing libclamav7:amd64 (0.100.3+dfsg-0ubuntu0.18.04.1) ... Removing libjs-sphinxdoc (1.6.7-1ubuntu1) ... Removing libjs-jquery (3.2.1-1) ... Removing libjs-underscore (1.8.3~dfsg-1) ... Removing libllvm7:amd64 (1:7-3~ubuntu0.18.04.1) ... Removing libllvm8:amd64 (1:8-3~ubuntu18.04.2) ... Removing php-bz2 (1:7.2+60ubuntu1) ... Removing php-mysql (1:7.2+60ubuntu1) ... Removing php-php-gettext (1.0.12-0.1) ... Removing php-phpseclib (2.0.9-1) ... Removing php-tcpdf (6.2.13+dfsg-1ubuntu1) ... Removing php7.2-bz2 (7.2.24-0ubuntu0.18.04.4) ... Removing php7.2-mysql (7.2.24-0ubuntu0.18.04.4) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Processing triggers for libapache2-mod-php7.2 (7.2.24-0ubuntu0.18.04.4) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... (데이터베이스 읽는중 ...현재 183830개의 파일과 디렉터리가 설치되어 있습니다.) Purging configuration files for php7.2-mysql (7.2.24-0ubuntu0.18.04.4) ... Purging configuration files for php7.2-bz2 (7.2.24-0ubuntu0.18.04.4) ... Purging configuration files for javascript-common (11) ... apache2_invoke postrm: Purging state for javascript-common Purging configuration files for dbconfig-common (2.0.9) ... dpkg: 경고: while removing dbconfig-common, directory '/var/log/dbconfig-common' not empty so not removed study@study-VirtualBox:~$
09. 시스템 재부팅
$ sudo reboot
10. 업데이트 관리자 코어 설치
$ sudo apt install update-manager-core
사실 이 명령은 대부분 이미 설치되어 있을 것이므로 일반 사용자들은 신경쓰지 않아도 되는 명령입니다. 그러나 혹시 이 패키지가 없는 겨ㅓㅇ우 따로 설치해주시면 됩니다.
study@study-VirtualBox:~$ sudo apt install update-manager-core 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 패키지 update-manager-core는 이미 최신 버전입니다 (1:18.04.11.12). 0개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함. study@study-VirtualBox:~$
11. 우분투 배포판 업그레이드 수준 확인
우분투 배포판 업그레이드 수준은 아래의 세단계로 설정 가능합니다.
never / normal / lts
never는 새 배포판의 출시 여부를 확인하지 않고 업그레이드하지 않습니다.
normal은 새 배포판이 출시되었는지 확인하고 현재 배포판의 바로 다음 정기 배포판으로 업그레이드합니다.
lts는 짝수년도 4월에 출시되는 장기 지원 배포판이 출시된 경우 업그레이드를 합니다.
현재 우분투의 배포판 업그레이드 수준 설정은 다음의 명령어로 확인할 수 있습니다.
cat /etc/update-manager/release-upgrades
위 명령을 실행하면 아래와 같이 나오게 됩니다.
study@study-VirtualBox:~$ cat /etc/update-manager/release-upgrades # Default behavior for the release upgrader. [DEFAULT] # Default prompting behavior, valid options: # # never - Never check for, or allow upgrading to, a new release. # normal - Check to see if a new release is available. If more than one new # release is found, the release upgrader will attempt to upgrade to # the supported release that immediately succeeds the # currently-running release. # lts - Check to see if a new LTS release is available. The upgrader # will attempt to upgrade to the first LTS release available after # the currently-running one. Note that if this option is used and # the currently-running release is not itself an LTS release the # upgrader will assume prompt was meant to be normal. Prompt=lts study@study-VirtualBox:~$
맨 하단에 필요한 정보가 나옵니다. 필요한 부분만 확인하고 싶다면 아래와 같이 실행하면 됩니다.
cat /etc/update-manager/release-upgrades | grep Prompt
study@study-VirtualBox:~$ cat /etc/update-manager/release-upgrades | grep Prompt Prompt=lts study@study-VirtualBox:~$
12. 우분투 배포판 업그레이드 수준 설정 변경
sudo sed -i 's/Prompt=기존 설정값/Prompt=바꿀 설정값/g' /etc/update-manager/release-upgrades
LTS 버전의 경우 이 설정이 큰 의미가 없지만 만약 never(업그레이드 안함)으로 설정되어 있다면 원하는 배포판 업그레이드 수준으로 설정해주시면 됩니다.
study@study-VirtualBox:~$ sudo sed -i 's/Prompt=never/Prompt=lts/g' /etc/update-manager/release-upgrades study@study-VirtualBox:~$
study@study-VirtualBox:~$ cat /etc/update-manager/release-upgrades | grep Prompt Prompt=lts study@study-VirtualBox:~$
13. 중간 배포판 건너뛰어 업그레이드 하기 위한 작업
현재 사용 중인 우분투의 버전과 이번에 업그레이드할 우분투 20.04 사이에 중간 배포판이 있는 경우가 있을 수 있습니다.
이런 경우 일반적인 업그레이드 방법으로는 중간 배포판들의 업그레이드를 모두 거쳐야 최신 버전의 우분투로 업그레이드할 수 있습니다.
그러나 이렇게 업그레이드를 거치게 되면 시간도 오래 걸릴 뿐만 아니라 업그레이드를 두번 이상 거치게 되므로 업그레이드 과정 중이나 후에 패키지가 오류를 일으킬 수 있습니다.
따라서 업그레이드 과정을 단순화시킬 필요가 있는데 우분투가 그것을 사용자 친화적인 방식으로 지원하지는 않습니다.
이럴 땐 전통적인 데비안 방식으로 업그레이드를 할 수 있는데 그것은 /etc/apt/sources.list 파일을 수정하는 것입니다.
$ cat /etc/apt/sources.list
위 명령을 실행하면 아래와 같이 해당 파일의 내용을 터미널에서 확인할 수 있습니다.
study@study-VirtualBox:~$ cat /etc/apt/sources.list # deb cdrom:[Ubuntu 18.04.1 LTS _Bionic Beaver_ - Release amd64 (20180725)]/ bionic main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://mirror.kakao.com/ubuntu/ bionic main restricted # deb-src http://mirror.kakao.com/ubuntu/ bionic main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://mirror.kakao.com/ubuntu/ bionic-updates main restricted # deb-src http://mirror.kakao.com/ubuntu/ bionic-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://mirror.kakao.com/ubuntu/ bionic universe # deb-src http://mirror.kakao.com/ubuntu/ bionic universe deb http://mirror.kakao.com/ubuntu/ bionic-updates universe # deb-src http://mirror.kakao.com/ubuntu/ bionic-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://mirror.kakao.com/ubuntu/ bionic multiverse # deb-src http://mirror.kakao.com/ubuntu/ bionic multiverse deb http://mirror.kakao.com/ubuntu/ bionic-updates multiverse # deb-src http://mirror.kakao.com/ubuntu/ bionic-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://mirror.kakao.com/ubuntu/ bionic-backports main restricted universe multiverse # deb-src http://mirror.kakao.com/ubuntu/ bionic-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu bionic partner # deb-src http://archive.canonical.com/ubuntu bionic partner deb http://mirror.kakao.com/ubuntu bionic-security main restricted # deb-src http://mirror.kakao.com/ubuntu bionic-security main restricted deb http://mirror.kakao.com/ubuntu bionic-security universe # deb-src http://mirror.kakao.com/ubuntu bionic-security universe deb http://mirror.kakao.com/ubuntu bionic-security multiverse # deb-src http://mirror.kakao.com/ubuntu bionic-security multiverse # deb [arch=arm64,amd64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu bionic main # deb-src [arch=arm64,amd64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu bionic main deb [arch=arm64,ppc64el,amd64] https://ftp.harukasan.org/mariadb/repo/10.4/ubuntu bionic main # deb-src [arch=arm64,ppc64el,amd64] https://ftp.harukasan.org/mariadb/repo/10.4/ubuntu bionic main study@study-VirtualBox:~$
우분투의 코드넴임은 일반적으로 '형용사 + 명사'로 이루지는데 버전별 코드네임은 다음과 같습니다.
우분투의 버전별 코드넴임
18.04 LTS Bionic Beaver
18.10 Cosmic Cuttlefish
19.04 Disco Dingo
19.10 Eoan Ermine
20.04 LTS Focal Fossa
위 파일에 사용되는 코드네임 부분은 형용사입니다. 위 파일에서 사용되는 우분투의 코드네임은 형용사 부분입니다. 따라서 이 형용사 부분을 수정해주시면 됩니다.
예를들어 19.04를 20.04로 업그레이드한다고 가정하면 disco를 focal로 수정해주시면 됩니다.
$ sudo sed -i 's/현재 사용 중인 우분투 버전의 코드네임 형용사 부분/업그레이드할 우분투 버전의 코드네임 형용사 부분/g' /etc/apt/sources.list
18.04에서 20.04로
$ sudo sed -i 's/bionic/focal/g' /etc/apt/sources.list
18.10에서 20.04로
$ sudo sed -i 's/cosmic/focal/g' /etc/apt/sources.list
$ sudo sed -i 's/disco/focal/g' /etc/apt/sources.list
$ sudo sed -i 's/eoan/focal/g' /etc/apt/sources.list
자세한 방법은 위 링크를 참고하시기 바랍니다.
14. 우분투 배포판 업그레이드
$ sudo do-release-upgrade
13번 과정까지가 우분투 배포판 업그레이드를 수행하기 전의 준비작업이었다면 이 14번의 명령울 실행함으로써 비로소 우분투 배포판 업그레이드가 진행됩니다.
그러나 위 명령을 실행하면 아래와 같이 출력되는 경우가 있습니다.
study@study-VirtualBox:~$ sudo do-release-upgrade 새 우분투 배포판 확인 There is no development version of an LTS available. To upgrade to the latest non-LTS develoment release set Prompt=normal in /etc/update-manager/release-upgrades. study@study-VirtualBox:~$
이 글을 게시한 2020년 4월 27일 기준에서 do-release-upgrade 명령을 실행하면 위와 같이 출력되는데요. 이유는 다음과 같습니다.
직전 버전(19.10)에서 새 배포판(20.04)으로 업그레이드하려면 새 배포판이 공개된 후 며칠이 지나야 가능합니다.
18.04 LTS에서 20.04 LTS로 업그레이드하려면 2020 년 7 월 말 20.04.1이 공개된 이후 며칠이 지나야 합니다.
그러나 강제로 업그레이드할 수 있는 방법이 있는데요. 아래 명령이 그것입니다.
$ sudo do-release-upgrade -d
do-release-upgrade 명령에 -d 옵션을 붙이면 강제 업그레이드가 가능합니다.
15. 우분투 배포판 업그레이드 진행과정
우분투 배포판 업그레이드 실행
study@study-VirtualBox:~$ sudo do-release-upgrade -d 새 우분투 배포판 확인 0% [작업중] 0% [헤더를 기다리는 중입니다] 받기:1 업그레이드 도구 서명 [1,554 B] 99% [헤더를 기다리는 중입니다] 받기:2 업그레이드 도구 [1,344 kB] 100% [작업중] 내려받기 1,346 k바이트, 소요시간 0초 (0 바이트/초) 'focal.tar.gz.gpg'(으)로 'focal.tar.gz' 파일 인증 'focal.tar.gz' 압축 해제 중 캐시 읽는 중 패키지 관리자 확인 중 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 0% [작업중] 0% [작업중] 히트 http://mirror.kakao.com/ubuntu bionic InRelease 0% [헤더를 기다리는 중입니다] [Connected to ftp.harukasan.org (14.49.99.238)] 0% [헤더를 기다리는 중입니다] [Connected to ftp.harukasan.org (14.49.99.238)] 히트 http://mirror.kakao.com/ubuntu bionic-updates InRelease 히트 http://mirror.kakao.com/ubuntu bionic-backports InRelease 히트 http://mirror.kakao.com/ubuntu bionic-security InRelease 88% [헤더를 기다리는 중입니다]
저장소 정보 업데이트
저장소 정보 업데이트 중 서드 파티 소스는 사용할 수 없습니다 souces.list에서 서드 파티 목록의 일부를 이용할 수 없습니다. 업그레이드를 마친 후 '소프트웨어 소스' 도구나 패키지 관리자를 이용해 다시 사용 할 수 있습니다. 계속 하시려면 [엔터] 키를 눌러 주십시오
업그레이드 완료 후 따로 재활성화해주어야 합니다.
업그레이드 여부 확인
패키지 관리자 확인 중 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 바뀐 내용을 계산하는 중 바뀐 내용을 계산하는 중 업그레이드를 시작하시겠습니까? 설치한 패키지 중 56개는 더 이상 캐노니컬이 지원하지 않습니다. 하지만 공동체는 계속 지원합니다. 패키지 31개를 제거할 것입니다. 새 패키지 340개를 설치할 것입니다. 패키지 1571개를 업그레이드 할 것입니다. 모두 1,273 M개의 패키지를 다운로드해야 합니다.. 현재 연결 상태로는 다운로드 과정에 약 3 분 정도가 필요합니다. 업그레이드를 다운로드하고 설치하는 것은 긴 시간이 필요할 수도 있으며, 한번 다운로드가 끝나면 취소할 수 없습니다. 계속 [yN] 자세한 내용 [d]
여기서 캐노니컬이 더 이상 지원되지 않는 패키지, 제거되는 패키지, 새로 설치될 패키지, 업그레이드될 패키지의 수와 다운로드되는 패키지의 총 용량이 표시됩니다.
d를 누르고 엔터를 치면 아래처럼 각 작업별 패키지 목록이 표시됩니다.
더 이상 지원하지 않음: adium-theme-ubuntu cpp-7 enchant example-content gcc-7-base gcc-8-base geoip-database gir1.2-gtksource-3.0 gsfonts guile-2.0-libs ifupdown imagemagick imagemagick-6-common imagemagick-6.q16 libargon2-0 libart-2.0-2 libaudio2 libdbusmenu-gtk4 libegl1-mesa libenchant1c2a 지우기: fwupdate-signed gnome-settings-daemon-schemas libapt-inst2.0 libapt-pkg5.0 libcupscgi1 libcupsmime1 libcupsppdc1 libebook-1.2-19 libedata-book-1.2-25 libedata-cal-1.2-28 libfwup1 libldb1 libpolkit-backend-1-0 libsensors4 libsnmp30 system-config-samba uno-libs3 제거 (자동으로 설치함) libapache2-mod-php7.2 libept1.5.0 libpython-stdlib php7.2 python python-glade2 python-gtk2 python-ldb python-libuser python-minimal python-nautilus python-samba python-scour python-tdb 설치: alsa-topology-conf alsa-ucm-conf bind9-dnsutils bind9-libs build-essential cpp-9 dpkg-dev duplicity enchant-2 fakeroot fonts-smc-gayathri fonts-urw-base35 fonts-yrsa-rasa fprintd g++ g++-9 gamemode gcc-10-base gcc-9 gcc-9-base gir1.2-graphene-1.0 gir1.2-gtksource-4 gir1.2-handy-0.0 gir1.2-mutter-6 업그레이드: accountsservice acl acpi-support acpid adduser adwaita-icon-theme aisleriot alsa-utils amd64-microcode anacron apache2 apache2-bin apache2-data apache2-utils app-install-data-partner apparmor apport apport-gtk apport-symptoms appstream apt apt-config-icons apt-utils aptdaemon aptdaemon-data nums-3.0 gir1.2-gdkpixbuf-2.0 gir1.2-gdm-1.0 계속 [yN] 자세한 내용 [d]d 계속 [yN] 자세한 내용 [d]y Lock screen disabled Your lock screen has been disabled and will remain disabled until you reboot. 계속 하시려면 [엔터] 키를 눌러 주십시오 Inhibiting until Ctrl+C is pressed...
작업별 패키지 목록을 확인하고 q를 눌러 빠져나온 다음 y를 입력하고 엔터를 누르면 잠김화면(Lock screen)이 시스템이 재부팅되기 전까지 유지된다고 알려주고 계속하려면 엔터 키를 누르라고 나옵니다. 엔터를 눌러줍니다.
패키지의 구성 파일 재설정
위 그림처럼 TUI에서 커보드 화살표 키 등을 움직여 설정하기도 하고,
Configuration file '/etc/gdm3/custom.conf' ==> Modified (by you or by a script) since installation. ==> 패키지 배포자가 업데이트한 버전을 넣었습니다. 어떻게 하시겠습니까? 다음 중에 하나를 선택할 수 있습니다: Y 또는 I : 패키지 관리자의 버전을 설치합니다 N 또는 O : 현재 설치된 버전을 유지합니다 D : 버전 간의 차이점을 표시합니다 Z : 프로세스를 백그라운드로 하고 상황을 알아봅니다 기본값으로 현재 버전을 그대로 유지합니다. *** custom.conf (Y/I/N/O/D/Z) [기본값=N] ?
위 예시처럼 CLI 환경과 유사하되 문자키를 눌러 설정하는 방식도 있습니다.
사용하지 못하게 된 패키지 제거
사용하지 못하게 된 패키지를 제거하시겠습니까? 패키지 99개를 제거할 것입니다. 계속 [yN] 자세한 내용 [d]
우분투 배포판을 업그레이드하면서 더이상 사용하지 못하게 된 패키지를 제거합니다.
시스템 업그레이드 완료 후 시스템 재부팅
시스템 업그레이드를 완료했습니다. 다시 시작해야 합니다. 업그레이드를 완료하시려면 다시 시작해야 합니다. 'y'를 선택하시면 시스템이 다시 시작합니다. 계속 [yN]
y를 입력하고 엔터 키를 눌러 재부팅해줍니다.
시스템 업그레이드 완료
무사히 시스템 재부팅이 이루어지면 새로운 그놈 환경의 우분투 모습을 마주하게 됩니다.
주의
제가 가상머신에서 우분투 20.04로 업그레이드를 해보니 업그레이드 작업 자체는 문제 없이 완료된 것으로 보였지만 시스템 재부팅을 해보니 부팅 직후의 검은 바탕에 하단의 우분투 로고 화면에서 넘어가지 않습니다.
아직 업그레이드할 시기는 아닌 것 같습니다. 따라서 지금 이 시점(4월 27일)에서 업그레이드는 권장하지 않으며 적어도 20.04.1 이후에나 업그레이드하는 것을 권장합니다.
물론 새로 클린 설치하는 것을 가장 권장합니다.
16. 우분투 배포판 업그레이드 후 버전 확인
$ lsb_release -a
무사히 업그레이드 되었는지 확인해봅시다.
study@study-VirtualBox:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04 LTS Release: 18.04 Codename: focal study@study-VirtualBox:~$
이렇게 출력되면 무사히 업그레이드된 것입니다.
17. 우분투 배포판 업그레이드 후 할일
서드 파티 저장소 재활성화
우분투 배포판 업그레이드하면서 자동으로 비활성화되었던 서드 파티 저장소를 재활성화해주어야 합니다.
study@study-VirtualBox:~$ cd /etc/apt/sources.list.d study@study-VirtualBox:/etc/apt/sources.list.d$ ls -l 합계 8 -rw-r--r-- 1 root root 189 4월 27 13:00 google-chrome.list -rw-r--r-- 1 root root 189 6월 25 2019 google-chrome.list.save study@study-VirtualBox:/etc/apt/sources.list.d$ cat google-chrome.list ### THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. # deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main study@study-VirtualBox:/etc/apt/sources.list.d$ sudo sed -i 's/^# deb/deb/g' google-chrome.list study@study-VirtualBox:/etc/apt/sources.list.d$ cat google-chrome.list ### THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main study@study-VirtualBox:/etc/apt/sources.list.d$
그러나 몇 번을 강조하지만 업그레이드는 그다지 권장하지 않으며 해야 한다면 백업을 철저히 하고 업그레이드 시기도 적어도 마이너 업그레이드(예시 : 20.04.1)가 출시된 이후에 하시는 것을 권장합니다.
'리눅스 > Debian or Ubuntu' 카테고리의 다른 글
우분투(Ubuntu) 패키지 관리 - apt-cache 명령 사용법 (0) | 2020.05.16 |
---|---|
우분투(Ubuntu) 패키지 관리 - apt-get 명령 사용법 (2) | 2020.05.14 |
우분투(Ubuntu) 패키지 관리 - apt 명령 사용법 - APT(Advanced Packaging Tool) 패키지 관리 도구 기본 사용법 (0) | 2020.05.12 |
데비안(Debian), 우분투(Ubuntu)의 APT 계열 명령 연재 목록 (0) | 2020.05.10 |
우분투(Ubuntu) 20.04 Focal Fossa 설치 방법(+ 버추얼박스 활용) (4) | 2020.04.25 |
우분투(Ubuntu) 20.04 LTS Focal Fossa Beta 미리보기 (0) | 2020.04.11 |
우분투(Ubuntu) 20.04 LTS Focal Fossa 릴리스 노트(ReleaseNotes) (0) | 2020.04.07 |
리눅스(Linux) 환경 변수 $PATH 설정 방법 (2) | 2019.11.24 |