전공/리눅스시스템관리

[Linux] 리눅스 소프트웨어 관리

Campus Coder 2023. 6. 12. 16:31
728x90
반응형

우분투 패키지의 개요

우분투 리눅스는 데비안 계열의 패키지를 지원(deb 형식 패키지)

우분투 패키지의 특징

  • 바이너리 파일로 구성되어 있어 컴파일 불필요
  • 패키지의 파일이 관련 디렉터리에 바로 설치됨
  • 패키지를 삭제할 때 관련된 파일을 일괄적으로 삭제 가능
  • 기존에 설치한 패키지를 삭제하지 않고 바로 업그레이드 가능
  • 패키지의 설치 상태 검증 가능
  • 패키지에 대한 설치 정보 제공
  • 해당 패키지가 의존하는 패키지가 무엇인지 알려줌, 의존성이 있는 패키지를 미리 설치하거나 apt-get 명령으로 자동 설치

 

우분투 패키지의 카테고리

main 우분투에 의해 공식적으로 지원되며 자유롭게 배포 가능
restricted 우분투에 의해 지원되나 완전한 자유 라이선스 소프트웨어는 아님
universe 리눅스에서 사용할 수 있는 대부분의 소프트웨어, 기술적 지원을 보장하지 않음
multiverse 자유 소프트웨어가 아닌 소프트웨어가 포함되어 있으며, 개인이 직접 라이선스를 확인해야 함

 

우분투 패키지의 이름 구성

  1. 패키지의 이름
  2. 오리지널 패키지의 버전
  3. 오리지널 패키지 버전을 데비안에 적용한 리비전 번호
  4. 오리지널 또는 데비안 패키지를 우분투에 적용한 리비전 번호
  5. 사용하는 시스템 아키텍처로 all은 시스템의 종류와 상관없이 사용할 수 있는 것이고, arm은 64비트 운영체제임을 의미
  6. 확장자로 .deb를 사용

데비안 리버전 ubuntu 우분투 리비전 세부 사례

  • '데비안 리비전'이 0이면 패키지는 데비안 버전이 없거나 데비안 버전보다 새 버전임을 의미
  • 'ubuntu우분투 리비전'은 데비안 패키지의 우분투 리비전 번호인데 다음과 같은 경우가 있음
    • ubuntu우분투 리비전 부분이 있으면 데비안 패키지를 가져다가 우분투에서 기능 패치나 버그 수정 등 추가적인 작업을 했음을 의미
    • X_5.4.3-2ubuntu1: 패키지 X5.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이 의존하는 대상들 중 변경된 것들의 목록

728x90
반응형