본문 바로가기
Linux/Linux Shell Command

dpkg/apt - 리눅스에서 프로그램 설치하기

by 드로니뚜벅이 2022. 4. 5.

리눅스 배포판은 크게 슬렉웨어(Slackware) 계열, 데비안(Debian) 계열, 그리고 레드햇(RedHat) 계열로 나눌 수 있습니다.

슬렉웨어 계열의 대표적인 배포판은 수세(OpenSUSE) 리눅스가 있습니다. 이 배포판은 독일에서 출시되어 유럽에서 절대적인 인기를 누리고 있습니다. 데비안 계열에는 우분투(Ubuntu)와 리눅스 민트(Mint)와 같은 배포판이 있고, 레드햇 계열에는 CentOS와 페도라(Fedora)와 같은 배포판이 있습니다.

 

여기서는 데비안 계열에서 패키지 설치를 위해 사용되는 dpkg와 apt에 대해서 간략히 설명하도록 하겠습니다.

dpkg

설치된 패키지 검색 (option: -l or --list)

$ dpkg -l | grep -i codelite
$ sudo apt-cache search ^codelite

 

패키지 설치 (option: -i or --install, 형식: dpkg -i <패키지명>.deb)

$ sudo dpkg -i gitkraken-amd64.deb
or
$ sudo dpkg --install gitkraken-amd64.deb

 

패키지 삭제 (option: -r or --remove, 형식: dpkg -r <패키지명>

$ sudo dpkg -r gitkraken

 

패키지 삭제 (option: -P or --purge <패키지명>) - 설정파일까지 완전히 삭제

$ sudo dpkg --purge gitkraken

 

옵션(Options) 정리

Option Description
-i <패키지명> --install, 패키지를 설치할 때 사용
-R <디렉토리명> 설치 옵션 -i와 같이 사용되어 지정한 디렉토리 안에 있는 패키지를 설치할 때 사용
-l --list, 설치되어 있는 패키지 출력
-l <패키지명> --info, 패키지 파일에 대한 정보 출력
-c <패키지명> --contents, 패키지 파일에 포함된 파일 정보 출력
-L <패키지명> --listfiles, 패키지가 설치한 목록 출력
-r <패키지며> --remove, 패키지 제거 (환경 설정 파일은 제거하지 않음)
-P <패키지명> --purge, 환경 설정 파일을 포함하여 모두 제거
-S <파일명> --search, 해당 파일을 설치한 패키지 이름 출력
--unpack <패키지명> 환경 설정 없이 언팩
--configure <패키지명> --unpack 옵션으로 언팩한 패키지를 환경 설정

 

apt (Advanced Packing Tool)

apt는 우분투(Ubuntu) 및 데비안(Debian) 계열 리눅스 배포판에서 deb 패키지를 설치(install), 업데이트(upgrade), 제거(remove) 및 관리하기 위한 명령어 도구입니다. apt-get 및 apt-cache 에서 자주 사용되는 명령을 일부 옵션의 다른 기본값과 결합하여 제공합니다.

 

이전에는 apt-get을 사용했으나 최근 우분투에서는 주로 apt를 사용합니다. 다른 패키지 관리자이긴 하지만 제공하는 기능은 거의 같기 때문에 어느 것을 사용하더라도 문제가 되지는 않지만 개인적으로는 apt를 선호하는 편입니다.

apt-get과 apt-cache를 하나의 명령어로 사용하기 위해 apt가 생겼났고 우분투 14.04 이후로는 apt-get보다는 apt를 권장하는 분위기입니다. 실제로 사용하시다 보면 느끼시겠지만 apt가 진행상황을 더 자세히 보여줍니다.

참고로, apt-get은 거의 모두 apt로 대체 가능합니다.

  • apt는 인덱스를 가지고 관리되고 있으며 이 인덱스는 /etc/apt/sources.list에 있습니다. 이 곳에 저장된 저장소에서 사용할 패키지의 정보를 얻습니다.
  • apt를 이용해서 설치된 deb 패키지는 /var/cache/apt/archives/에 설치됩니다.
  • apt 대부분의 명령어는 sudo 권한을 가지고 실행해야 합니다.

● 패키지 인덱스 정보 업데이트

- 설치되어 있는 패키지들의 새로운 버전이 있는지 확인할 때 사용합니다.

$ sudo apt update

 

● 설치된 패키지를 새로운 버전으로 업그레이드 (아래 명령어는 Visual Studio Code 업그레이드 하는 경우)

$ sudo apt upgrade
$ sudo apt upgrade code

 

● 패키지 설치 (Package Name에 설치하고자 하는 패키지명 입력)

$ sudo apt install <Package Name>

 

● 패키지 삭제 (설정 파일은 삭제하지 않습니다)

$ sudo apt remove <Package Name>

 

● 패키지 삭제 (설정 파일까지 모두 삭제합니다)

$ sudo apt purge <Package Name>

 

● 사용하지 않은 패키지 제거

$ sudo apt autoremove

 

● 설치가 가능하거나 설치된 그리고 업그레이드 가능한 패키지 확인하기

- 설치 가능한 패키지 확인

$ sudo apt list
$ sudo apt list | grep "codelite"

- 설치된 패키지 확인

$ sudo apt list --installed

- 업그레이드 가능한 패키지 확인

$ sudo apt list --upgradeable

 

● 패키지 상세 정보 확인하기

$ sudo apt show <Package Name>
$ sudo apt show "codelite"

 

● deb 파일 apt 로 설치하기

$ sudo apt install <deb file>
$ sudo apt install ./code_1.67.2-1234567890_amd64.deb // example

 

APT vs APT-GET(Old)

APT APT_GET Description
apt install apt-get install 패키지 설치
apt remove apt-get remove 패키지 삭제
apt purge apt-get purge 패키지와 관련 설정 정보 삭제
apt update apt-get update 저장소(Repository) 인덱스 갱신
apt upgrade apt-get upgrade 업그레드 가능한 모든 패키지 업그레이드
apt autoremove apt-get autoremove 불필요한 패키지 제거
apt full-upgrade apt-get dist-upgrade 의존성 고려한 패키지 업그레이드
apt search apt-cache search 프로그램 검색
apt show apt-cache show 패키지 상세 정보 출력