'패키지 관리'에 해당되는 글 2건
- 2011.08.05 [Chap2 #05] - aptitude를 사용하여 Software 관리
- 2011.08.04 [Chap2 #03] - APT 사용하여 Software 관리
♧ dpkg와 APT는 오랫동안 사용되어 온 훌륭한 도구지만, 이들 도구는 여러 측면에서
미묘한 차이를 가지고 있기 때문에 제대로 사용하기 위해서는 상당한 이해가 요구된다.
aptitude 프로그램은 curses 기반의 커맨드라인 툴로 충분히 유연하면서도,
주요 패키지 작업 과정 (패키지 설치나 업그레이드 전에 apt-get update를 실행하는 것과 같은)
을 자동화하여 가능한 쉽게 작업할 수 있도록 해준다.
이러한 이유로 가능하다면 커맨드라인에서는 aptitude 명령어를 사용할 것을 권장.
▶ aptitude의 일반적 기능
aptitude 명령어 | 설 명 |
sudo aptitude | curses 인터페이스로 시작. <Ctrl + t>를 사용하면 메뉴에 접근할 수 있으며 q 키는 프로그램을 종료. |
aptitude help | aptitude 명령어의 도움말을 출력. |
aptitude search <keyword> | 주어진 키워드와 일치하는 패키지들을 보여줌. |
sudo aptitude update | APT 리포지토리들로부터 사용 가능한 패키지를 업데이트 한다. |
sudo aptitude upgrade | 모든 패키지를 최신 버전으로 업그레이드 한다. |
aptitude show <package> | 패키지의 설치여부에 관계없이 주어진 패키지에 대한 정보를 보여줌. |
sudo aptitude download <package> | 주어진 패키지를 설치하지 않고 다운로드만 받는다. |
sudo aptitude clean | /var/cache/apt/archives 디렉토리에 다운로드된 .deb 파일들을 모두 삭제한다. |
sudo aptitude autoclean | /var/cache/apt/archives 디렉토리에 있는 오래된 .deb 파일들을 모두 삭제한다. 이 작업은 디스크 공간 낭비를 방지하면서 현재 캐시를 유지할 수 있는 방법이다. |
sudo aptitude install <package> | 주어진 패키지를 시스템에 설치. 특정 버전을 선택하거나 와일드카드 문자를 사용하기 위한 여러 옵션이 있다. |
sudo aptitude remove <package> | 시스템으로부터 주어진 패키지를 삭제한다. |
sudo patitude purge <package> | 패키지 제거와 환경 설정 파일도 함께 삭제. |
sudo aptitude dist-upgrade | 모든 패키지를 가장 최신 버전으로 업그레이드 하는데, 필요한 경우 패키지를 삭제하거나 추가적으로 설치. |
■ aptitude를 사용하여 패키지 관리
## 패키지 업데이트 & 업그레이드 ## $ sudo aptitude update …[중략]… $ sudo aptitude upgrade …[중략]…
## 패키지 검색 & 정보 질의 ## $ aptitude search minic p minicom - friendly menu driven serial communication program $ aptitude show minicom Package: minicom State: not installed Version: 2.5-1 …[중략]…
## 패키지를 설치하지 않고 다운로드만 받기 ## (해당 디렉토리에 다운로드 받은 파일 존재) $ sudo aptitude download minicom Get:1 http://ftp.daum.net/ubuntu/ natty/universe minicom i386 2.5-1 [285 kB] Fetched 285 kB in 0초 (3,149 kB/s) ## 다운로드 받은 패키지 설치 ## $ sudo aptitude install minicom The following NEW packages will be installed: lrzsz{a} minicom 0 packages upgraded, 2 newly installed, 0 to remove and 1 not upgraded. Need to get 99.9 kB/385 kB of archives. After unpacking 1,470 kB will be used. Do you want to continue? [Y/n/?] n
## 패키지 삭제 ## $ sudo aptitude remove minicom The following packages will be REMOVED: lrzsz{u} minicom 0 packages upgraded, 0 newly installed, 2 to remove and 1 not upgraded. Need to get 0 B of archives. After unpacking 1,470 kB will be freed. Do you want to continue? [Y/n/?] y (데이터베이스 읽는중 ...현재 170390개의 파일과 디렉터리가 설치되어 있습니다.) …[중략]… ## 패키지 캐시 삭제 ## (인스톨 설치시 패키지는 /var/cache/apt/archives에 저장) (오래된 패키지만 삭제 : sudo aptitude autoclean) $ ls aptitude_0.6.3-3.2ubuntu1_i386.deb lock libboost-iostreams1.42.0_1.42.0-4ubuntu2_i386.deb lrzsz_0.12.21-5_i386.deb libcwidget3_0.5.16-3ubuntu2_i386.deb minicom_2.5-1_i386.deb libsigc++-2.0-0c2a_2.2.4.2-1ubuntu1_i386.deb partial $ sudo aptitude clean $ ls lock partial
##### 유용한 옵션 조합 ##### /* -v : 더 많은 정보 제공 (md5sum …등) */ $ aptitude show -v minicom Package: minicom State: not installed …[중략]… Filename: pool/universe/m/minicom/minicom_2.5-1_i386.deb MD5sum: 497900daa7807ae0c968d6630219bd4b …[중략]…
/* -s : 실제 동작은 수행하지 않고, 어떤 작업이 수행되는지 시뮬레이션 */ $ sudo aptitude -s install minicom The following NEW packages will be installed: …[중략]… Do you want to continue? [Y/n/?] y Would download/install/remove packages.
/* -y : 모든 질문에 미리 Yes답변 */ (되돌리는 기능이 없으므로 신중히 사용) $ sudo aptitude -vs -y install minicom The following NEW packages will be installed: lrzsz{a} minicom 0 packages upgraded, 2 newly installed, 0 to remove and 1 not upgraded. Need to get 385 kB of archives. After unpacking 1,470 kB will be used. Inst lrzsz (0.12.21-5 Ubuntu:11.04/natty [i386]) Inst minicom (2.5-1 Ubuntu:11.04/natty [i386]) Conf lrzsz (0.12.21-5 Ubuntu:11.04/natty [i386]) Conf minicom (2.5-1 Ubuntu:11.04/natty [i386])
/* -h : 도움말 기능 (사용 가능한 옵션들을 보여줌) */ $ aptitude -h aptitude 0.6.3 Usage: aptitude [-S fname] [-u|-i] aptitude [options] <action> ... …[중략]… install - Install/upgrade packages. remove - Remove packages. purge - Remove packages and their configuration files. hold - Place packages on hold. …[중략]… Options: -h This help text. --no-gui Do not use the GTK GUI even if available. -s Simulate actions, but do not actually perform them. -d Only download packages, do not install or remove anything. -P Always prompt for confirmation or actions. …[중략]… |
▷ moo 옵션 : 이스터에그(Easter eggs) - 즐거움을 주기 위해 프로그램 속에 숨겨져 있는 기능
$ aptitude moo There are no Easter Eggs in this program. $ aptitude -v moo There really are no Easter Eggs in this program. $ aptitude -vv moo Didn't I already tell you that there are no Easter Eggs in this program? $ aptitude -vvv moo Stop it! $ aptitude -vvvv moo Okay, okay, if I give you an Easter Egg, will you go away? $ aptitude -vvvvv moo All right, you win. /----\ …[중략]… |
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap2 #07] - deb 패키지 만들기 (0) | 2011.08.06 |
---|---|
[Chap2 #06] - debsums를 사용하여 설치된 패키지 검증 (0) | 2011.08.06 |
[Chap2 #04] - dpkg를 사용하여 Software 관리 (0) | 2011.08.05 |
[Chap2 #03] - APT 사용하여 Software 관리 (0) | 2011.08.04 |
[Chap2 #02] - Debian Software Package 사용 (0) | 2011.08.04 |
♧ 실질적으로 APT는 dpkg와 함께 동작하지만, 데비안 시스템에서 필요한
소프트웨어 검색, 다운로드, 설치, 업그레이드 그리고 확인 등
대부분의 패키지 관리 작업은 APT 유틸리티만으로도 충분하다.
▶ APT(Advenced Package Tool) 일반적 사용
APT 명령어 | 설 명 |
apt-get - APT package handling utility | |
sudo apt-get update | /etc/apt/sources.list 를 참조해 사용할 수 있는 패키지 데이터베이스를 업데이트한다. (source.list 파일을 변경했다면 반드시 이 명령을 실행) |
sudo apt-get check | 시스템 무결성 검사. |
sudo apt-get install <package> | 주어진 패키지명을 데이터베이스에서 찾을 수 있다면, 해당 패키지를 다운로드받아 설치. (APT 버전 0.6부터, 이 명령어는 자동적으로 GPG키를 사용해 패키지의 신뢰성을 검증) |
sudo apt-get -f install | 깨진 패키지를 위해 정상여부를 검사. (이 명령어는 의존성 문제에 대한 메시지 수정을 시도) |
sudo apt-get -d install <package> | 패키지를 설치하지 않고 /var/cache/apt/archives 디렉토리에 다운로드만 받음. |
sudo apt-get clean | 디스크 공간 확보를 위해 /var/cache/apt/archives 디렉토리에 캐시되어 있는 패키지들을 모두 삭제. |
sudo apt-get autoclean | 불완전하게 다운로드된 패키지나 오래된 패키지를 삭제하고자 할 때 실행. (부분적으로 디스크 공간을 절약할 수 있다) |
sudo apt-get upgrade | 설치되어 있는 모든 패키지에 대한 최신 업데이트를 검사한 후, 다운로드 받아 설치. |
sudo apt-get dist-upgrade | 전체 시스템을 새로운 버전으로 업그레이드 한다. 여기에는 패키지 삭제도 포함되어 있다. (이 방법은 시스템을 업데이트하는 방법으로는 잘 사용되지 않음) |
sudo apt-get --purge remove <package> | 주어진 패키지와 그 설정파일을 삭제. (--purge 옵션을 사용하면 설정파일까지 삭제) |
apt-cache - query the APT cache | |
apt-cache search <keyword> | 패키지 데이터베이스에서 주어진 키워드를 대소문자 구분 없이 검색. (결과로 키워드를 포함하고 있는 패키지명과 설명이 출력) |
apt-cache showpkg <package> | 단일 패키지에 대한 일반적인 정보 출력. |
apt-cache show <package> | 주어진 패키지명에 해당하는 소프트웨어에 대한 정보 출력. |
apt-cache stats | 설치된 모든 패키지에 대한 상태정보를 출력. |
apt-cache dump | 캐시에 있는 모든 패키지를 간단한 형식으로 출력. |
apt-cache dumpavail | 표준출력으로 유효한 파일들을 출력. |
apt-cache depends | 패키지가 설치되어 있는지 여부에 관계없이, 패키지에 대한 의존성을 출력. |
apt-cache pkgnames | 시스템에 설치되어 있는 모든 패키지 목록을 보여줌. |
apt-config - APT Configuration Query program | |
apt-config -v | 설치된 APT 유틸리티의 버전정보 출력. |
apt-key - APT key management utility | |
sudo apt-key list | APT가 알고 있는 gpg 키 목록을 출력. |
sudo apt-key add <file> | APT에 서명키 등록. |
sudo apt-key del <keyid> | 신뢰할수 있는 키 리스트에서 키를 제거. |
■ APT리포지토리와 써드파티 서명키 추가
Google에서 만들어 공개한 디지털 사진 공유 및 관리도구인 Picasa 프로그램(http://picasa.google.com/)을 설치해 보자. |
① 구글 리포지토리를 사용하기 위해 텍스트 에디터로 /etc/apt/sources.list 파일 하단에 두 라인 추가.
$ sudo vi /etc/apt/sources.list … #cn - added for google software deb http://dl.google.com/linux/deb/ stable non-free |
▷ 변경에 대한 코멘트를 남기고 싶다면 다음에 보이는 바와 같이 #cn을 사용.
▷ 첫번째 필드 - deb : 빌드된 패키지, deb-src: 소스 패키지
▷ 두번째 필드 - 배포판에 대한 Repository의 URL 주소.
▷ 세번째 필드 - 배포(distribution)
▷ 나머지 필드 - 소프트웨어 컴포넌트 기술
② Google Package에 대한 인증을 위해 먼저 서명키를 다운.
wget https://dl-ssl.google.com/linux/linux_signing_key.pub -O /tmp/key.pub |
▷ wget 명령으로 Google 사이트로부터 파일을 다운로드 받아 저장.
(공개 암호화 키는 구글 사이트로부터 다운로드 받은 패키지 검증에 사용)
③ 다음 apt-key 명령어를 사용해 APT에 서명키를 등록.
$ sudo apt-key add /tmp/key.pub [sudo] password for devanix: OK |
④ Google 디지털 서명키가 정상적으로 등록되었는지 확인.
$ sudo apt-key list /etc/apt/trusted.gpg ------------------------- …[중략]… pub 1024D/7FAC5991 2007-03-08 uid Google, Inc. Linux Package Signing Key <linux-packages-keymaster@google.com> sub 2048g/C07CB649 2007-03-08 |
⑤ 다음으로, APT 패키지 업데이트를 통해 새로운 리포지토리를 활성화 한다.
$ sudo apt-get update |
■ APT를 사용하여 패키지 검색 & 설치 & 업그레이드
위 과정에서 마치고 새로운 리포지토리가 준비되었다면
해당 리포지토리에서 제공하는 새로운 소프트웨어를 검색, 설치할 수 있다.
## 패키지 검색 ## $ apt-cache search picasa …[중략]… picasa - Image management application from Google ## 패키지 정보 확인 ## $ apt-cache show picasa Package: picasa Version: 2.7.3736-15 Architecture: i386 Depends: libc6 (>= 2.2), libasound2, zlib1g, bash …[중략]… ## 패키지 의존성 확인 ## $ apt-cache depends picasa picasa 의존: libc6 의존: libasound2 liboss-salsa-asound2 …[중략]…
## 패키지 설치 ## (이미 설치 되어 있는 경우 - 자동적으로 최신 버전으로 업데이트) $ sudo apt-get install picasa Reading package lists… Done …[중략]…
## 업데이트 목록 확인 ## $ sudo apt-get update ## 설치되어 있는 패키지 모두 업그레이드 ## $ sudo apt-get upgrade |
■ APT를 사용하여 패키지 삭제 & 캐시정보 삭제
## 패키지 삭제 ## $ sudo apt-get rermove picasa
## 패키지 캐시정보 검색&삭제 ## $ find /var/cache/apt/ -name \*.deb /var/cache/apt/archives/picasa_2.7.3736-15_i386.deb …[중략]… $ sudo apt-get clean |
▷ 다운로드한 패키지는 /var/cache/apt/에 캐시해 두는데,
이들 패키지가 다시 필요할 경우 다운로드 시간을 절약할 수 있다.
패키지 캐시는 결과적으로 많은 디스크 공간을 사용하게 된다.
물론 이 캐시도 삭제할 수 있지만, 나중에 의존성 문제 등 삭제된 패키지가 필요하게 되면
다시 다운로드받아야 한다는 단점이 있다.
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap2 #05] - aptitude를 사용하여 Software 관리 (0) | 2011.08.05 |
---|---|
[Chap2 #04] - dpkg를 사용하여 Software 관리 (0) | 2011.08.05 |
[Chap2 #02] - Debian Software Package 사용 (0) | 2011.08.04 |
[Chap1 #04] - 리눅스 참고 정보(help, man, info) (0) | 2011.08.04 |
[Chap1 #03] - 리눅스 명령어 찾기 (0) | 2011.08.04 |