
1. RPM 패키지
(1) RPM 패키지의 개념과 설치
- RPM : Redhat Package Manager, 대표적인 리눅스 회사인 레드햇에서 만든 패키지 관리도구로 파일을 쉽게 설치할 수 있음
[특징]
ⓐ 바이너리 파일로 구성되어 있어 컴파일이 필요 없음
ⓑ 패키지 파일들이 관련 디렉터리로 바로 설치됨
ⓒ 한 번에 설치된 패키지의 파일을 일괄적으로 삭제할 수 있음
ⓓ 기존에 설치된 패키지를 삭제하지 않고 바로 업그레이드 할 수 있음
ⓔ 패키지의 설치 상태를 검증할 수 있음
ⓕ 패키지에 대한 정보를 제공함
[구성]
| anaconda-widgets- | 32.25.2.10- | 1.el9_w.rocky. 0.3 | x86_64 | .rpm |
| 패키지 이름 | 패키지 버전 | 패키지 릴리즈 | 아키텍쳐 | 확장자 |
- 릴리즈는 해당 버전에서 몇 번째 만들어진 것인지를 나타냄
- 1.el9_2 에서 1은 첫 번째 만들어진 패키지, CentOS9용으로 만들어진 것임을 의미
- 로키 리눅스는 CentOS의 후속 프로젝트로 탄생한 소프트웨어로 CentOS와 호환성을 유지
- rocky.0.3은 패키지가 호키 리눅스용으로 릴리즈된 것임을 의미
- 아키텍쳐는 인텔 X86 CPU 64비트 운영체제를 의미
[rpm [설치옵션]]
- 기능 : RPM 패키지를 관리함
레드햇은 option 사용에 '--'를 사용
* --quiet 최대한 출력을 줄이고 오류 메세지만 출력함
* --help 도움말을 출력함
* --version 사용중인 rpm의 버전을 출력함
[rpm -i [설치옵션] [패키지명]]
-rpm 명령으로 패키지를 설치할 때 일반적인 형식
- 기능 : rpm 패키지를 설치함
* -h #(해시) 출력
*-v 설치 과정에 대한 메세지 출력
*--replacefiles 이미 설치된 다른 패키지의 파일을 덮어쓰면서라도 패키지를 강제로 설치함
*--replacepkgs 패키지가 이미 설치되어 있어도 다시 설치함
*--test 설치하지는 않고 충돌 사항 있는지만 점검하고 보고함
[rpm -U [설치옵션] [패키지명]]
- rpm 명령으로 패키지를 업그레이드하여 설치할 때 일반적인 형식
- 기능 : rpm 패키지를 업그레드 함
* h #(해시)를 출력함
*-v 설치과정에 대한 메세지를 출력함
*-U 패키지를 업그레이드하여 설치함
[일반적인 형식]
rpm -Uvh : 패키지를 업그레이드 시 사용
- -U옵션으로 패키지를 설치하면 기존에 설치된 패키지는 업그레이드하여 설치하고 새로운 패키지는 그대로 설치해줌
- 보통 -i 옵션보다 -U옵션을 더 많이 사용
- 설치 과정에 대한 메세지와 #을 출력하여 사용자가 진행 상황을 알 수 있도록 함
[패키지의 설치와 의존성]
- xterm : X윈도 환경에서는 터미널을 에뮬레이션 해주는 프로그램, 일반 사용자 계정에서 실행
- 기존에 미리 a 패키지가 설치되어있어야 b 패키지를 설치 가능 b는 a 패키지 의존성이 있다
(2) RPM 패키지 정보 검색과 삭제
[rpm -q [질의 옵션]]
- 기능 : rpm 패키지의 정보를 검색함
* -a 전체 패키지의 목록을 출력함
* -f 파일명 파일명을 포함하고 있는 패키지명을 출력함
* -p 패키지명 지정한 패키지의 상세 정보를 출력함
* -i 자세한 정보를 출력함
* -R 의존하고 있는 패키지의 목록을 출력함
* -l 패키지 내의 파일을 출력함
* -s 패키지 안에 들어있는 파일의 상태를 출력함
* -d 문서 파일만 출력함
* -c 설정 파일만 출력함
[rpm -qa | more]
- 현재 설치된 전체 패키지 목록 출력
[rpm -qa | grep "aaa"]
- aaa 패키지가 설치되어 있는지 확인
[rpm -qf /path/file]
- 특정 파일이 어떤 패키지에 포함되어 있는지 궁금할 때 사용
[rpm -qip, -qif]
- p 옵션을 사용할 때에는 해당 패키지가 위치한 경로를 지정하거나 디렉터리로 이동해야 함
- 패키지명만 지정하면 오류 발생
- 패키지 파일이 위치한 디렉터리에서 패키지명을 지정하면 패키지의 상세정보를 출력함
[rpm -e [패키지명]]
- 기능 RPM 패키지를 삭제함
(3) 설치 방법
- 파이어폭스에서 pkgs.org 접속
- pkgs.org에서 gnome-2048 검색
- 아직 로키 리눅스용 버전이 없으므로 Fedora 38버전 ggnome-2048-3.38.2-7.fc38.x86-64.rpm 패키지 다운로드
- 설치할 패키지의 상세정보 확인
- cp 해당 경로 이동
- rpm -ivh gnome -2048-3.38.2-7.fc38.x86-64.rpm 입력
- 의존성이 있는 패키지를 추가로 설치함
- rpm -ivh libgnome-games-support-1.8-2.4.fc38.x86-64.rpm
- rpm -ivh gnome -2048-3.38.2-7.fc38.x86-64.rpm
2. DNF 패키지
(1) DNF 패키지의 개념과 설치
- RPM 기반의 리눅스 패키지 관리자로 기존 패키지 관리자인 yum을 대체한 것
- yum 명령을 확인해보면 DNF로 업그레이드 되었다는 설명이 나옴 (man yum 입력)
- 기존의 yum 명령도 DNF에 대한 심볼릭 링크로 유지되고 있어 yum을 사용해도 무관
- DNF의 최대 장점은 패키지를 설치할 때 번거로웠던 패키지 의존성 문제를 자동으로 해결해 설치, 업그레이드, 삭제 가능
- 설치 가능한 패키디에 대한 정보가 담긴 저장소(Repository)를 가지고있음
- 저장소의 정보에 따라 패키지를 관리함
[DNF의 기본 형식 : dnf [옵션] [명령] [패키지명]]
- 기능 : RPM 기반의 패키지 관리
- 옵션 : -h 도움말 출력, -y 설치 과정의 모든 질문에 yes라고 대답함, -v 자세한 메세지 출력
- 명령 : install 설치, upgrade 업데이트, check-update 패키지 확인, search 검색, remove 삭제, list 목록 출력, info 정보 출력
- 패키지명.아키텍쳐버전-릴리즈 저장소/@설치한 저장소
> 옵션 없이 dnf list만 실행하면 현재 설치된 패키지 목록과 업그레이드 할 수 있는 패키지 목록 출력
> dnf list all 명령의 결과와 같음
- dnf list 명령 옵션 : --all 모든 목록 출력, --avilable 설치 가능한 목록 출력, -upgrades 업그레이드 가능한 목록 출력, --installed 이미 설치된 목록 출력, --installed [패키지명] 해당 패키지가 이미 설치되어있는지 출력
- 업그레이드할 때에도 설치과정과 똑같이 의존 관계의 패키지가 있으면 함께 업그레이드됨
(2) DNF 패키지 정보 검색과 삭제
- 특정 패키지의 정보를 DNF로 확인하려면 dnf info [패키지명]을 입력해야 함
- 결과는 패키지이름 버전 출시(릴리즈) 구조(아키텍쳐) 크기(패키지 파일 크기) 원천(패키지 파일명) 등의 정보 출력
- DNF로 패키지를 삭제하려면 dnf remove [패키지명] 사용
- 패키지 삭제 시에도 의존성 확인 후 해당 패키지와 더 이상 사용하지 않는 의존성 패키지를 함께 삭제
(3) DNF로 패키지 설치하기
- gimp 패키지를 DNF로 설치해보기
> gimp는 GNU Image Manupulate Program의 약자로 그래픽 편집도구임
ⓐ gimp 설치 유무 확인 : dnf list --installed gimp
ⓑ gimp 설치 : dnf install gimp
> 의존성이 있는 패키지 포함 21 꾸러미 설치
ⓒ y를 입력하여 설치 진행
ⓓ 설치된 패키지의 상세 내용 확인 dnf list --all dimp
3. 파일 아카이브와 압축
(1) 파일 아카이브
- 아카이브 : 보관소, 저장소, 파일을 묶어서 하나로 만든 것이라는 의미
- tar 명령 : 여러 파일이나 디렉터리를 묶어서 마그네틱 테이프와 같은 이동식 저장장치에 보관하기 위해 사용하는 명령
다른 시스템과 파일을 주고받는 경우, 백업에 필요한 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하는 경우
기존 아카이브에서 파일을 추출하는 경우에 사용
[tar 기능[옵션] [아카이브파일] [파일명]]
- 기능 : 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성
- 기능 종류 : c 새로운 tar 파일 생성, t tar 파일의 내용 출력, x tar 파일에서 원본 파일 추출, r 새로운 파일 추가, u 수정된 파일 업데이트
- 옵션 : f 아카이브 파일이나 테이프 장치를 지정하며, 파일명을 '-'로 지정하면 tar 파일 대신 표준 입력에서 읽어들임
v 옵션은 처리 중인 파일의 이름을 화면에 출력함
- 파일명에는 특별한 제약이 없지만 확장자 .tar로 지정해야 관리가 편함
- tar 명령을 이용하여 여러 파일이나 디렉터리를 묶어서 아카이브 파일 생성 가능
- tar 명령 실습 준비 : 일반 사용자 계정에서 Test 디렉터리로 이동
- 아카이브를 풀 때는 xextract 기능 사용
* xvf 옵션 : 파일은 아카이브를 생성할 때 저장한 원래의 경로에 복사됨
> 아카이브를 풀기 전에 tvf 기능을 이용하여 아카이브 파일 경로를 확인한 후 적당한 위치로 이동하여 작업을 수행하는 것이 바람직함
* uvf 옵션 : 아카이브를 만든 다음 일부 파일이 수정되었다면 update 기능을 이용하여 수정된 파일을 추가할 수 있음
> u 기능은 지정한 파일이 아카이브에 없는 파일이거나, 아카이브에 있는 파일이지만 수정된 파일일 때 아카이브의 마지막에 추가
> 기존 파일에 변경사항이 없는 경우 u 기능을 지정하여 아카이브를 수정해도 변경되는 것이 없음
> touch 명령을 사용하여 파일의 수정시간을 변경한 뒤 u 기능을 사용하면 해당 파일이 아카이브에 추가됨
> 이 경우 아카이브에 파일을 추출할 때 앞에서부터 순서대로 추출되므로 나중에 추가된 파일이 마지막에 추출됨
* rvf 옵션 : 이미 생성된 아카이브에 파일을 추가하는 기능
> 아카이브에 파일이 있는지 확인하고 추가하는 u 기능과는 달리 r은 지정한 파일을 무조건 아카이브의 마지막에 추가
(2) 파일 압축
- 아카이브를 생성하면서 동시에 압축할 수 있음
- 압축을 하면 아카이브 파일의 크기가 작아지므로 디스크 공간이 부족할 때 이용하면 좋음
- tar czvf [파일명.tar.gz] [경로] : gzip(z옵션)으로 사용하는 경우, 아카이브에 .gz를 붙여 압축했음을 표시
- tar cvjf [파일명.tar.bz2] [경로] : bzip2(j옵션)으로 사용하는 경우, 아카이브에 .bz2를 붙여 압축했음을 표시
- tar tvf [파일명.tar.확장자] : 압축한 아카이브 파일 내용 확인
[gzip [옵션] [파일명]] : gzip으로 파일을 압축함
* -d 파일 압축 해제
* -l 압축한 파일의 정보를 보여줌
* -r 하위 디렉터리를 탐색하여 압축함
* -t 압축 파일 검사
* -v 압축 정보 화면에 출력
* -9 최대한 압축
[zcat [파일명]] : gzip으로 압축된 파일의 내용 출력
[gunzip [파일명]] : gzip으로 압축된 파일을 gunzip으로 복원 가능
> gzip은 다른 압축 명령과 달리 별도의 압축 풀기 명령을 사용하지 않음
* -d 옵션을 넣어 압축 파일을 풀 수 있음
- bzip2는 gzip에 비해 대체로 압축률은 좋지만 속도는 약간 느림
[bzip2 [옵션] [파일명]] : bzip2로 파일을 압축함
* -d 파일 압축 해제
* -l 압축된 파일의 정보 출력
* -t 압축 파일 검사
* -v 압축 정보 화면에 출력
* --best 최대한 압축
[bzcat [파일명]] : 압축된 파일의 내용을 출력함
[bunzip2 [파일명]] : bzip2로 압축된 파일의 압축을 풂 (복원함)
'컴퓨터공학부' 카테고리의 다른 글
| [자료구조] 트리 (0) | 2026.05.18 |
|---|---|
| [시스템 프로그래밍 Linux] 사용자 관리 (0) | 2026.05.16 |
| [자료구조] 탐색 (0) | 2026.05.08 |
| [차크라 명상] 차크라의 색과 소리 (0) | 2026.05.07 |
| [데이터 구조와 활용] 깊이 우선 탐색 DFS (0) | 2026.05.05 |