리눅스/공통

GUI를 통한 패키지 설치 - GParted 설치의 예

씨실과 날실 2019. 9. 1. 09:00


이 글은 우분투 18.04 LTS에 맞춰 처음 작성되었습니다. 우분투 20.04 LTS가 공개되었기에 내용을 수정, 증보합니다.

추후 작성

참고로 이 글은 내용을 증보하고 가독성을 높이기 위해 내용을 크게 셋으로 나누어 포스팅을 나누었습니다. 기존 내용들 중 GUI를 통한 패키지 설치 내용은 이 글에 남겨 수정 및 증보하고, CLI를 통해 패키지 설치하는 방법은 다시 패키지 관리자 명령을 통한 패키지 설치와 소스 컴파일을 통한 설치로 나누어 글을 작셩하였습니다. 해당 내용은 위 링크를 참고하시기 바랍니다.


디스크를 정상적으로 사용하기 위해서는 먼저 파티션이 부여되어야 합니다. GParted는 이 파티션을 그래픽 인터페이스로 생성, 삭제, 조절하는 디스크 파티션 편집 소프트웨어입니다.

우분투에는 기본적으로 설치되어 있지 않아 따로 설치해주어야 합니다. 다양한 설치 방법을 알아보도록 하겠습니다.

[작업환경]

우분투 20.04

가상머신 : VirtualBox 6.1.10

Host OS : Windows 10 2004

Guest OS : Ubuntu 20.04



우분투 18.04

가상머신 : VirtualBox 6.0.10

Host OS : Windows 10 1903

Guest OS : Ubuntu 18.04.3

Apache2 : Apache/2.4.29 (Ubuntu)

PHP7 : PHP 7.2.19-0ubuntu0.18.04.1

MariaDB : mysql  Ver 15.1 Distrib 10.4.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

phpMyAdmin : phpMyAdmin 4.9.0.1


GUI를 통한 패키지 설치

우분투 소프트웨어 센터를 통한 GParted 설치

우분투 20.04에서 설치

우분투 20.04 LTS에서 우분투 소프트웨어 센터의 패키지들이 snap 패키지 기반으로 변경되었습니다.


우분투 20.04 메인 화면 좌하단의 프로그램 표시 아이콘을 눌러 각종 GUI 프로그램의 아이콘 모음 화면에 들어갑니다. 아콘들 중에서 위 그림의 아이콘을 눌러 Ubuntu Software Center를 실행해줍니다.


프로그램 등급 정보를 다운로드하는 절차를 거치는데 이는 순식간에 지나갑니다.


위 그림과 같이 우분투 소프트웨어 센터 메인 창이 뜨게 됩니다.


창의 좌상단에 돋보기 모양의 버튼이 있습니다. 해당 버튼을 누르면 검은 막대 모양의 메뉴 검색상자가 나타납니다. 검색상자에 자신이 설치하고자 하는 프로그램(앱 또는 패키지)의 이름을 입력합니다.

그러면 위 그림처럼 하단에 해 당 프로그램이 검색됩니다. 검색된 프로그램 항목을 클릭해줍니다.


그러면 위 그림처럼 창 화면이 전환됩니다. 맨 위에 해당 패키지의 이름과 간단한 설명이 표시되고 그 아래에 설치 버튼과 해당 퍀지에 대한 보다 자세한 설명 그리고 해당 패키지의 공식 사이트 링크 버튼이 표시됩니다.

그 아래 자세히 보기 항목에 버전, 업데이트 여부, 라이선스, 공급원, 다운로드 용량이 표시됩니다.

그 아래에는 평가 항목이라 하여 사용자들의 별점 평가가 있고 이 그림에는 잘려 보이지 않지만 해당 패키지에 대한 사용자들의 코멘트가 표시됩니다.


설치 버튼을 누르면 위 그림처럼 인증을 요구합니다. 암호를 입력하고 인증 버튼을 눌러줍니다.


인증을 거치면 위 그림처럼 진행률이 표시되면서 설치 과정이 진행됩니다.


설치가 완료되면 위 그림처럼 녹색의 설치 버튼이 붉은 색의 제거 버튼으로 바뀌게 됩니다. 이것으로 설치는 완료됩니다.


설치한 패키지의 아이콘을 클릭해줍니다.


인증이 필요한 경우 위 그림처럼 인증 요구창이 뜹니다. 이때는 암호를 입력하고 인증 버튼을 눌러줍니다.


패키지가 정상적으로 실행되는 것을 볼 수 있습니다.


우분투 18.04 에서 설치

우분투 소프트웨어 센터를 실행해줍니다. 그러면 위 그림과 같은 화면을 볼 수 있습니다.


우분투 소프트웨어 센터 창 우상단의 돋보기 아이콘을 누르면 검색막대가 활성화됩니다. 검색막대에 gparted를 입력하면 하단에 GParted 패키지가 자동으로 검색됩니다. 검색된 GParted 항목을 눌러줍니다.



그러면 GParted 패키지 설치 버튼과 함께  GParted에 대한 간략한 설명 및  웹사이트 링크 버튼이 나타나며 그림에는 안 나와있지만 하단에 사용자들의 별점 평가가 있습니다.

설치 버튼을 누르면 GParte가 설치됩니다.

설치 후 프로그램 모음에서 위 그림과 같은 아이콘을 누르면 사용자 인증 절차 후 GParted가 실행됩니다.




시냅틱 패키지 관리자를 통한 GParted 설치

우분투 20.04에서 설치

프로그램 표시 화면에서 시냅틱 패키지 관리자 패키지의 아이콘을 클릭해줍니다.


계정 암호를 입력하고 인증 버튼을 눌러줍니다.


위 그림과 같은 시냅틱 패키지 관리자 창이 뜹니다. 가장 먼저 창 하단의 상태바 내용을 확인하고 새로 고침 버튼을 눌러 저장소의 패키지 정보를 업데이트해줍니다.


새로 고침 작업이 완료되면 창 하단의 상태바 내용이 변경된 것을 확인할 수 있습니다.


창 오른쪽의 찾기 버튼을 눌러줍니다. 그러면 위 그림처럼 조그마한 찾기 창이 뜹니다. 여기서 찾기 항목에 패키지명을 입력해줍니다.

이때 정확한 패키지 이름을 안다면 범위를 이름으로 설정하고 찾는 것이 편리할 것입니다. 그러나 정확한 패키지 이름을 알지 못한다면 범위를 설명 및 이름으로 설정하고 찾고자 하는 패키지 관련 정보를 입력하고 찾기 벝느을 눌러주면 입력 정보와 일치하는 이용 가능한 모든 패키지를 확인할 수 있습니다.


사용자가 입력한 검색 정보와 일치하는 패키지 목록들이 표시됩니다.

여기서는 gparted 패키지를 검색했더니 gparted와 gparted-common 두 패키지가 검색됩니다. 파티션 편집 프로그램인 gparted를 사용하기 위해서는 위 두 패키지가 모두 설치되어야 합니다.

그러나 이러한 정보를 모르더라도 주 패키지명만 안다면 필요한 종속성 패키지도 함께 설치할 수 있습니다.


gparted 패키지를 선택하고 해당 항목에 마우스를 올린 채 오른쪽 버튼을 눌러줍니다. 그러면 위 그림처럼 메뉴가 뜨는데 여기서 설치 표시를 눌러줍니다.


그러면 추가적으로 필요한 종속성 패키지에 대한 정보창이 표시됩니다. 해당 창 우하단의 표시 버튼을 눌러주시기 바랍니다.


그럼 위 그림처럼 필요한 모든 패키지들이 선택됩니다.

그 다음 시냅틱 패키지 관리자 창에서 적용 버튼을 눌러주세요.


그러면 위 그림과 같은 요약 창이 뜹니다. 요약 정보르 확인하고 Apply 버튼을 눌러줍니다.


그러면 위 그림처럼 패키지 설치가 진행됩니다.


패키지 설치가 완료되면 위 그림처럼 변경 사항 적용 안내 창이 뜹니다.


진행 과정의 자세한 정보는 자세히 메뉴를 눌러주시면 됩니다. 그러면 위 그림처럼 자세한 진행 정보가 표시됩니다.

내용을 다 확인하셨으면 Close 버튼을 눌러 창을 닫아주시면 됩니다.


패키지 설치가 완료되면 위 그림처럼 설치된 패키지 각 항목에 체크 박스가 녹색으로 바뀝니다.


우분투 18.04에서 설치


프로그램 표시 화면에서 시냅틱 패키지 관리자 아이콘을 클릭해줍니다.


찾기 버튼 눌러 찾기 창을 띄운 다음 각 설정 항목을 입력 및 설정하고 찾기 버튼을 눌러줍니다.

정확한 주 패키지 명을 안다면 우분투 20.04 파트에서 설명한 것처럼 찾기 항목에는 정확한 패키지명을 입력하고 범위는 이름으로 설정하면 되지만 정확한 패키지명을 알지 못한다면 범위를 위 그림처럼 설명 및 이름으로 설정하고 자신이 설치하고자 하는 패키지와 관련된 정보(패키지명 일부 또는 해당 패키지의 설명 내용의 일부)를 입력하고 찾기 버튼을 눌러줍니다.


그러면 입력한 정보와 일치하는 패키지들이 모두 표시됩니다.

각 패키지를 선택하면 시냅틱 패키지 관리자 창의 우 하단 상자에 선택된 패키지에 대한 정보가 표시됩니다. 각 패키지에 대한 정보를 확인하고 필요한 패키지의 체크박스에 체크 표시를 해줍니다.

그 후 적용 버튼을 눌러줍니다.


그러면 위 그림처럼 용약 창이 뜹니다. 요약 정보를 확인하고 Apply 버튼을 눌러줍니다.

우분투 20.04에서는 gparted를 설치하기 위해서는 gparted와 gparted-common 두 패키지가 필요하지만 18.04에서는 gparted 패키지 하나만 설치하면 됩니다.


앞 단계에서 Apply 버튼을누르면 위 그림처럼 설치가 진행됩니다.


설치가 완료되면 위 그림처럼 적용된 변경 사항에 대한 안내 창이 표시됩니다.


자세히를 누르면 위 그림처럼 패키지 설치 과정이 표시됩니다.


설치 완료가 되면 위 그림처럼 설치된 패키지의 체크 박스가 녹색으로 바뀝니다.



설치할 .DEB 파일 패키지 다운로드

APT 저장소 패키지 목록 업데이트 및 패키지 업그레이드

study@study-VirtualBox:~$ sudo apt update && sudo apt upgrade -y

GParted 패키지 deb 파일 다운로드

study@study-VirtualBox:~/다운로드$ wget http://kr.archive.ubuntu.com/ubuntu/pool/main/g/gparted/gparted_0.30.0-3ubuntu2_amd64.deb


deb 파일 다운로드 예시

study@study-VirtualBox:~$ cd ~/다운로드
study@study-VirtualBox:~/다운로드$ wget http://kr.archive.ubuntu.com/ubuntu/pool/main/g/gparted/gparted_1.0.0-0.1build1_amd64.deb
--2020-07-22 12:46:39--  http://kr.archive.ubuntu.com/ubuntu/pool/main/g/gparted/gparted_1.0.0-0.1build1_amd64.deb
Resolving kr.archive.ubuntu.com (kr.archive.ubuntu.com)... 91.189.91.38, 91.189.91.39, 91.189.88.142, ...
접속 kr.archive.ubuntu.com (kr.archive.ubuntu.com)|91.189.91.38|:80... 접속됨.
HTTP request sent, awaiting response... 200 OK
Length: 400656 (391K) [application/x-debian-package]
Saving to: ‘gparted_1.0.0-0.1build1_amd64.deb’

gparted_1.0.0-0.1bu 100%[===================>] 391.27K   238KB/s    in 1.6s    

2020-07-22 12:46:41 (238 KB/s) - ‘gparted_1.0.0-0.1build1_amd64.deb’ saved [400656/400656]

study@study-VirtualBox:~/다운로드$ 


GDebi를 통한GParted 설치

20.04에서 설치

프로그램 표시 화면에서 GDebi 패키지 설치 프로그램 아이콘을 클릭하여 프로그램을 실행해줍니다.


위 그림은 GDebi 패키지 설치 프로그램 창의 기본 화면입니다.


위 그림처럼 파일(F) - 열기(O)를 눌러줍니다. 단축키는 Ctrl+O입니다.


그럼 소프트웨어 패키지 열기 창이 실행됩니다. 미리 다운받은 .deb 파일을 선택하고 창 우상단의 열기 버튼을 눌러줍니다.


만약 활성화되어 있는 저장소 내에 로컬 디스크로 다운받은 것과 같은 버전의 패키지가 있는 경우 위 그림과 같은 안내창이 뜹니다.

이런 경우 가능하면 로컬디스크로 다운받은 deb 패키지가 아니라 저장소의 동일 패키지를 설치하는 것을 권장합니다.


deb 패키지가 위 그림과 같이 GDebi 패키지 설치 프로그램에 인식이 되면 패키지 설치 버튼을 누르시기 바랍니다. 그러면 해당 패키지가 설치될 것입니다.


아니면 파일관리자(Nautilus)를 실행하여 설치할 deb 패키지 파일 위에 마우스를 올려두고 오른쪽 버튼을 누르면 위 그림처럼 메뉴가 뜨는데 다른 프로그램으로 열기를 선택해줍니다.


그러면 실행할 프로그램을 선택하는 조그만 창이 뜨는데 GDebi 패키지 설치 프로그램을 선택하고 선택 버튼을 눌러줍니다. 그러면 GDebi 패키지 설치 프로그램이 실행되고 이후 설치 과정은 동일합니다.


참고로 GDebi 패키지 설치 프로그램 창에서 자세한 내용 버튼을 누르면 위 그림처럼 추가 정보를 보여줍니다.


deb 패키지 인식이 완료되면 창 우상단의 패키지 설치 버튼을 눌러줍니다.


그러면 인증 창이 뜹니다. 계정 암호를 입력하고 인증 버튼이 활성화되면 해당 버튼을 눌러줍니다.


그러면 위 그림처럼 패키지 설치가 진행됩니다.


패키지 설치가 완료되면 위 그림과 같이 안내가 뜹니다.


진행 과정이 궁금하시면 터미널을 눌러주시면 됩니다. 그러면 위 그림처럼 자세한 진행 과정이 표시됩니다.


패키지 설치 후 GDebi 패키지 설치 프로그램 창은 위 그림과 같이 표시됩니다.

패키지 설치와 패키지 다운로드 버튼이 패키지 다시 설치, 패키지 다운로드, 패키지 제거 이렇게 세개의 버튼으로 바뀌게 됩니다.


18.04에서 설치

프로그램 표시 화면에서 GDebi 패키지 설치 프로그램 아이콘을 클릭해줍니다.


실행된 GDebi 패키지 설치 프로그램 창에서 위 그림처럼 파일 - 열기 메뉴를 선택해줍니다.


소프트웨어 패키지 열기 창에서 다운받은 deb 파일을 선택하고 열기 벝느을 눌러줍니다.


활성화된 저장소에 같은 버전의 패키지가 있으면 위 그림처럼 안내창이 뜹니다. 만약 이런 경우 가능하면 저장소의 것을 이용하시는 것을 권장합니다.


아니면 파일 관리자(Nautilus)를 실행하여 다운받은 deb 패키지를 선택하고 해당 아이콘 위에 마우스를 올린 다음 오른쪽 버튼을 눌러줍니다. 그러면 위 그림처럼 메뉴가 뜨는데 다른 프로그램으로 열기 메뉴를 선택해줍니다.


프로그램 선택 창에서 GDebi 패키지 설치 프로그램을 선택하고 창 우상단의 선택 버튼을 눌러줍니다.


GDebi 패키지 설치 프로그램이 선택한 deb 패키지를 인식합니다. 이후 패키지 설치 버튼을 눌러줍니다. 그러면 패키지 설치가 진행됩니다.


패키지 설치가 완료되면 위 그림과 같이 표시됩니다. 안내 창을 닫아줍니다.


위 그림은 해당 패키지가 설치된 후의 GDebi 패키지 설치 프로그램 창 화면입니다.


프로그램 설치로 GParted 설치

우분투 20.04에서 설치

파일 관리자(Nautilus)를 실행하여 다운받은 deb 패키지를 선택하고 해당 아이콘 위에 마우스를 올린 다음 오른쪽 버튼을 눌러줍니다. 그러면 위 그림처럼 메뉴가 뜨는데 프로그램 설치(으)로 열기 메뉴를 선택해줍니다.


위 그림과 같이 해당 패키지 설치 화면이 나타납니다. 내용을 확인하시고 설치 버튼을 눌러줍니다.


인증 요구창이 뜹니다. 계정 암호를 입력하고 활성화된 인증 버튼을 눌러줍니다.


위 그림처럼 패키지 설치가 진행됩니다.


패키지 설치가 완료되면 위 그림과 같이 표시됩니다.


우분투 18.04에서 설치

우분투 20.04에서의 설치 과정과 대동소이합니다. 단 우분투 20.04에서는 프로그램 설치(으)로 열기 메뉴가 우분투 18.04에서는 위 그림처럼 소프트웨어 설치(으)로 열기 메뉴 이름이 다를 뿐입니다.


패키지 설치 화면이 뜨면 정보를 확인하고 설치 버튼을 눌러주시면 됩니다.


패키지 설치가 완료되면 화면이 위 그림처럼 바뀌게 됩니다.





dpkg 명령어로 GParted 설치

study@study-VirtualBox:~$ cd ~/다운로드
study@study-VirtualBox:~/다운로드$ ls | grep gparted
gparted_0.30.0-3ubuntu2_amd64.deb
study@study-VirtualBox:~/다운로드$ sudo dpkg -i gparted_0.30.0-3ubuntu2_amd64.deb
[sudo] study의 암호: 
Selecting previously unselected package gparted.
(데이터베이스 읽는중 ...현재 219978개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack gparted_0.30.0-3ubuntu2_amd64.deb ...
Unpacking gparted (0.30.0-3ubuntu2) ...
gparted (0.30.0-3ubuntu2) 설정하는 중입니다 ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
study@study-VirtualBox:~/다운로드$ 


소스 컴파일을 통한 GParted 설치 - 비추천

컴파일 설치란 패키지의 원본 소스 코드를 컴퓨터가 이해할 수 있도록 번역하여 설치하는 방식을 일컫습니다. 근래에는 컴파일 설치가 굉장히 줄었습니다만 아직도 현업에서 서버를 관리하는 분들은 기본적으로 컴파일 설치를 할 줄 알아야 하고 또 실제로 빈번하게 활용합니다.

각 배포판마다 패키지 관리자 프로그램이 달라 패키지 관리 명령어도 그 형식이 대동소이할지라도 분명히 차이가 존재합니다. 컴파일 설치의 장점은 각 리눅스 배포판의 패키지 관리 방식에 구애받지 않고 통일된 방식으로 패키지를 설치할 수 있다는 점입니다.

두 번째로 자신의 패키지 설치 위치부터 환경 변수까지 입맛대로 바꾸어 설치할 수 있다는 점입니다. 각 회사별 서버 보안 정책이 다르므로 기업의 서버 관리자들에게 이러한 장점이 더욱 두드러집니다.

세 번째로 최신 버전을 설치해 운용해볼 수 있다는 점입니다. 따라서 추후의 서버 관리에 보다 빨리 방향을 잡고 대처할 수 있습니다.

이러한 장점들에도 불구하고 저는 소스 컴파일 설치를 권장하지 않습니다. 관리자가 모든 환경 설정을 커스터마이징할 수 있다는 것은 달리 이야기하면 그 세세한 부분까지 관리자가 모두 일일이 설정해주어야 하고 또 패키지 유지보수를 위해 그 설정값을 모두 기억하고 있어야 한다는 말도 되기 때문에 업무량이 굉장히 늘어나게 됩니다.

또한 패키지에 보안 업데이트가 있는 경우 관리자는 별 고민 없이 각 배포판 저장소를 통해 손쉽게 업그레이드할 수 있지만 컴파일 설치를 한 경우에는 보안 업데이트 여부를 관리자가 매일같이 확인하고 수고스럽게 업그레이드 작업을 해주어야 합니다.

또한그레이드를 하다가 패키지가 꼬이기라도 하면 상당한 내공의 서버 관리자가 아닌 이상 고생할 수밖에 없습니다.

게다가 요즘은 바이너리 패키지들도 굉장히 범용적이고 견고하게 잘 설계되어 배포되고 있습니다. 따라서 특별한 이유가 없다면 굳이 소스 컴파일 설치를 고집할 필요는 없습니다.

그래도 한번쯤은 알고 넘어갈 필요가 있는 것 같아  다뤄봅니다.

APT 저장소 패키지 목록 업데이트 및 패키지 업그레이드

study@study-VirtualBox:~$ sudo apt update
study@study-VirtualBox:~$ sudo apt upgrade -y

의존성 패키지 설치

study@study-VirtualBox:~$ sudo apt install libc6-dev g++ gcc \
> build-essential gnome-common yelp-tools libglib2.0-dev uuid-dev libparted-dev libgtkmm-3.0-dev \
> libatkmm-1.6-1v5 libc6 libgcc1 libglib2.0-0 libglibmm-2.4-1v5 libgtk2.0-0 libgtkmm-2.4-1v5 libpangomm-1.4-1v5 libparted-fs-resize0 libparted2 libsigc++-2.0-0v5 libstdc++6 libuuid1 \
> dmraid dmsetup dosfstools gpart jfsutils kpartx mtools ntfs-3g reiser4progs reiserfsprogs xfsprogs yelp

위 GParted 설치에 필요한 의존성 패키지는 다음에서 확인했습니다.

첫 번째 줄 : 컴파일에 필요한 필수 패키지

두 번째 줄 : https://gitlab.gnome.org/GNOME/gparted/blob/master/README

세 번째 줄 : https://packages.ubuntu.com/bionic/gparted - 의존성 패키지

네 번째 줄 : https://packages.ubuntu.com/bionic/gparted - 제안 패키지

참고로 세 번째 줄과 네 번째 줄 의존성 패키지 목록은 우분투 APT 저장소에 올라가 있는 GParted 0.30.0 의존성 패키지들입니다. 설치 안내할 1.0.0과는 버전 차이가 있긴 하지만 ㅍ키지 충돌은 없는 것으로 보입니다.

GParted 1.0.0 다운로드

study@study-VirtualBox:~$ cd /usr/local/src study@study-VirtualBox:/usr/local/src$ sudo wget --content-disposition -c https://sourceforge.net/projects/gparted/files/gparted/gparted-1.0.0/gparted-1.0.0.tar.gz

소스코드로 컴파일 설치할 때 소스코드들을 체계적으로 관리하기 위해 관례적으로 /usr/local/src에 내려 받습니다.

Gparted 패키지 소스코드는 소스포지에 공개되어 있는데 해당 파일을 쉽게 내려받으려면 브라우저에서 내려 받으시면 됩니다. 단 다운로드되는 위치는 특별한 설정이 없다면 일반적으로 ~/다운로드입니다.

그러나 wget 명령어로 내려 받으려면 링크 주소 복사로 얻을 수 있는 주소로는 소스 파일이 바로 연결되는 않으므로 위 명령어 같이 특별한 옵션을 넣어 실행해주어야 합니다.

GParted 소스코드 압축 파일 해제

study@study-VirtualBox:/usr/local/src$ sudo tar xzf gparted-1.0.0.tar.gz

Gparted 컴파일 설정

study@study-VirtualBox:/usr/local/src$ ls
gparted-1.0.0  gparted-1.0.0.tar.gz
study@study-VirtualBox:/usr/local/src$ cd gparted-1.0.0
study@study-VirtualBox:/usr/local/src/gparted-1.0.0$ sudo ./configure

ls 명령어를 이용해 해당 디렉토리에 위치한 하위 디렉토리와 파일을 확인하고, cd 명령어를 이용해 소스코드 디렉토리로 이동합니다.

그후, ./configure 명령을 이용해 컴파일 설정을 해줍니다. 다른 설정값 없이 ./configure만 입력하면 해당 소스코드가 설정한 기본값으로 설정됩니다.

./configure를 실행하면 다음과 같이 진행됩니다.

study@study-VirtualBox:/usr/local/src/gparted-1.0.0$ sudo ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for gawk... (cached) gawk
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for pkexec >= 0.102... 0.105 found
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for LC_MESSAGES... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for ngettext in libc... yes
checking for dgettext in libc... yes
checking for bind_textdomain_codeset... yes
checking for msgfmt... /usr/bin/msgfmt
checking for dcgettext... yes
checking if msgfmt accepts -c... yes
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking whether NLS is requested... yes
checking for intltool >= 0.36.0... 0.51.0 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... (cached) /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... (cached) /usr/bin/msgfmt
checking for gmsgfmt... (cached) /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.26.1
checking for XML::Parser... ok
checking for uuid_generate in -luuid... yes
checking for dlopen in -ldl... yes
checking for ped_device_read in -lparted... yes
checking for libparted >= 2.2 (querying pkg-config)... 3.2
checking for 2.0 <= libparted <= 3.0 (loop table creation doesn't delete old partitions)... (cached) no
checking for ped_file_system_resize in -lparted... no
checking for ped_file_system_resize in -lparted-fs-resize... yes
checking for libparted >= 3.2 (online resize)... (cached) yes
checking for GTHREAD... yes
checking for GTKMM... yes
checking for GLIBMM... yes
checking for glibmm >= 2.45.40 which requires C++11 compilation... yes
checking for libsigc++ >= 2.5.1 which requires C++11 compilation... yes
checking for gtkmm >= 3.18.0 which requires C++11 compilation... yes
checking whether g++ supports C++11 features with -std=gnu++11... yes
checking for Gtk::Label::set_xalign() method... yes
checking for Gtk::ScrolledWindow::set_propagate_natural_width() method... yes
checking whether help documentation should be built... yes
checking for itstool... itstool
checking for xmllint... xmllint
checking whether to use native libparted /dev/mapper dmraid support... no
checking whether online resize support is enabled... yes
checking whether to explicitly grant root access to the display... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating data/Makefile
config.status: creating data/icons/Makefile
config.status: creating doc/Makefile
config.status: creating help/Makefile
config.status: creating include/Makefile
config.status: creating lib/Makefile
config.status: creating lib/gtest/Makefile
config.status: creating src/Makefile
config.status: creating po/Makefile.in
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: executing po/stamp-it commands

======================== Final configuration ===========================
                         Installing into prefix  :  /usr/local

                      Build help documentation?  :  yes

           Use native libparted dmraid support?  :  no

   Explicitly grant root access to the display?  :  no

       --- Features Based On Libparted Version ---
       Need delete old partitions before
              creating a loop table workaround?  :  no
   Have old libparted file system resizing API?  :  no
   Have new libparted file system resizing LIB?  :  yes
                  Enable online resize support?  :  yes

 If all settings are OK, type make and then (as root) make install
========================================================================
study@study-VirtualBox:/usr/local/src/gparted-1.0.0$ 


MAKE

study@study-VirtualBox:/usr/local/src/gparted-1.0.0$ sudo make

MAKE INSTALL

study@study-VirtualBox:/usr/local/src/gparted-1.0.0$ sudo make install


GParted 실행

study@study-VirtualBox:~$ sudo gparted
[sudo] study의 암호: 
Unit -.mount does not exist, proceeding anyway.
GParted 1.0.0
configuration --enable-online-resize
libparted 3.2

터미널에서 sudo gparted르 실행하면 위 구문들이 나오면서 GParted가 실행됩니다. 참고로 터미널을 닫으면 강제로 GParted가 종료됩니다.

우분투 프로그램 표시 목록에 GParted  아이콘이 생기지만 해당 아이콘을 눌러 사용자 인증을 받아도 실행되지는 않습니다. 이유는 알 수 없네요.

컴파일 설치는 이렇게 패키지 실행 시 오류가 발생하거나 아예 오류를 내뿜으며 설치가 안되는 경우가 잦습니다. 리눅스에 익숙하고 패키지 관리에 자신있는 분이 아니라면 실제 서비스 중인 서버에 컴파일 설치는 하지 마시기 바랍니다.

Git 저장소를 통한 GParted 설치

APT 저장소 패키지 목록 업데이트 및 패키지 업그레이드

study@study-VirtualBox:~$ sudo apt update
study@study-VirtualBox:~$ sudo apt upgrade -y

의존성 패키지 설치

study@study-VirtualBox:~$ sudo apt install libc6-dev g++ gcc \
> build-essential gnome-common yelp-tools libglib2.0-dev uuid-dev libparted-dev libgtkmm-3.0-dev \
> libatkmm-1.6-1v5 libc6 libgcc1 libglib2.0-0 libglibmm-2.4-1v5 libgtk2.0-0 libgtkmm-2.4-1v5 libpangomm-1.4-1v5 libparted-fs-resize0 libparted2 libsigc++-2.0-0v5 libstdc++6 libuuid1 \
> dmraid dmsetup dosfstools gpart jfsutils kpartx mtools ntfs-3g reiser4progs reiserfsprogs xfsprogs yelp

위 GParted 설치에 필요한 의존성 패키지들에 대한 자세한 정보는 위의 소스 컴파일을 통한 GParted 설치 - 의존성 패키지 설치에서 참고하시기 바랍니다.

GParted Git 저장소 복제

study@study-VirtualBox:~$ mkdir git
study@study-VirtualBox:~$ cd git
study@study-VirtualBox:~/git$ git clone https://gitlab.gnome.org/GNOME/gparted.git
'gparted'에 복제합니다...
remote: Enumerating objects: 20957, done.
remote: Counting objects: 100% (20957/20957), done.
remote: Compressing objects: 100% (4399/4399), done.
remote: Total 20957 (delta 16706), reused 20632 (delta 16493)
오브젝트를 받는 중: 100% (20957/20957), 10.19 MiB | 320.00 KiB/s, 완료.
델타를 알아내는 중: 100% (16706/16706), 완료.
study@study-VirtualBox:~/git$

.sh 파일 실행

study@study-VirtualBox:~/git$ cd gparted
study@study-VirtualBox:~/git/gparted$ sudo ./autogen.sh
[sudo] study의 암호: 
/usr/bin/gnome-autogen.sh
/usr/bin/yelp-build
checking for automake >= 1.9...
  testing automake... found 1.15.1
checking for autoreconf >= 2.53...
  testing autoreconf... found 2.69
checking for glib-gettext >= 2.2.0...
  testing glib-gettextize... found 2.56.4
checking for intltool >= 0.25...
  testing intltoolize... found 0.51.0
checking for pkg-config >= 0.14.0...
  testing pkg-config... found 0.29.1
Checking for required M4 macros...
**Warning**: I am going to run `configure' with no arguments.
If you wish to pass any to it, please specify them on the
`./autogen.sh' command line.

Processing ./configure.ac
Running glib-gettextize... Ignore non-fatal messages.
Copying file po/Makefile.in.in

Please add the files
  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
  progtest.m4
from the /usr/share/aclocal directory to your autoconf macro directory
or directly to your aclocal.m4 file.
You will also need config.guess and config.sub, which you can get from
ftp://ftp.gnu.org/pub/gnu/config/.

Running intltoolize...
Running autoreconf...
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force --warnings=no-portability -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --force --warnings=no-portability
autoreconf: running: /usr/bin/autoheader --force --warnings=no-portability
autoreconf: running: automake --add-missing --copy --force-missing --warnings=no-portability
configure.ac:16: installing './compile'
configure.ac:17: installing './config.guess'
configure.ac:17: installing './config.sub'
configure.ac:8: installing './install-sh'
configure.ac:8: installing './missing'
Makefile.am: installing './INSTALL'
lib/gtest/Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
autoreconf: Leaving directory `.'
Running ./configure --enable-maintainer-mode ...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for gawk... (cached) gawk
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for pkexec >= 0.102... 0.105 found
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for ngettext in libc... yes
checking for dgettext in libc... yes
checking for bind_textdomain_codeset... yes
checking for msgfmt... /usr/bin/msgfmt
checking for dcgettext... yes
checking if msgfmt accepts -c... yes
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking whether NLS is requested... yes
checking for intltool >= 0.36.0... 0.51.0 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... (cached) /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... (cached) /usr/bin/msgfmt
checking for gmsgfmt... (cached) /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.26.1
checking for XML::Parser... ok
checking for uuid_generate in -luuid... yes
checking for dlopen in -ldl... yes
checking for ped_device_read in -lparted... yes
checking for libparted >= 2.2 (querying pkg-config)... 3.2
checking for 2.0 <= libparted <= 3.0 (loop table creation doesn't delete old partitions)... (cached) no
checking for ped_file_system_resize in -lparted... no
checking for ped_file_system_resize in -lparted-fs-resize... yes
checking for libparted >= 3.2 (online resize)... (cached) yes
checking for GTHREAD... yes
checking for GTKMM... yes
checking for GLIBMM... yes
checking for glibmm >= 2.45.40 which requires C++11 compilation... yes
checking for libsigc++ >= 2.5.1 which requires C++11 compilation... yes
checking for gtkmm >= 3.18.0 which requires C++11 compilation... yes
checking whether g++ supports C++11 features with -std=gnu++11... yes
checking for Gtk::Label::set_xalign() method... yes
checking for Gtk::ScrolledWindow::set_propagate_natural_width() method... yes
checking whether help documentation should be built... yes
checking for itstool... itstool
checking for xmllint... xmllint
checking whether to use native libparted /dev/mapper dmraid support... no
checking whether online resize support is enabled... yes
checking whether to explicitly grant root access to the display... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating data/Makefile
config.status: creating data/icons/Makefile
config.status: creating doc/Makefile
config.status: creating help/Makefile
config.status: creating include/Makefile
config.status: creating lib/Makefile
config.status: creating lib/gtest/Makefile
config.status: creating src/Makefile
config.status: creating po/Makefile.in
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: executing po/stamp-it commands

======================== Final configuration ===========================
                         Installing into prefix  :  /usr/local

                      Build help documentation?  :  yes

           Use native libparted dmraid support?  :  no

   Explicitly grant root access to the display?  :  no

       --- Features Based On Libparted Version ---
       Need delete old partitions before
              creating a loop table workaround?  :  no
   Have old libparted file system resizing API?  :  no
   Have new libparted file system resizing LIB?  :  yes
                  Enable online resize support?  :  yes

 If all settings are OK, type make and then (as root) make install
========================================================================
Now type `make' to compile gparted
study@study-VirtualBox:~/git/gparted$

MAKE

study@study-VirtualBox:/usr/local/src/gparted-1.0.0$ sudo make

MAKE INSTALL

study@study-VirtualBox:/usr/local/src/gparted-1.0.0$ sudo make install


GParted 실행

study@study-VirtualBox:~$ sudo gparted
[sudo] study의 암호: 
Unit -.mount does not exist, proceeding anyway.
GParted 1.0.0
configuration --enable-online-resize
libparted 3.2

소크코드 컴파일 설치와 마찬가지로 아이콘 더블 클릭으로는 실행이 되지 않으며 터미널로 실행해야만 작동합니다.

GParted 실행 화면

디스크 크기가 2테라바이트 이하인 경우


디스크 크기가 2테라바이트를 초과하는 경우

위 두 화면에 대한 자세한 설명은 아래 링크를 참고하시기 바랍니다.