APT

한국 데비안 사용자 모임
둘러보기로 가기 검색하러 가기

apt(Advanced Packaging Tool)는 메뉴가 지원되는 dselect와 달리 명령행에서 수행된다. 주로 쓰이는 명령어는 apt-get, apt-cache이다. apt-get은 패키지 설치, 삭제 그리고 apt-cache는 패키지 검색, 패키지 내용 보기 등의 기능을 제공한다.

apt-get 주요 명령, 옵션에 대한 설명은 다음과 같다.

apt-get 명령

update : 패키지 목록 갱신

upgrade, dselect-upgrade, dist-upgrade : 패키지 및 시스템 업그레이드

install : 패키지 설치

remove : 패키지 삭제

source : 소스 패키지 설치

build-dep : 소스 패키지를 컴파일하기 위해 필요한 패키지 설치

apt-get 옵션

-d : 패키지를 다운로드만 하고 설치하지 않음

-f : 업그레이드되는 패키지를 보여줌

-b : 소스패키지를 다운로드한 후에 컴파일

패키지 설치

패키지를 설치하는 명령어는 다음과 같다.(출력되는 결과는 시스템에 따라 다르게 나올수 있다.)

khkim:/# apt-get install koffice
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
 kchart kdebase-libs kformula kivio koffice-libs kontour koshell kpresenter
 kspread kugar kword 
The following NEW packages will be installed:
 kchart kdebase-libs kformula kivio koffice koffice-libs kontour koshell
 kpresenter kspread kugar kword 
0 packages upgraded, 12 newly installed, 0 to remove and 0  not upgraded.
Need to get 9522kB of archives. After unpacking 30.0MB will be used.
Do you want to continue? [Y/n]

apt를 이용하면 의존성이 걸린 패키지들이 자동으로 같이 설치된다. 만약 이미 설치된 패키지의 파일 일부가 손상된 경우는 --reinstall이라는 옵션을 주어 재설치할 수 있다.

패키지 삭제

패키지를 삭제하는 명령어는 다음과 같다.

khkim:/# apt-get remove mozilla-browser
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
 mozilla-browser mozilla-mailnews mozilla-psm nautilus-mozilla 
0 packages upgraded, 0 newly installed, 4 to remove and 0  not upgraded.
Need to get 0B of archives. After unpacking 31.3MB will be freed.
Do you want to continue? [Y/n] 

모질라가 삭제되면 모질라에 의존성이 있는 패키지도 같이 삭제가 된다. --purge는 환경 설정 파일까지 삭제하는 옵션이다.

패키지 업그레이드

패키지를 업그레이드하는 명령어는 upgrade, dselect-upgrade, dist-upgrade로 3가지로 구분되어 존재한다. upgrade는 버전 변화가 있는 패키지만 업그레이드하며, dselect-upgrade는 버전 변화가 있는 패키지와 패키지의 의존성을 검사해서 업그레이드한다. dist-upgrade는 배포본에 따라 추가, 삭제되는 패키지들을 검사하여 업그레이드를 수행한다. 가장 많이 쓰이는 것은 apt-get update; apt-get dist-upgrade이다.

소스 패키지 설치 -> 바이너리 패키지 생성법

이번에는 바이너리 패키지가 아닌 소스 패키지를 설치하여 바이너리 패키지로 만드는 방법을 알아보자. 먼저 해야 할 일은 /etc/apt/sources.list에 deb-src를 추가하는 것이다. 소스 패키지를 다운로드하는 명령어는 다음과 같다.

khkim:/# apt-get source apache
Reading Package Lists... Done
Building Dependency Tree... Done
Need to get 2803kB of source archives.
Get:1 http://ftp.devolus.org woody/main apache 1.3.22-2 (dsc) [829B]
Get:2 http://ftp.devolus.org woody/main apache 1.3.22-2 (tar) [2512kB]
Get:3 http://ftp.devolus.org woody/main apache 1.3.22-2 (diff) [291kB]
Fetched 2803kB in 4s (649kB/s)
dpkg-source: extracting apache in apache-1.3.22

해당 소스리스트에서 소스 패키지(dsc, tar.gz, diff)를 다운로드한 후에 소스를 현재 디렉토리에 풀어준다. -b 옵션은 패키지 다운로드와 동시에 바이너리 패키지로 컴파일을 수행한다. -b 옵션을 사용 안 했을 경우는 풀린 디렉토리에서 dpkg-buildpackage -rfakeroot -uc -b를 수행해서 바이너리 패키지로 만들면 된다.

소스패키지를 컴파일하여 바이너리 패키지를 만들 때 필요한 라이브러리를 설치하기 위해서는 다음과 같은 명령어를 수행한다.

khkim:/# apt-get build-dep apache
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  libdb3-dev libgnome-dev libgnorba-dev 
The following NEW packages will be installed:
  libdb2-dev libecpg3 libmysqlclient10-dev libpgsql2.1 libssl-dev
  postgresql-dev 
0 packages upgraded, 6 newly installed, 3 to remove and 0  not upgraded.
Need to get 2541kB of archives. After unpacking 5684kB will be used.
Do you want to continue? [Y/n]

apache를 컴파일하기 위한 패키지들을 설치해준다. 패키지 검색을 위해서는 apt-cache search를 이용한다. 설치되어 있는 않은 패키지도 검색한다.

khkim:/# apt-cache search irc      
bezerk - GTK based IRC client
chipmunk-log - a circuit schematic capture tool and simulation environment.
epic - Modified ircII client with additional functionality
icom - Software control for ICOM radios
ircd-dalnet - DALnet IRCd (IRC server)
iroffer - IRC file distribution bot
irssi - A Gnome irc client
proj-ps-doc - PostScripts docs for cartographic projection filters and library
stopafter - kill commands after a given time
task-gnome-net - GNOME network applications
.....

패키지 검색

특정 단어로 시작하는 패키지를 찾기 위해서는 apt-cache pkgnames를 이용한다.

khkim:/tmp# apt-cache pkgnames xmms
xmms-bumpscope
xmms-goom
xmms-fmradio
xmms-modplug
xmms-infinity
xmms-jess
xmms-cdread
xmms-lirc
xmms-ko
...

패키지 정보 확인

패키지의 정보를 보기 위해서는 apt-cache show를 이용한다.

khkim:/tmp# apt-cache show apache
Package: apache
Priority: optional
Section: web
Installed-Size: 783
Maintainer: Johnie Ingram <johnie@debian.org>
Architecture: i386
Version: 1.3.22-2
Replaces: apache-modules
Provides: httpd
Depends: libc6 (>= 2.2.4-2), libdb2 (>= 2:2.7.7-4), mime-support, apache-common (>= 1.3.22), apache-common (<< 1.3.23), perl5 | perl
Suggests: apache-doc
Conflicts: apache-modules, libapache-mod-perl (<= 1.17-1), jserv (<= 1.1-3)
Filename: pool/main/a/apache/apache_1.3.22-2_i386.deb
...

패키지 이름, 우선 순위, 메인테이너, 버전 번호, 의존성 기타 등등 패키지에 대한 자세한 정보를 참조할 수 있다.

작성자 및 의견

최초 작성 2002년 11월 15일 -- 김기헌

수정 2017년 05월 07일 -- westporch (항목별 단락 제목을 생성함)