-
Debian 패키지 관리Technique/LPIC 2019. 4. 18. 16:13반응형
실행 프로그램, 설정 파일, 도큐먼트 등을 하나의 파일로 묶은 것을 패키지라고 한다. 패키지 관리의 방법은 디스트리뷰션에 따라 다르다. 대표적으로 Debian GNU/Linux 등에 채용되어 있는 Debian 형식과 Red Hat Enterprise Linux 등에 채용된 RPM이 있다.
패키지 관리 란?
패키지의 설치나 삭제, 업데이트 작업에 있어 어떤 패키지가 어디에 설치되어 있는지 등을 관리하거나, 패키지 간의 충돌을 회피하거나 하는 방법을 제공하는 것이 패키지 관리 시스템이다. 패키지 관리 시스템에 따라 설치나 삭제, 업데이트 작업이 쉽게 가능하다.
패키지 A에 포함되는 파일을 패키지 B가 이용하고 있는 경우, 패키지 A가 없이는 패키지 B를 사용할 순 없다. 이렇듯 어떠한 패키지가 다른 패키지에 의존하고 있는 관계를 패키지 의존관계라고 한다. 또한 패키지 C에 의해 설치되는 파일 D가 이미 패키지 A에 의해 설치된 파일 D와 충돌하기 때문에 패키지 C를 설치할 경우 문제가 발생한다. 와 같은 경우도 있다. 이런 관계를 패키지 충돌 관계라고 한다. 패키지 관리 시스템은 의존 관계나 충돌 관계를 감시하고 의존관계나 충돌 관계를 피해 갈 수 있는 설치 방법이나 삭제에 대한 경고를 한다.
Linux에서 패키지 관리는 크게 나눠서 Debian 형식과 RPM 형식의 2종류가 있다. Debian 형식은 Debian 계열의 디스트리뷰션에서 사용되고 있는 형식이다. 패키지 관리 작업에는 dpkg 커맨드 APT 툴 등을 이용하고 있다. RPM 방식은 Red Hat 계 디스트리뷰션을 중심으로 이용되고 있는 형식이다. 패키지 관리 작업에는 rpm 커맨드가 사용되고 있다. 양자에는 호환성이 없지만 alien 커맨드를 사용하여 상호의 형식을 변환하는 것도 가능하다.
패키지 관리 시스템을 사용하여 컴파일된 상태로 배포되는 바이너리 패키지를 사용할 경우 소스로부터 설치하는 것과는 다르게 동작 환경에 의존하게 된다. 그 때문에 디스트리뷰션이나 버전, CPU 아키텍처 등의 동작 환경이 일치하는 패키지를 선택할 필요가 있다.리포지토리
Repository는 파일이나 데이터를 집계하고 있는 장소나 그들의 정보를 관리하는 데이터베이스를 의미한다. 실제로는 파일 시스템상의 디렉터리로 있거나, 네트워크 상에 서버이기도 하다.
dpkg 커맨드를 이용한 패키지 관리
Debian/GNU Linux 나 Ubuntu 등의 Debian 계열의 디스트리뷰션에는 패키지 관리 방법으로 Debian 형식 (deb형식) 이 사용된다. Debian 형식의 패키지 파일명은 다음과 같다.
tree_1.6.0-1_i386.deb
tree_ : 패키지 명 1.6.0-
: 버전 번호 1
: Debian 리비전 번 i386
: 아키텍처
deb : 확장자
dpkg 커맨드를 이용하여 Debian 계열의 패키지를 다룰 수 있다.옵션 설명 -E 이미 같은 버전이 설치되어 있을 경우 설치하지 않는다. -G 이미 새로운 버전이 설치되어 있을 경우 설치하지 않는다. - R ( --recursive ) 디렉토리 안에 재귀적인 처리를 한다. 액션 설명 -i 패키지 파일명
( --install )패키지를 설치한다. -r 패키지명
( --remove )설정 파일을 남기고 패키지를 삭제한다 -P 패키지 명
( --purge )설정 파일도 포함하여 완전히 패키지를 삭제한다. -l 검색 패턴
( --list )설치가 끝난 패키지를 검색하여 표시한다. -S 파일명, 검색패턴
( --search)설정한 파일이 어느 패키지로 부터 설치 되었는지 표시한다 ( 패턴에선 와일드카드를 사용한다 ) -L 패키지명
( --listfiles )설정 패키지로부터 설치된 파일 리스트를 표시한다. -s 패키지명
( --status )패키지의 정보를 표시한다. --configure 패키지 명 전개된 패키지를 설정한다 --unpack 패키지 명 패키지를 전개한다 ( 설치는 아님 ) apt-get 커맨드
apt-get은 APT( Advanced Packagin Tool )라고 하는 패키지 관리 툴에 포함된 커맨드로 의존 관계를 조정하면서 패키지의 설치, 업그레이드, 삭제 등을 실시한다. apt-get의 특징은 인터넷 경유로 최신 패키지의 입수부터 설치와 의존관계의 해결까지 가능한 것이다.
옵션 설명 -d 파일을 다운로드 한다 ( 설치는 하지 않는다 ) -s 시스템을 변경하지 않고 동작을 시뮬레이트 한다. 서브 커맨드 설명 clean 과거에 습득 후 보관해둔 패키지를 삭제한다 dist-upgrade 시스템을 최신 버전으로 업그레이드 한다. install 패키지를 설치 또는 업데이트 한다 remove 패키지를 삭제한다. update 패키지 데이터베이스를 갱신한다. upgrade 시스템의 전 패키지 중 다른 패키지가 삭제되지 않는 것을 업그레이드 한다. apt-get 커맨드로 패키지 관리를 하는 것은 우선 /etc/apt/sources.list 에 패키지를 관리하고 있는 사이트의 URL 을 기록한다.
deb http://jp.archive.ubuntu.com/ubuntu/ trusty main restricted
deb : ( deb 패키지를 취득 )또는 deb-src ( 소스를 취득 )
URL : 습득 처의 URI
trusty : 패키지명
main restricted : main(공식 지원 되는 소프트 웨어 ), universe ( 커뮤니티에 의해 관리되는 소프트웨어 ) restricted (디바이스 용의 프로프라이어터리나 드라이버 ) multiverse ( 자작 또는 법적인 문제에 의한 제한되는 소프트 웨어 ) contrib ( 무료는 아닌 의존 관계의 소프트웨어 ) non-free ( 이용과 수정, 재배포에 제한이 있는 소프트 웨어 )apt-cache 커맨드
apt-cache는 패키지 정보를 조회, 검색하는 것이 가능한 커맨드이다. 조회, 검색하는 대상의 패키지는 설치하지 않더라도 상관없다.
서브 커맨드 설명 search 키워드 지정한 키워드를 포함한 패키지를 검색한다 show 패키지 명 패키지에 따른 일반적인 정보를 표시한다. showpdkg 패키지 명 패키지에 따른 상세한 정보를 표시한다. depends 패키지 명 지정한 패키지의 의존 관계 정보를 표시한다. aptitude 커맨드
apt-get 커맨드보다도 고도의 기능을 가진 커맨드로서 aptitude 커맨드가 있다. 특히 정규 표현을 사용한 검색 기능이 우수하다
서브 커맨드 설명 update 패키지 데이터 베이스를 최신화 한다 show 패키지 명 패키지 정보를 표시한다 search 패턴 지정 패턴의 패키지를 검색한다 install 패키지 명 패키지를 설치 또는 업그레이드 한다. remove 패키지 명 설정 파일을 남긴 패키지를 삭제한다. purge 패키지 명 설정 파일도 포함한 패키지를 삭제한다. download 패키지 명 패키지 파일을 다운로드 한다. full-upgrade 시스템의 전 패키지를 업데이트 한다. safe-upgrade 시스템의 패키지 중 다른 패키지에 영향을 주지 않는 패키지를 업데이트 한다. 검색 패턴
검색 패턴 설명 ~n 정규 표현 패키지명 이 정규표현패턴에 일치 하는 패키지를 검색 ~d 정규표현 패키지 설명이 정규표현 패턴에 일치하는 패키지를 검색 ~V 정규 표현 패키지의 버전이 정규 퓨현 패턴에 일치하는 패키지를 검색 ~i 설치가 끝난 패키지를 검색한다 ~U 갱신 가능한 패키지를 검색한다. ~M 자동으로 설치된 패키지를 검색한다. 반응형'Technique > LPIC' 카테고리의 다른 글
셸 (0) 2019.04.23 RPM 패키지 관리 (0) 2019.04.23 공유 라이브러리 관리 (0) 2019.04.18 부트로더 설치 (0) 2019.04.18 하드디스크의 레이아웃 설계 (0) 2019.04.18