우분투 패키지
- 바이너리 파일로 구성되어 있어 컴파일이 필요 없음
- 패키지의 파일이 관련 디렉터리에 바로 설치됨
- 패키지를 삭제할 때 관련된 파일을 일괄적으로 삭제 가능
- 기존에 설치한 패키지를 삭제하지 않고 바로 업그레이드 가능
- 패키지의 설치 상태 검증 가능
- 패키지에 대한 정보를 제공
- 해당 패키지와 의존성을 가지고 있는 패키지가 무엇인지 알려줌
- 의존성이 있는 패키지를 미리 설치할 수 있음
- apt-get 명령을 사용하면 의존성이 있는 패키지가 자동으로 설치됨
우분투 패키지의 카테고리
- 공식적으로 데비안 배포판에 포함된 모든 패키지는 데비안 자유 소프트웨어 지침에 따라 자유롭게 사용하고 배포할 수 있음
- main: 우분투에 의해 공식적으로 지원되며 자유롭게 배포 가능
- restricted: 우분투에 의해 지원되나 완전한 자유 라이선스 소프트웨어는 아님
- universe: 리눅스에서 사용가능한 대부분의 소프트웨어로 자유 소프트웨어일 수도 있고 아닐 수도 있으며 기술적 지원을 보장하지 않음
- multiverse: 자유 소프트웨어가 아닌 소프트웨어가 포함되어 있으며, 개인이 직접 라이선스를 확인해야 함
우분투 패키지 저장소
- 우분투는 패키지와 패키지에 대한 정보를 저장하고 있는 서버인 패키지 저장소라는 개념을 사용
- 패키지 저장소에서는 패키지의 기능 추가나 보안 패치 등 지속적인 업그레이드를 집중적으로 관리
- 사용자는 저장소에 접속하여 최신 패키지를 내려 받아 설치할 수 있음
- 패키지 저장소에 대한 정보는 /etc/apt/sources.list 파일에 저장
- 패키지 유형: dev는 바이너리 패키지의 저장소를, dev-src는 패키지의 소스 저장소를 의미하며, 보통 한 저장소에 바이너리와 소스를 함께 저장
- 저장소 주소: http 프로토콜을 사용하는 URL 주소 사용
- 우분투 버전 정보: 저장소에서 관리하는 패키지에 해당하는 우분투의 버전을 표시하는데, 버전은 번호가 아니라 버전의 이름을 사용함
- 카테고리: 저장소가 가지고 있는 소프트웨어 카테고리 (main, restricted 등)를 표시
우분투 패키지 설치
apt-cache
- apt-cache [옵션] 서브명령
- APT 캐시(패키지 데이터베이스)에 질의하여 여러 가지 정보를 검색하여 출력
- 옵션
- -f: 검색 결과로 패키지에 대한 전체 기록을 출력
- -h: 간단한 도움말 출력
- 서브명령
- stats: 캐시에 대한 통계정보 출력
- dump: 현재 설치되어 있는 패키지를 업그레이드
- search 키워드: 캐시에서 키워들 검색
- showpkg 패키지명: 패키지에 대한 의존성 정보와 역의존성 정보를 검색하여 출력
- show 패키지명: 패키지에 대한 간단한 정보를 출력
- pkgnames: 사용 가능한 모든 패키지의 이름 출력
apt-get
- apt-get [옵션] 서브명령
- 패키지 관리
- 옵션
- -d: 패키지를 내려 받기만 함
- -f: 의존성이 깨진 패키지를 수정하려고 시도함
- -h: 간단한 도움말을 출력함
- 서브명령
- update: 패키지 저장소에서 새로운 패키지 정보를 가져옴
- upgrade: 현재 설치되어 있는 패키지를 업그레이드
- install 패키지명: 패키지 설치
- --no upgrade 옵션으로 설치만
- --only upgrade 옵션으로 업그레이드만
- remove 패키지명: 패키지 삭제
- --purge 옵션으로 설정 파일을 포함하여 패키지 삭제
- download 패키지명: 패키지를 현재 디렉터리로 내려 받음
- autoclean: 불완전하게 내려 받았거나 오래된 패키지 삭제
- clean: /var/cache/apt/archives에 캐시되어 있는 모든 패키지를 삭제하여 디스크 공간 확보
- check: 의존성이 깨진 패키지 확인
- source: 소스코드를 내려 받고 압축 해제
- --download-only source: 소스코드를 내려 받기만 하는 경우
- --compile source: 압축을 풀고 컴파일
dpkg
- dpkg [옵션] 파일명or패키지명
- 데비안의 패키지 관리 명령
- 옵션
- -l: 설치된 패키지의 목록 출력
- -l 패키지명: 패키지의 설치 상태 출력
- -s 패키지명: 패키지의 상세 정보 출력
- -S 경로명: 경로명이 포함된 패키지 검색
- -L 패키지명: 패키지에서 설치된 파일의 목록을 출력
- -c.deb 파일: 지정한 deb 파일의 내용을 출력
- -i.deb 파일: 해당 파일 설치(sudo)
- -r 패키지명: 해당 패키지 삭제(sudo)
- -P 패키지명: 해당 패키지와 설정 정보를 모두 삭제(sudo)
aptitude
- aptitude [서브명령]
- 우분투 패키지 관리
- 옵션
- search 키워드: 키워드를 검색하여 일치하는 패키지 목록 출력
- update: 패키지 저장소 업데이트
- upgrade: 모든 패키지를 최신 버전으로 업그레이드
- show 패키지명: 패키지에 대한 자세한 정보 출력
- download 패키지명: 패키지를 내려 받음
- clean: 패키지 캐시 디렉터리에서 모든 패키지 파일 삭제
- install: 패키지 설치
- remove: 패키지 삭제
- purge: 패키지와 설정 파일을 모두 삭제
스냅 패키지 설치
- 우분투가 새로 도입한 패키지 형식으로 샌드박스 형태의 패키지
- 패키지를 만들 때 프로그램이 사용하는 모든 라이브러리를 패키지 안에 포함
- 장점
- 개발자가 다른 패키지나 라이브러리와의 의존성을 신경 쓰지 않아도 됨
- 기존 시스템과 격리되어 실행하는 샌드박스 형식이므로 보안이 강화됨
- 단점
- snap 옵션 [명령]: 스냅 패키지를 설치하고 설정하고 삭제
- disable: 스냅 서비스와 실행 파일의 사용을 중지
- download 스냅명: 지정한 스냅 패키지를 내려 받음
- enable: 스냅 서비스와 실행 파일의 사용을 시작
- find 스냅명: 지정한 스냅 검색
- info 스냅명: 지정한 스냅의 상세 정보 출력
- 스냅의 이름과 요약 정보, 제공자, 연락처, 간단한 설명, 관련 명령, 설치된 버전 정보 출력
- install 스냅명: 지정한 스냅 설치
- list: 설치한 스냅의 목록 출력
- remove 스냅명: 지정한 스냅 삭제
파일 아카이브
- 파일을 묶어서 하나로 만든 것
- tar(tape archive) 명령은 원래 여러 파일이나 디렉터리를 묶어서 마그네틱 테이프와 같은 이동식 저장 장치에 보관하기 위해 사용
파일 아카이브의 사용
- 다른 시스템과 파일을 주고 받음
- 백업을 하기 위해 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성
- 기존 아카이브에서 파일 추출
tar
- tar 기능[옵션] [아카이브파일] [파일명]
- 파일과 디렉터리를 묶어 하나의 아카이브 파일 생성
- 기능
- c: 새로운 tar 파일 생성
- t: tar 파일의 내용 출력
- x: tar 파일에서 원본 파일 추출
- r: 새로운 파일 추가
- u: 수정한 파일 업데이트
- 옵션
- f: 아카이브 파일이나 테이프 장치 지정, 파일명을 '-'로 지정하면 tar 파일 대신 표준 입력에서 읽어 들임
- v: 처리하고 있는 파일의 정보 출력
- h: 심벌릭 링크의 원본 파일 포함
- p: 파일 복구 시 원래의 접근 권한 유지
- j: bzip2로 압축하거나 해제
- z: gzip으로 압축하거나 해제
tar 명령어 사용
- cvf: 아카이브 생성
- e.g. tar cvf ch2.tar ch2
- tar 명령으로 파일을 묶어서 아카이브 파일을 만들어도 원본 파일은 그대로 있음
- tvf: 아카이브 내용 확인
- xvf: 아카이브 풀기
- uvf: 아카이브 업데이트
- u 기능은 지정한 파일이 아카이브에 없는 파일이거나 아카이브에 있는 파일이지만 수정된 파일일 경우 아카이브의 마지막에 추가
- rvf: 아카이브에 파일 추가
- 지정한 파일을 무조건 아카이브의 마지막에 추가
- czvf: 아카이브를 생성하면서 동시에 gzip으로 압축
- cvjf: 아카이브를 생성하면서 동시에 bzip2로 압축
gzip
- gzip [옵션] [파일명]
- 파일 압축(.gz 파일)
- gunzip [파일명] 명령으로 파일 압축 해제
- 옵션
- -d: 파일 압축 해제
- -l: 압축 파일의 정보 출력
- -r: 하위 디렉터리를 탐색하여 압축
- -t: 압축 파일 검사
- -v: 압축 정보 출력
- -g: 최대한 압축
bzip2
- bzip [옵션] [파일명]
- 파일 압축(.bz2 파일)
- bunzip2 [파일명] 명령으로 파일 압축 해제
- 옵션
- -d: 파일 압축 해제
- -l: 압축 파일의 정보 출력
- -t: 압축 파일 검사
- -v: 압축 정보 출력
- --best: 최대한 압축