Translation(s): English - Français - -Italiano - 한국어(Korean)


패키지 관리 시스템은 Debian 시스템에 설치된 소프트웨어 전체를 하나로 묶는다. Debian 에서 "패키지(들)" 라고 하면 시스템에 설치되는 파일 꾸러미 제공체인 소프트웨어(각각), 패키지끼리의 의존성 관계, 소프트웨어 환경설정 등을 일컫는다. 패키지는 설치, (다른 패키지에서 더 이상 필요한 패키지가 아닌 경우 자동으로) 삭제가 가능하다.

Debian 설치 프로세스의 주는 Debian 이 동작하기 위해서 가장 기본적인 패키지들을 설치하는 것이다.

Debian 패키지 관리는 몇 가지 계층으로 나눌 수 있다. 건드리기 힘든 최하위 층은 dpkg, 이것과 연결된 프로그램으로 구성된다. 그것들의 상위 층에 Apt, apt-get, 그리고 더 새로운 aptitude 도구가 존재한다. 패키지 관리 도구들 에 앞서 언급한 도구들과 더불어 DebianPackage 파일과 함께 동작하는 도구들을 간략히 소개하고 있다.

모두 맨페이지 에 문서화 되어 있어서 궁금한 점들을 찾아 볼 수 있다. (이런 식으로 'man apt' 말이다). 이 도구들과 친하지 않다면 매일 쓰기에 유용하다고 검증된 도구들을 쓸 수 있다. 아래 분류를 참고하자:

전체화면을 지원하는 프런트 엔드

(ncurses 기반) 콘솔용 프로그램과 GUI 기반 프로그램이 있다.

기능이 유사하면서도 서로 차이가 나는 대체물들이 많이 존재한다. RPM (레드햇 패키지 관리자) 기반을 가진 리눅스 배포판 및 유사하게 파생된 배포판 유저들은 RedCarpet 과 Up2Date 를 사용할 수 있다.

명령행 프런트 엔드

일반적으로 명령행 도구들은 명령 뒤에 인자들을 연결하여 여러 처리과정들을(패키지 목록 관리, 패키지 검색, 패키지 설치, 패키지 구성)을 통합한다. 가장 기본적인 명령행 도구로 ?aptitude 가 있다. apt-get 는 유사한 목적을 수행하며, 더 이상 손꼽히는 도구군에 포함되진 않지만 여전히 사용하고 있다. 전형적으로 아래와 같이 실행한다:

"Apt 도움말":http://www.spack.org/wiki/UsingApt

전체 패키지 관리 기능에 대하여 더욱 정교한 명령행 인터페이스를 쓸 수 있게 ?ko/Wajig 라는 것도 있다.

저-차원 도구

크게 ko/dpkg 와 기타 꾸러미로 뭉뚱그려 부르는 것들은 한 가지 작업을 수행하는 명령들로 구성된다. 이것들은 레드햇의 "rpm" 명령에서 수행하는 기능들과 직접적으로 호환된다.

이 명령(파일)은 dpkg 에 들어있지 않으며, debconf 패키지에 포함되어 있다.

Debian 파일의 내용물

시스템 설치여부에 관계없이 Debian 저장소에 존재하는 패키지의 내용물을 확인하려면 apt-file 패키지를 설치하고 다음 명령을 실행한다:

$ apt-file update
$ apt-file list foo

다음 명령은 abc.deb 파일의 내용을 보여준다:

$ dpkg-deb -c abc.deb 

debconf 재설정하기

새 패키지에 특정하게 반영된 변경사항을 확인할 수 있도록 debconf 를 재설정하려면 ?Root 권한으로 다음 명령을 실행하라:

 # dpkg-reconfigure debconf

여기서 "medium" 를 고른다.

apt-get 과 dpkg 를 활용한 패키지 관리

APT 패키지 리소스 목록

/etc/apt/sources.list 파일은 apt 가 찾는 저장소 목록을 정의한다. 이 파일에 관해 더 알려면 맨페이지를 참고하라:

$ man 5 sources.list

신규 패키지 목록 가져오기

sources.list 파일로부터 신규 (혹은 판올림된) 패키지를 불러오려면 다음 명령을 실행하라:

# aptitude update

또는 그와 호환되는

# apt-get update

를 실행한다. 이 명령은 서버에서 새 릴리즈 파일을 확인한다. 지난 번 갱신 이후로 릴리즈 파일에 변경이 발생하였는지 검사할 정도로 기특하다.

전체 파일 업그레이드:

변경이 발생한 패키지들을 업데이트하려면 다음 명령을 실행하자:

# aptitude safe-upgrade

이 작업을 crond 에서 처리하도록 하려면 cron-apt 패키지 사용을 고려해보라.

낡은 apt-get 방식으로 실행하려면 아래와 같다:

# apt-get upgrade -u

뒤에 붙인 -u 인자는 판올림된 패키지 목록도 함께 보여준다. cron-job 에서 소스를 갱신하려면 -dy 인자를 붙이자. 이것은 새로운 패키지를 다운로드하되 설치하지 않는다. 추후 apt-get update -u 로 다운로드한 패키지들을 설치할 수 있다.

배포판 업그레이드

WARNING

Debian 공식 릴리즈 버전에서 다른 릴리즈 버전으로 업그레이드 시(이를 테면, lenny 에서 squeeze 로;)

  • release notes 에 소개된 업그레이드 명령을 따르는 것이 깨짐을 유발하지 않고 설치하는 가장 현명한 선택이 될 것이다.

여기서 apt-get 사용 시에는 (upgrade 대신) dist-upgrade 를 사용하도록 안내할 것이다. aptitude 를 사용한다면 적어도 (safe-upgrade 대신) full-upgrade 를 사용하여야 한다.

정식 릴리즈 업그레이드 시점이라면 다음 명령들을 실행하라:

# aptitude full-upgrade

또는

# apt-get dist-upgrade -dy

# apt-get dist-upgrade -u

dist-upgrade 는 최신 버전의 sid 에서 새 패키지 버전을 유지할 때 사용된다.

패키지 설치하기:

GUI 프로그램 없이 시스템에 패키지를 설치하려면 어떻게 해야 할까? 해답은 패키지명을 찾아서 아래처럼 실행하면

# aptitude install sylpheed-claws

또는

# apt-get install sylpheed-claws

sylpheed-claws 패키지를 추가한다.

패키지 삭제하기:

더 이상 사용하지 않는 foo 패키지를 삭제하려면 다음 명령을 실행하라:

# aptitude remove foo

또는

#  apt-get remove foo

지정된 foo 패키지가 시스템에 설치된 타 패키지에서 필요한 상황이 발생하면 foo 와 더불어 의존성이 걸린 패키지까지 함께 삭제할 것인지 묻는다.

강제로 패키지를 삭제하기:

배포판 업그레이드 도중에는 특정 패키지를 우선적으로 삭제하여야 하는 경우가 생길 수 있다. 그러나 의존성 조건이 충족되지 않았거나 패키지가 완전히 설치된 경우가 아닐 수 있기 때문에 apt-get remove 명령 사용이 불가능하다. 이럴 경우 다음 명령으로 해당 패키지를 삭제할 수 있다:

# dpkg --force-all --remove foo 

설치된 패키지의 내용물 조회하기:

때로는 foo 패키지에 든 파일 목록을 알고 싶을 때가 있다. 다음 명령으로 처리 가능하다.

$ dpkg -L foo 

패키지 설명 읽기:

foo 패키지에 관해 알고 싶을 땐, 아래 명령을 실행하라.

$ aptitude show foo

또는

$ dpkg -p foo 

파일명으로 패키지 찾기:

주어진 파일이 어느 패키지에서 제공하는 파일인지 알고 싶을 때가 있다. 이럴 때는 (예컨데, 대상 파일이 /usr/bin/apt-get 인 경우), 다음 명령을 실행하면

$ dpkg -S /usr/bin/apt-get

/usr/bin/apt-get 이 apt 패키지에서 제공한 것임을 알려줄 것이다.


CategoryQuickPackageManagement | CategoryPackageManagement