'2011/08/04'에 해당되는 글 4건
- 2011.08.04 [Chap2 #03] - APT 사용하여 Software 관리
- 2011.08.04 [Chap2 #02] - Debian Software Package 사용
- 2011.08.04 [Chap1 #04] - 리눅스 참고 정보(help, man, info)
- 2011.08.04 [Chap1 #03] - 리눅스 명령어 찾기
♧ 실질적으로 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 |
♧ 우분투는 데비안 기반 시스템의 표준 패키징 방식인 데비안 패키지 포맷(실제로는 ar 아카이브 파일)을 사용.
소프트웨어는 하나 이상의 데비안 패키지(.deb 확장자) 컴포넌트로 분리될 수 있는데,
여기에는 소프트웨어 파일만 저장되어 있는 것이 아니라 패키지에 대한 많은 정보를 포함 시킬 수 있다.
이러한 메타데이터는 소프트웨어의 의존성, 컴퓨터 아키텍처, 벤더, 크기, 라이센스, 설명문 등 다양한 정보를 포함.
우분투 시스템을 설치한 후, 시스템의 사용목적에 따라 필요한 .deb 파일을 추가, 삭제, 관리할 수 있다.
우분투를 비롯한 그밖의 데비안 기반 시스템에서는 대부분 소프트웨어 설치를 위해 .deb 파일을 사용.
aptitude 툴은 그때 그때 필요한 소프트웨어를 다루는 데 아주 유용.
그러나 패키지 관리를 위해 매우 다양한 툴이 개발되어 있고 일부는 함께 사용되는 경우도 있다.
▶ 패키지 관리 툴
APT |
온라인 리포지토리에서 패키지를 다운로드 받고 설치하는 데 사용되는 프로그램. APT 명령어(apt-get, apt-cache 등)들은 로컬에서 패키지를 설치하는 데 사용할 수도 있지만, 정상적인 사용을 위해서는 온라인 환경에서 사용해야 함. |
dpkg |
CD-ROM이나 다른 디스크 저장장치에 있는 .deb 파일을 제어하는 경우 사용. 시스템 소프트웨어에 대한 설정, 설치, 그리고 정보 획득을 위한 옵션들을 가짐. |
aptitude |
커맨드라인 명령어로 온라인 리포지토리와의 작업을 위해 사용. aptitude 도구는 APT나 dpkg를 사용할 경우 사용자가 직접 해주어야 하는 번거로운 작업들을 자동화해주기 때문에 사용자의 첫 번째 패키지툴로써 추천된다. |
▷ 시냅틱 패키지 관리자(Synaptic Package Manager):
데비안 패키지 관리 시스템인 APT(Advanced Packaging Tool)의 그래픽 유저 인터페이스(GUI) 프론트엔드 프로그램.
일반적으로 deb 패키지를 기반으로 한 시스템에서 이용하지만, RPM을 베이스로 한 시스템에서도 이용할 수 있다.
소프트웨어 패키지의 설치, 삭제 그리고 업그레이드 및 소프트웨어 저장소(software repository)를 추가할 수 있다.
▷ APT 하우투 문서 : http://www.debian.org/doc/manuals/apt-howto
▷ 다른 리눅스 배포판들도 APT와 비슷한 패키징 시스템을 사용.
- 레드햇 기반의 배포판들의 경우 : yum, rpm, urpmi, smart와 같은 소프트웨어 관리 툴을 사용.
▶ 우분투(Ubuntu)에서 소프트웨어의 종류.
▷ 사용가능한 전체 패키지 수:
$ apt-cache stats 전체 패키지 이름 : 42450 (849 k) 전체 패키지 구조: 42450 (2,038 k) 일반 패키지: 32601 …[중략]… |
앞에서 볼 수 있듯이 우분투에서는 기본적으로 수만 가지가 넘는 소프트웨어 패키지를 사용할 수 있다.
데비안 커뮤니티에서는 이들 패키지에 재배포 가능한 소프트웨어만 포함될 수 있도록 지속적으로 노력하고 있다.
비록 데비안이 자유 소프트웨어를 신뢰하고 있지만, 사람들이 자신의 컴퓨터에
독점 소프트웨어를 설치해야 하는 경우도 있다. 따라서 데비안에서는 독점 소프트웨어가
주요 배포판에 포함되지는 않더라도 가능한 한 언제든지 이들을 지원할 것이다.
이러한 소프트웨어는 보통 FTP 사이트의 non-free 디렉토리에서 사용할 수 있다.
우리가 직접 배포할 수는 없기 때문에 개인이 직접 설치하는 독점 소프트웨어의 수가 증가하고 있다.
이와 유사하게 Canonical사에서도 우분투 소프트웨어를 다음과 같이 네 개의 카테고리로 나누어 제공.
(http://www.ubuntu.com/community/ubuntustory/licensing)
main |
우분투 팀에 의해 지원되며 자유롭게 배포할 수 있는 소프트웨어가 포함. 우분투가 설치될 때 이들 소프트웨어 중 상당수가 설치. |
restricted |
완전한 자유 라이선스 소프트웨어는 아니지만, 우분투팀에 의해 지원되며 많은 리눅스 시스템에서 일반적으로 사용되고 있는 소프트웨어가 포함 |
universe |
리눅스 세계에서 사용할 수 있는 거의 대부분의 오픈소스 소프트웨어를 포함. universe 카테고리의 소프트웨어는 자유 라이선스일 수도 있고 아닐 수도 있으며 보안에 대한 수정이나 자원을 보장받을 수는 없다. |
multiverse |
우분투의 핵심 라이선스 정책에 준하는 자유 소프트웨어가 아닌 소프트웨어를 포함. 이 카테고리의 소프트웨어는 어떠한 지원도 받지 못하며 라이선스의 적법성도 개인이 스스로 확인해야 한다. |
▷ 서버와 같이 안정적인 서비스가 중시되는 시스템인 경우 가급적 universe, multiverse 카테고리 사용을 피한다.
[ 로케일 에러 메시지 다루기 ] |
||
만약 우분투(Feisty Fawn)의 커맨드라인 환경에서 패키지 설치 작업을 수행하고 있다면, 다음과 유사한 로케일 에러 메시지를 접하게 될 것이다.
이러한 에러는 일반적으로 설치된 언어 설정과 관련된 문제이거나 국제화된 인코딩에 관련된 문제인 경우가 많다. 이 문제에 대한 한 가지 만족할 만한 해결 방법은 LC_ALL 환경변수의 값을 LANG 변수의 값과 동일하게 설정하는 것.
▷ ~/.bashrc 파일에 해당 명령을 입력하면 local 또는 ssh 쉘이 실행될 때마다 자동 실행. |
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap2 #04] - dpkg를 사용하여 Software 관리 (0) | 2011.08.05 |
---|---|
[Chap2 #03] - APT 사용하여 Software 관리 (0) | 2011.08.04 |
[Chap1 #04] - 리눅스 참고 정보(help, man, info) (0) | 2011.08.04 |
[Chap1 #03] - 리눅스 명령어 찾기 (0) | 2011.08.04 |
[Chap1 #01] - 우분투, 데비안, 그리고 리눅스 (0) | 2011.08.03 |
♧ 전통적인 리눅스와 유닉스 문서들은 모두 맨 페이지(man pages)라고 하는 매뉴얼 페이지로 만들어져 있다.
이후에 GNU info 명령어를 통해 조금 더 정교한 문서화 방법이 제안되었다.
이렇듯 각각의 명령어는 자기 자신을 위한 다양한 형태의 도움말을 가지고 있다.
맨 페이지는 시스템 컴포넌트 지향적인 참고자료이다. 시스템에 설치되어 있는 거의 모든 명령어들에 대한
맨 페이지들뿐만 아니라 디바이스, 파일 포맷, 시스템, 개발자 정보, 그리고 리눅스 시스템의 많은 다른
컴포넌트에 대해서도 문서화되어 있다. 전체 소프트웨어 패키지의 설명서는 전통적으로
/usr/share/doc 디렉토리의 하위 디렉토리에 구분되어 저장.
우분투에서는 이들 문서 대부분이 압축되어 있기 때문에 문서를 읽으려면 먼저 압축을 풀어야 한다.
이 작업은 gzip 명령어를 이용해 수행(gzip은 파일의 내용을 출력할 뿐 디스크에 압축을 풀어놓지 않음)
mount 명령어에 대한 문서 압축을 해제하기:
$ gzip -dc /usr/share/doc/mount/README.mount.gz mount/umount for Linux 0.97.3 and later. … |
◈ 도움말(help) 이용하기
리눅스 시스템의 거의 모든 명령어들은 자체적으로 대략적인 사용 정보를 담고 있다.
보통 명령어와 -h 또는 --help 옵션을 사용.
$ ls --help Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort.
Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. …[중략]… |
card 명령을 사용하여 도움말을 기본 프린터로 직접 출력.
evince 프로그램과 같은 문서뷰어를 통해 다시 볼 수 있는 포스트스크립트 파일로 저장 가능.
ps2pdf 유틸리티를 이용해 PDF 파일로 변환 가능
◈ 맨 페이지(man) 사용하기
$ man man Reformatting man(1), please wait… … |
▶ 맨 페이지의 섹션:
번 호 |
매뉴얼의 종류 |
1 |
실행 가능한 프로그램이나 쉘 명령어 |
2 |
시스템 콜(커널에서 제공하는 기능) |
3 |
라이브러리 콜(프로그램 라이브러리 기능) |
4 |
특별한 파일들(일반적으로 /dev/ 디렉토리에 있는 파일) |
5 |
파일 포맷과 /etc/passwd와 같은 파일 명명규칙 |
6 |
게임 |
7 |
그 외의 여러 가지것들(매크로 패키지와 명명규칙 등을 포함) |
8 |
시스템 관리 명령어(일반적으로 root 유저를 위한 명령어) |
9 |
커널 루틴[비 표준] |
섹션이란: 맨 페이지를 주제별로 그룹화 하는 방법
▶ man 명령어 옵션:
옵 션 |
설 명 |
man -a uname |
uname에 대한 모든 맨 페이지 섹션을 보여줌 |
man 2 uname |
uname에 대한 섹션 2의 맨 페이지를 보여줌 |
man uname -P more |
uname 맨 페이지를 more 명령어를 사용하여 페이지 단위로 보여줌 |
man -f uname |
whatis 명령어 수행결과와 동일(키워드와 동일한 맨 페이지만 출력) |
man -k crontab |
apropos 명령어 수행결과와 동일(키워드가 포함된 맨 페이지 출력) |
man -S 2 uname |
검색할 매뉴얼 섹션들을 콜론으로 구분하여 지정. |
◈ info 문서 사용하기
경우에 따라 개발자들은 info 데이터베이스에 명령어, 파일 포맷, 디바이스 또는 다른 리눅스 컴퓨넌트에
대한 좀 더 자세한 설명, 예를 들어 온라인 매뉴얼 페이지에 대한 링크 정보 등을 입력해 놓는다.
단순히 info 명령어를 입력하거나, 특정 컴포넌트를 열어 info 데이터베이스에 접근할 수 있다.
(q를 사용하면 종료)
예) ls 명령어에 대한 info 정보 :
$ info ls
이동 : Page Up, Page Down 상,하,좌,우 방향키를 이용.
info 데이터베이스가 사용하는 파일 : /usr/share/info디렉토리에 저장.
▶ info 화면에서 이동하기
키스트로크 |
이 동 |
? |
info 화면에서 사용되는 기본적인 명령들을 보여줌. |
Shift+l |
현재 화면에서 바로 이전 노드로 이동. |
n, p, u |
순서대로, 다음, 이전, 그리고 위 노드로 이동. |
Enter |
커서가 있는 곳에 하이퍼링크를 따라 이동. |
Shift+r |
참조 위치를 따라간다. |
q or Shift+q |
info 유틸리티를 종료하고 빠져나감. |
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap2 #03] - APT 사용하여 Software 관리 (0) | 2011.08.04 |
---|---|
[Chap2 #02] - Debian Software Package 사용 (0) | 2011.08.04 |
[Chap1 #03] - 리눅스 명령어 찾기 (0) | 2011.08.04 |
[Chap1 #01] - 우분투, 데비안, 그리고 리눅스 (0) | 2011.08.03 |
UBUNTU LINUX TOOLBOX (0) | 2011.08.03 |
▶ 명령어 에러 메시지의 여러 유형
▷ 오타 등 명령어를 잘못 입력 또는 지정된 디렉토리에 존재하지 않는 경우(PATH 변수)
-bash: sillycommand: command not found |
또는 잘못된 명령이지만 비슷한 명령이 존재 하는 경우.
No command 'xxx' found, did you mean: Command 'xdx' from package 'xdx' (universe) Command 'x2x' from package 'x2x' (universe) Command 'xxd' from package 'vim-common' (main) xxx: command not found |
▷ 해당 명령어가 root 계정에만 사용 가능한 경우(sudo 또는 그와 비슷한 방법을 사용)
- 해당 프로그램마다 각종 에러 메시지가 틀림.
▷ 명령어 또는 명령어가 포함된 우분투 패키지가 설치되어 있지 않는 경우.
The Program 'nmap' is currently not installed. You can install it by typing: sudo apt-get install nmap |
▶ 설치된 명령어를 찾기 위한 일반적인 리눅스 명령어들:
명령어와 출력결과의 예 |
설명 |
$ echo $PATH /usr/local/bin:/usr/sbin:/usr/bin:..[생량]… |
현재 path 변수의 내용을 보여줌. |
$ which mount /bin/mount |
PATH에서 첫 번째로 검색된 mount 명령어를 보여줌. |
$ find /usr -name umount /usr/lib/klibc/bin/umount |
/usr 파일 시스템에서 umount 문자열을 가진 파일 또는 디렉토리를 찾는다. |
$ whereis mount mount: /bin/mount /usr/share/man/man8/mount.8.gz |
mount 명령어에 대한 첫 번째 실행 파일과 맨 페이지를 보여준다. |
$ locate mount … /usr/bin/fdmountd |
locate 명령어를 사용하여(설정되어 있는) 디렉토리 목록에서 mount를 검색. |
$ apropos umount … umount(8) - unmount file systems |
맨 페이지 설명에서 입력된 키워드인 umount를 찾는다. |
$ man 8 umount Reformatting umount(8), please wait… |
맨 페이지 섹션 8에 있는 umount 맨 페이지를 본다. (q를 입력해 종료) |
▶설치된 명령어를 찾기 위한 우분투 . 데비안 기반의 명령어들:
명령어와 출력결과의 예 |
설명 |
$ apt-cache search umount … gnome-mount - wrapper for (un)mounting and ejecting… |
패키지 캐시 목록에서 umount에 대한 명령어 또는 설명이 포함된 패키지를 찾는다. |
$ dpkg-query -S umount … initscripts: /etc/init.d/umountnfs.sh |
설치된 패키지에서 파일명에 umount를 포함하고 있는 패키지를 보여준다. |
$ dpkg -L initscripts … /bin/mountpoint |
패키지에 포함된 파일 목록을 보여준다. |
$ sudo apt-get update password: Get:1 http://security.ubuntu.com feisty-security Relase… … |
패키지 캐시 목록을 업데이트 한다. |
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap2 #03] - APT 사용하여 Software 관리 (0) | 2011.08.04 |
---|---|
[Chap2 #02] - Debian Software Package 사용 (0) | 2011.08.04 |
[Chap1 #04] - 리눅스 참고 정보(help, man, info) (0) | 2011.08.04 |
[Chap1 #01] - 우분투, 데비안, 그리고 리눅스 (0) | 2011.08.03 |
UBUNTU LINUX TOOLBOX (0) | 2011.08.03 |