우분투 패키지의 개요
우분투 리눅스는 데비안 계열의 패키지를 지원(deb 형식 패키지)
우분투 패키지의 특징
- 바이너리 파일로 구성되어 있어 컴파일 불필요
- 패키지의 파일이 관련 디렉터리에 바로 설치됨
- 패키지를 삭제할 때 관련된 파일을 일괄적으로 삭제 가능
- 기존에 설치한 패키지를 삭제하지 않고 바로 업그레이드 가능
- 패키지의 설치 상태 검증 가능
- 패키지에 대한 설치 정보 제공
- 해당 패키지가 의존하는 패키지가 무엇인지 알려줌, 의존성이 있는 패키지를 미리 설치하거나 apt-get 명령으로 자동 설치
우분투 패키지의 카테고리
main | 우분투에 의해 공식적으로 지원되며 자유롭게 배포 가능 |
restricted | 우분투에 의해 지원되나 완전한 자유 라이선스 소프트웨어는 아님 |
universe | 리눅스에서 사용할 수 있는 대부분의 소프트웨어, 기술적 지원을 보장하지 않음 |
multiverse | 자유 소프트웨어가 아닌 소프트웨어가 포함되어 있으며, 개인이 직접 라이선스를 확인해야 함 |
우분투 패키지의 이름 구성
- 패키지의 이름
- 오리지널 패키지의 버전
- 오리지널 패키지 버전을 데비안에 적용한 리비전 번호
- 오리지널 또는 데비안 패키지를 우분투에 적용한 리비전 번호
- 사용하는 시스템 아키텍처로 all은 시스템의 종류와 상관없이 사용할 수 있는 것이고, arm은 64비트 운영체제임을 의미
- 확장자로 .deb를 사용
데비안 리버전 ubuntu 우분투 리비전 세부 사례
- '데비안 리비전'이 0이면 패키지는 데비안 버전이 없거나 데비안 버전보다 새 버전임을 의미
- 'ubuntu우분투 리비전'은 데비안 패키지의 우분투 리비전 번호인데 다음과 같은 경우가 있음
-
ubuntu우분투 리비전 부분이 있으면 데비안 패키지를 가져다가 우분투에서 기능 패치나 버그 수정 등 추가적인 작업을 했음을 의미
-
•X_5.4.3-2ubuntu1: 패키지 X의 5.4.3 버전의 두 번째 데비안 리비전이고 이를 바탕으로 한 첫 번째 우분투 리비전
-
우분투 패키지 저장소
패키지 저장소에 대한 정보는 /ect/apt/sources.list 파일에 저장
우분투 패키지 설치
apt-cache
기능 - APT 캐시에 질의하여 여러 가지 정보를 검색
형식 - apt-cache [옵션] 서브 명령
옵션
-f: 검색 결과로 패키지에 대한 전체 기록을 출력
-h: 간단한 도움말 출력
서브 명령 | 설명 | 서브 명령 | 설명 |
status | 캐시에 대한 통계 정보 출력 | dump | 현재 설치된 패키지를 업그레이드 |
search 키워드 | 캐시에서 키워드 검색 | showpkg 패키지명 | 패키지에 대한 의존성 정보와 역의존성 정보를 검색하여 출력 |
show 패키지명 | 패키지에 대한 간단한 정보 출력 | pkgnames | 사용 가능한 모든 패키지의 이름 출력 |
apt-cache status
apt-cache show vsftpd
apt-cache search vsftpd
apt-get
기능 - 패키지를 관리
형식 - apt-get [옵션] 서브 명령
옵션
-d: 패키지를 내려받기만 함
-f: 의존성이 깨진 패키지를 수정하려고 시도
-h: 간단한 도움말을 출력
서브 명령 | 설명 | 서브 명령 | 설명 |
update | 패키지 정보 업데이트 하기 | upgrade | 패키지 업그레이드 하기 |
install | 특정 패키지 설치 또는 업그레이드 하기 | remove | 패키지 삭제하기 |
autoremove | 패키지 자동 정리 및 삭제하기 | clean | 디스크 공간 정리하기 |
download | 패키지 내려받기 | source | 패키지의 소스 관련 서브 명령 |
apt-get update
apt-get install vsftpd
apt-get clean
apt 명령은 패키지 관리 시스템을 위한 상위 레벨의 명령 인터페이스를 제공
dpkg
기능 - 데비안의 패키지 관리 명령
형식 - dpkg [옵션] 파일명 또는 패키지명
옵션
-l | 설치된 패키지의 목록을 출력 | -l 패키지명 | 패키지의 설치 상태 출력 |
-s 패키지명 | 패키지 상세 정보 보기 | -S 경로명 | 특정 파일이 포함된 패키지 검색 |
-L 패키지명 | 패키지가 설치한 파일 목록 검색 | -c | .deb 파일에 들어 있는 내용을 출력 |
-i | 패키지 설치하기(dpkg명령은 의존성이 있는 패키지를 자동으로 설치해주지 않음) | -r | 설치된 패키지만 삭제 |
-P | 패키지와 파일 설정 정보 모두 삭제 | -x | 패키지 풀기 |
dpkg -l
dpkg -s netcat
dpkg -S /bin/ls
sudo dpkg -i xterm_361ubuntu3_amd64.deb
aptitude
기능 - 우분투에서 패키지를 관리
형식 - aptitude [서브 명령]
서브 명령
단독 실행 | curses 프로그램이 나타남 | search 키워드 | 키워드를 검색하여 일치하는 패키지 목록을 출력 |
update | 패키지 저장소를 업데이트 | upgrade | 모든 패키지를 최신 버전으로 업그레이드 |
show 패키지명 | 패키지에 대한 자세한 정보를 보여줌 | download 패키지명 | 패키지를 내려받음 |
clean | 패키지 캐시 디렉터리에서 모든 패키지 파일을 삭제 | install | 패키지를 설치 |
remove | 패키지를 사제 | purge | 패키지와 설정 파일을 모두 삭제 |
스냅 패키지 설치
스냅의 개념
- 샌드박스 형태의 패키지로 패키지를 만들 때 프로그램이 사용하는 모든 라이브러리를 패키지 안에 포함
- 샌드박스란 원래 외부에서 받은 파일을 그냥 실행하는 것이 아니라 보호된 영역에서 실행해 보는 것으로, 외부 파일이 내부 시스템에 악영향을 주는 것을 방지하는 보안 기술을 의미
스냅 사용하기: sudo apt-get install snap
snap
기능 - 스냅 패키지를 설치, 설정, 삭제
형식 - snap [옵션] 명령
옵션 - -h: 도움말을 출력
명령
disable | 스냅 서비스와 실행 파일의 사용을 중지 | download 스냅명 | 지정한 스냅 패키지를 내려받음 |
find 스냅명 | 지정한 스냅을 검색 | info 스냅명 | 지정한 스냅의 상세 정보를 출력 |
install 스냅명 | 지정한 스냅을 설치 | list | 지정한 스냅의 목록을 출력 |
remove 스냅명 | 지정한 스냅을 삭제 | enable | 스냅 서비스와 실행 파일을 활성화 |
snap list
snap install hello-world
파일 아카이브와 압축
tar
기능 - 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성
형식 - tar 기능[옵션] [아카이브 파일] [파일명]
기능
c | 새로운 tar 파일 생성 | t | tar 파일의 내용 출력 |
x | tar 파일에서 원본 파일 추출 | r | 새로운 파일을 추가 |
u | 수정된 파일을 업데이트 |
옵션
f | 아카이브 파일이나 테이프 장치를 지정 | v | 처리하고 있는 파일의 정보를 출력 |
h | 심볼릭 링크의 원본 파일을 포함 | p | 파일 복구 시 원래의 접근 권한을 유지 |
j | bzip2로 압축하거나 해제 | z | gzip로 압출하거나 해제 |
tar cvf unix.tar Unix
tar xvf unix.tar
gzip
기능 - 파일을 압축
형식 - gzip [옵션] [파일명]
옵션
-d | 파일 압축을 해제 | -l | 압축된 파일의 정보 출력 |
-r | 하위 디렉터리를 탐색하여 압축 | -t | 압축 파일을 검사 |
-v | 압축 정보를 화면에 출력 | -9 | 최대한 압축 |
gzip a.txt
gzip -v b.txt c.txt
zcat
기능 - gzip으로 압축된 파일의 내용 출력
형식 - zcat [파일명]
zcat abc.gz
zcat abc
gunzip
기능 - gzip으로 압축된 파일의 압축 해제
형식 - gunzip [파일명]
gunzip abc.gz
gunzip abc
bzip2
기능 - 파일을 압축
형식 - bzip2 [옵션] [파일명]
옵션
-d | 파일 압축을 해제 | -l | 압축된 파일의 정보 출력 |
-v | 압축 정보를 화면에 출력 | -t | 압축 파일을 검사 |
--best | 최대한 압축 |
bzcat
기능 - 압축된 파일의 내용 출력
형식 - zcat [파일명]
zcat abc.gz2
zcat abc
bunzip2
기능 - bzip2으로 압축된 파일의 압축 해제
형식 - bunzip2 [파일명]
bunzip2 abc.txt.bz2
bunzip2 abc.txt
소프트웨어 컴파일
C 컴파일러 설치
sudo apt install gcc
소스파일 - .c
목적파일 - .o
실행파일 - a.out
make
make 명령은 makefile에 설정된 정보를 읽어서 여러 소스 파일을 컴파일하고 링크하여 최종 실행 파일을 생성
make 설치
sudo apt install make
Target: 빌드 대상 이름, 통상 이 Rule에서 최종적으로 생성해 내는 파일명을 씀
Dependencies: 필드 대상이 의존하는 Target이나 파일 목록, 여기에 나열된 대상들을 먼저 만들고 빌드 대상을 생성
Recipe: 빌드 대상을 생성하는 명령, 여러 줄로 작성할 수 있으며, 각 줄 시작에 반드시 Tab문자로 된 Indent가 있어야 함
CC=gcc
CFLAGS=-g -Wall
OBJECTS=main.o foo.o bar.o
TARGET=app.out
$(TARGET): $(OBJECTS)
$(CC) -o $@ $(OBJECTS)
main.o: foo.h bar.h main.c
foo.o: foo.h foo.c
bar.o: bar.h bar.c
$@: 현재 Target 이름
$^: 현재 Target이 의존하는 대상들의 전체 목록
$?: 현재 Target이 의존하는 대상들 중 변경된 것들의 목록
'전공 > 리눅스시스템관리' 카테고리의 다른 글
[Linux] 리눅스 네트워크 (1) | 2023.06.12 |
---|---|
[Linux] 리눅스 사용자 관리 (0) | 2023.06.12 |
[Linux] 리눅스 부팅 프로세스 (0) | 2023.06.12 |
[Linux] 리눅스 파일시스템과 디스크관리 (1) | 2023.06.12 |
[Linux] 리눅스 프로세스 관리 (0) | 2023.04.20 |