cmod.ify

[LINUX] 소프트웨어 본문

BASIC/LINUX

[LINUX] 소프트웨어

modifyC 2026. 1. 9. 19:34
728x90
반응형

리눅스 소프트웨어 및 패키지 관리

1. 우분투 패키지 개요

  • 배포 방식: 소스코드(컴파일 필요) 또는 패키지(바이너리 실행 파일) 형태.
  • 패키지 형식: 우분투는 deb 형식을 사용(RedHat 계열은 RPM 사용).
  • Snap 도입: 우분투 16.04부터 도입된 샌드박스형 패키지. 의존성 문제를 해결했으며 deb와 호환됨.
  • 주요 특징:
    • 컴파일 과정 없이 즉시 설치 가능.
    • 삭제 시 관련 파일 일괄 제거 및 기존 패키지 유지하며 업그레이드 지원.
    • apt 명령을 통해 의존성 있는 패키지를 자동 설치.

2. 패키지 카테고리

  • main: 우분투 공식 지원, 자유 소프트웨어.
  • restricted: 우분투 지원이나 완전한 자유 라이선스는 아님.
  • universe: 커뮤니티 지원, 기술 지원 보장 안 됨.
  • multiverse: 사용자가 직접 라이선스 확인 필요.

3. 패키지 명명 규칙 및 저장소

  • 이름 형식: 패키지명_버전_데비안리비전_우분투리비전_아키텍쳐.deb
  • 저장소 설정: /etc/apt/sources.list.d/ubuntu.sources 파일에 저장소 정보 기록.
    • 주요 항목: Types(deb), URIs(저장소 주소), Suites(버전), Components(카테고리).

4. apt-cache : 패키지 정보 질의

  • apt-cache stats: 전체 통계 정보 확인.
  • apt-cache search [패키지명]: 캐시에서 패키지 검색.
  • apt-cache show [패키지명]: 상세 정보 확인.
  • apt-cache pkgnames: 사용 가능한 전체 패키지 이름 목록 출력.

5. apt / apt-get : 패키지 관리 핵심 명령

  • 주요 옵션: -y(설정 질문 생략), -d(다운로드만 수행).
  • 주요 서브 명령:
    • update: 저장소에서 새로운 패키지 정보 갱신(설치 전 필수).
    • upgrade: 설치된 패키지들을 최신 버전으로 업그레이드.
    • install [패키지]: 패키지 설치.
    • remove: 패키지 삭제(설정 파일 유지).
    • purge: 패키지 및 설정 파일 전체 삭제.
    • autoremove: 불필요한 의존성 패키지 자동 정리.
    • clean: 캐시된 패키지 파일 삭제로 디스크 공간 확보.

6. dpkg : 저수준 패키지 관리

  • 특징: APT의 기반이 되는 명령어로, 인터넷 연결 없이 .deb 파일을 직접 다룰 때 사용.
  • 주요 옵션:
    • -l: 설치된 패키지 목록 출력.
    • -i [.deb파일]: 패키지 설치.
    • -r: 패키지 삭제.
    • -P: 패키지 및 설정 파일 완전 삭제.
    • -L [패키지명]: 설치된 파일 목록 확인.

7. snap : 차세대 패키지 관리

  • 개요: 프로그램 실행에 필요한 모든 라이브러리를 포함한 격리된 패키지 방식.
  • 장단점: 보안과 의존성 해결에 유리하나, 패키지 용량이 커지는 단점이 있음.
  • 실습 명령어:
    • sudo snap find [이름]: 스냅 패키지 검색.
    • sudo snap install [이름]: 스냅 설치.
    • sudo snap list: 설치된 스냅 목록 확인.

8. Docker(도커) 설치 실습

  • 공식 스크립트 이용(권장)
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    sudo docker version  # 설치 확인
    

리눅스 파일 관리: 아카이브 및 압축

9. tar (Tape Archive)

  • 개요: 여러 개의 파일을 하나로 묶는 '아카이브' 생성 도구. 기본적으로 용량을 줄이는 '압축' 기능은 없으나, 옵션을 통해 압축까지 동시에 수행 가능함.
  • 명령 형식: tar [기능] [옵션] [아카이브파일] [대상파일]
  • 주요 기능:
    • c (Create): 새로운 tar 파일 생성.
    • t (List): 내용 목록 확인.
    • x (Extract): 아카이브에서 파일 추출(해제).
    • r (Append): 기존 아카이브 끝에 파일 추가.
    • u (Update): 수정된 파일만 업데이트.
  • 주요 옵션:
    • f: 대상 파일명 지정 (필수 옵션).
    • v: 처리 과정을 화면에 상세히 출력.
    • z: gzip을 이용해 압축/해제 (.tar.gz).
    • j: bzip2를 이용해 압축/해제 (.tar.bz2).
  • 자주 쓰는 세트:
    • 묶기: tar cvf 파일.tar 대상
    • 풀기: tar xvf 파일.tar
    • 확인: tar tvf 파일.tar

10. 압축 유틸리티 비교 (gzip, bzip2, xz)

리눅스에서는 tar로 파일을 묶은 뒤 아래 도구들로 실제 용량을 줄임.

도구 특징 확장자 해제 명령
gzip 가장 대중적이며 속도가 빠름 .gz gunzip
bzip2 gzip보다 압축률이 좋지만 속도가 약간 느림 .bz2 bunzip2
xz 최근 등장, 압축률이 가장 뛰어나지만 시간 소요됨 .xz unxz
zip Windows와 호환성이 가장 좋음 .zip unzip

11. 실습 기록

  • 아카이브 및 파일 추가
    mkdir ex_archive && cd ex_archive
    mkdir sample1 sample2 sample3
    tar cvf sample1.tar sample1    # sample1 묶기
    tar rvf sample1.tar sample2    # 묶여있는 파일에 sample2 추가
    
  • 압축을 통한 사이즈 줄이기 (z, j 옵션)
    tar czvf sample1.tar.gz sample1  # gzip 압축 (용량 작음)
    tar cjvf sample1.tar.bz2 sample1 # bzip2 압축 (더 작음)
    ls -l                          # 파일 사이즈 차이 확인
    
  • 개별 파일 압축 (tar 없이)
    gzip sample1.tar               # sample1.tar.gz 생성
    bzip2 sample2.tar              # sample2.tar.bz2 생성
    

다운로드

12. wget (Web Get)

  • 개요: 웹상의 파일을 다운로드하는 비상호작용 네트워크 다운로더임.
  • 주요 특징:
    • HTTP, HTTPS, FTP 프로토콜 및 HTTP 프록시 지원함.
    • 비상호작용 방식으로 백그라운드 동작이 가능하여 로그아웃 상태에서도 작업 수행 가능함.
    • Recursive downloading을 지원하여 웹 사이트 전체를 로컬로 미러링(구조 복제)할 수 있음.
    • 네트워크 불안정 시 연결이 끊긴 시점부터 이어서 받는 기능이 매우 견고함.
  • 주요 명령어:
    • wget [URL]: 기본 다운로드 수행.
    • wget -O [파일명] [URL]: 다운로드 시 파일 이름 지정하여 저장.
    • wget -c [URL]: 중단된 다운로드 이어서 받기.
    • wget -b [URL]: 백그라운드 다운로드 모드 실행.
    • wget --limit-rate [속도] [URL]: 다운로드 대역폭 제한 설정.
    • wget -m [URL]: 웹 사이트 미러링 및 로컬 오프라인 열람용 링크 변환(-k 병행).

13. curl (Client URL)

  • 개요: 다양한 프로토콜로 데이터를 전송하거나 가져오는 터미널 도구임.
  • 주요 특징:
    • 서버와의 데이터 통신 및 REST API 테스트에 최적화된 개발자 필수 도구임.
    • HTTP 메서드(GET, POST, PUT, DELETE 등)를 정교하게 제어할 수 있음.
  • 주요 명령어:
    • curl [URL]: 웹 페이지 소스 코드를 표준 출력으로 표시함.
    • curl -o [파일명] [URL]: 지정한 파일명으로 결과 저장.
    • curl -O [URL]: 원본 서버의 파일명 그대로 저장.
    • curl -I [URL]: HTTP 헤더 정보만 조회함.
    • curl -L [URL]: 리다이렉트 발생 시 자동으로 추적하여 데이터 수신함.

14. 실무 빈출 옵션 조합: -fsSL

  • 옵션별 의미:
    • f: HTTP 에러 발생 시 출력 없이 실패 처리하여 쉘 스크립트 오작동 방지.
    • s: 정숙 모드(Silent), 에러 및 진행 상황 숨김.
    • S: -s 사용 중 치명적 에러 발생 시에만 메시지 출력.
    • L: 리다이렉트 자동 추적.
  • 사용 목적: 쉘 스크립트(sh, bash) 연결 시 깔끔한 출력과 안정적인 실행을 위해 사용함.

15. wget과 curl 비교 요약

항목 wget curl
주요 용도 단순 파일/사이트 전체 다운로드 데이터 전송 및 API 통신 테스트
재시도 기능 자동 재시도 지원 (매우 강력) 기본적으로 재시도하지 않음
재귀적 다운로드 지원 (디렉토리 구조 복제) 지원하지 않음
복잡성 단순하고 직관적인 사용법 매우 정교한 프로토콜 및 옵션 제공
     

 

 
728x90
반응형

'BASIC > LINUX' 카테고리의 다른 글

[LINUX] 디스크 관리  (1) 2026.01.12
[LINUX] 부팅 시스템  (0) 2026.01.09
[LINUX] 프로세스  (1) 2026.01.08
[LINUX] FILE SYSTEM  (0) 2026.01.08
Shell  (0) 2026.01.07