1. 리눅스에서 주로 사용하는 패키지
리눅스에서 소프트웨어는 소스코드 형식 or 패키지 형태 (바로 설치하여 사용할 수 있는!)
소스 코드 형식) 하나의 아카이브 파일로 묶은 후 압축해서 배포
바이너리 패키지 )
우분투 16.04 ~ 새로운 패키지로 스냅도 도입했다! (deb 패키지와의 호환성)
deb : 데비안, 우분투 계열에서 사용하는 패키지
RPM (Redhat Package Manager) : 레드햇 계열 리눅스에서 주로 사용
*데비안 패키지: 간편하게 설치할 수 있도록 구성된 패키지, 간단한 명령으로 패키지 설치, 삭제, 정보 확인이 가능하다.
1) 우분투 패키지의 특징
- 바이너리 파일로 구성되어 있기 때문에 컴파일이 필요없다.
- 패키지의 파일이 관련 디렉터리에 바로 설치된다.
- 패키지를 삭제할 때 관련된 파일을 일괄적으로 삭제할 수 있다.
- 기존에 설치한 패키지를 삭제하지 않고 바로 업그레이드 할 수 있다.
- 패키지의 설치 상태를 검증할 수 있다.
- 패키지에 대한 정보를 제공한다.
- 해당 패키지와 의존성을 가지고 있는 패키지가 무엇인지 알려준다. 따라서 의존성이 있는 패키지를 미리 설치할 수도 있고, apt-get 명령을 사용하면 의존성이 있는 패키지가 자동으로 설치된다.
2) 우분투 패키지의 카테고리
공식적으로 데비안 배포판에 포함된 모든 패키지는 데비안 자유 소프트웨어 지침에 따라 자유롭게 사용하고 배포할 수 있다.
우분투도 네 개의 카테고리로 나누어 소프트웨어를 제공한다.
1) main : 우분투에 의해 공식적으로 지원되며 자유롭게 배포할 수 있다.
2) restricted : 우분투에 의해 지원되나 완전한 자유 라이선스 소프트웨어는 아니다.
3) universe:리눅스에서 사용할 수 있는 거의 대부분의 소프트웨어로 자유 소프트웨어 일 수도 있고 아닐 수도 있으며, 기술적 지원을 보장하지 않는다.
4) multiverse : 자유 소프트웨어가 아닌 소프트웨어가 포함되어 있으며, 개인이 직접 라이선스를 확인해야한다.
3) 우분투 패키지의 이름 구성
파일명_버전-리비전_아키텍쳐.deb
파일명: 첫 번째 항목은 패키지의 성격을 나타내는 파일명이다.
패키지 버전: 두 번째 항목은 패키지의 버전을 의미한다.
패키지 리비전: 리비전은 원래 소스의 버전이 업그레이드되지는 않았지만 패키지의 보안 문제나 의존성 변화, 스크립트의 변화 등이 있음을 의미한다.
아키텍처: 사용하는 시스템 아키텍처로 i386은 인텔을, all은 시스템과 상관없는 문서나 스크립트 등을 뜻한다.
확장자: .deb을 사용
4) 우분투 패키지 저장소
우분투는 패키지와 패키지에 대한 정보를 저장하고 있는 서버인 패키지 저장소 라는 개념을 사용한다.
패키지 저장소에서는 패키지의 기능 추가나 보안 패치 등 지속적인 업그레이드를 집중적으로 관리한다.
사용자는 저장소에 접속하여 최신 패키지를 내려받아 설치가 가능하다. 패키지 저장소에 대한 정보는 /etc/apt/sources.list 파일에 저장되어 있다.
sources.list 파일은 저장소의 정보를 한 줄에 하나씩 나열한다. 각 행은 패키지 유형 (바이너리 소스), 저장소 주소, 우분투 버전 정보, 카테고리로 구성되어 있다.
- 패키지 유형: deb 는 바이너리 패키지의 저장소, deb-src 는 패키지의 소스 저장소 의미
보통 한 저장소에 바이너리와 소스를 함께 저장한다.
- 저장소 주소 : http 프로토콜을 사용하는 URL 주소를 사용한다.
- 우분투 버전 정보: 저장소에서 관리하는 패키지에 해당하는 우분투의 버전을 표시한다. 버전은 번호가 아니라 버전의 이름을 사용한다.
- 카테고리 : 저장소가 가지고 있는 소프트웨어 카테고리 (main, restricted 등 )을 표시한다.
ex. 'deb http://kr.archive.ubuntu.com/ubuntu/artful main restricted'
- 패키지 유형: deb ) 바이너리 패키지 저장소
- 저장소 주소: http://kr.archive.ubuntu.com/ubuntu
- 우분투 버전 정보: artful
- 카테고리 : main , restricted
2. 우분투 패키지 설치
APT 명령으로 패키지 관리하기 ) *APT ? Advanced Pakage Tool
대표적인 명령으로 apt-cache , apt-get 이 있다.
apt-cache
:APT 캐시 ( 패키지 데이터베이스)에서 정보를 검색하여 출력
- 기능: APT 캐시에 질의하여 여러 가지 정보를 검색한다.
- 형식: apt-cache [옵션] 서브 명령
- 옵션: -f ) 검색 결과로 패키지에 대한 전체 기록을 출력한다. / -h 간단한 도움말을 출력한다.
- 서브 명령: stats : 캐시에 대한 통계 정보를 출력한다.
- dump: 현재 설치되어 있는 패키지를 업그레이드 한다.
- search 키워드: 캐시에서 키워드를 검색한다.
- showpkg 패키지명: 패키지에 대한 의존성 정보와 역의존성 정보를 검색하여 출력한다.
- show 패키지명: 패키지에 대한 간단한 정보를 출력한다.
- pkgnames: 사용 가능한 모든 패키지의 이름을 출력한다.
- ex. apt-cache stats / apt-cache show vstfpd / apt-cache search vsftpd
apt-cache stats 명령으로 출력되는 주요 정보
- 전체 패키지 이름 ) 캐시에 있는 패키지 이름의 전체 개수
- 일반 패키지 ) 일반적으로 사용하는 패키지의 개수
- 순수 가상 페키지 ) 가상 패키지는 패키지의 이름만 제공하며 그 이름을 가진 별도의 패키지가 실제로 있는 것은 아니다. 예를들어 'mail-transport-agent' 패키지는 순수 가상 패키지로 여러 패키지가 연계하여 이 기능을 제공하지만 이런 이름을 가진 패키지는 없다.
- 단일 가상 패키지 ) 한 패키지가 특정한 가상 패키지의 기능을 제공하는 경우이다.
apt-get
: 패키지 저장소를 업데이트하고 패키지를 설치하거나 제거할 수 있다.
- 기능: 패키지를 관리한다.
- apt-get [옵션] 서브 명령
- 옵션: -d) 패키지를 내려 받기만 한다. /-f) 의존성이 깨진 패키지를 수정하려고 시도한다. / -h) 간단한 도움말을 출력한다.
- 서브명령: update : 패키지 저장소에서 새로운 패키지 정보를 가져온다.
- upgrade: 현재 설치되어 있는 패키지를 업그레이드한다.
- install 패키지명: 패키지를 설치한다.
- remove 패키지명: 패키지를 삭제한다.
- download 패키지명: 패키지를 현재 디렉터리로 내려받는다.
- autoclean: 불완전하게 내려받았거나 오래된 패키지를 삭제한다.
- clean: /var/cache/apt/archives 에 캐시 되어 있는 모든 패키지를 삭제하여 디스크 공간을 확보한다.
- check: 의존성이 깨진 패키지를 확인한다.
'리눅스프로그래밍' 카테고리의 다른 글
우분투 리눅스 - 파일 아카이브 (0) | 2020.06.20 |
---|---|
우분투 리눅스 - 스냅 (0) | 2020.06.20 |
우분투 리눅스 - systemd 서비스 (0) | 2020.06.04 |
우분투 리눅스 - 부팅 (0) | 2020.06.04 |
우분투 리눅스 - 파일 시스템의 구조 (0) | 2020.05.31 |