cmod.ify
[LINUX] 소프트웨어 본문
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 |