Red Hat, CentOS, Fedora의 패키지 관리를 위한 포괄적인 YUM 및 DNF 명령어와 워크플로우.
설치 및 업데이트
기본 패키지 작업 (DNF)
| 명령어 | 설명 |
|---|
sudo dnf update | 모든 패키지 업데이트 |
sudo dnf upgrade | 모든 패키지 업그레이드 (업데이트와 동일) |
sudo dnf install package_name | 패키지 설치 |
sudo dnf remove package_name | 패키지 제거 |
sudo dnf autoremove | 사용하지 않는 종속성 제거 |
sudo dnf reinstall package_name | 패키지 재설치 |
기본 패키지 작업 (YUM)
| 명령어 | 설명 |
|---|
sudo yum update | 모든 패키지 업데이트 |
sudo yum install package_name | 패키지 설치 |
sudo yum remove package_name | 패키지 제거 |
sudo yum autoremove | 사용하지 않는 종속성 제거 |
sudo yum reinstall package_name | 패키지 재설치 |
고급 설치
| 명령어 | 설명 |
|---|
sudo dnf install package1 package2 | 여러 패키지 설치하기 |
sudo dnf install package-version | 특정 버전 설치 |
sudo dnf localinstall package.rpm | 로컬 RPM 파일 설치 |
sudo dnf downgrade package_name | 패키지 다운그레이드 |
sudo dnf install --enablerepo=repo package | 특정 저장소에서 설치 |
패키지 정보
검색 및 정보
| 명령어 | 설명 |
|---|
dnf search keyword | 패키지 검색 |
dnf info package_name | 패키지 정보 표시 |
dnf list installed | 설치된 패키지 목록 |
dnf list available | 사용 가능한 패키지 목록 |
dnf list updates | 사용 가능한 업데이트 목록 |
rpm -qa | 설치된 모든 패키지 나열하기 |
rpm -qi package_name | 설치된 패키지 정보 표시 |
패키지 의존성
| 명령어 | 설명 |
|---|
dnf deplist package_name | 패키지 종속성 표시 |
dnf repoquery --requires package_name | 패키지 요구 사항 표시 |
dnf repoquery --whatrequires package_name | 패키지에 필요한 것을 보여줍니다 |
rpm -qR package_name | RPM 패키지 종속성 표시 |
저장소 관리
저장소 작업
| 명령어 | 설명 |
|---|
dnf repolist | 활성화된 저장소 목록 |
dnf repolist all | 모든 저장소 나열하기 |
sudo dnf config-manager --add-repo URL | 저장소 추가 |
sudo dnf config-manager --disable repo_name | 저장소 비활성화 |
sudo dnf config-manager --enable repo_name | 저장소 활성화 |
EPEL 저장소 (CentOS/RHEL)
| 명령어 | 설명 |
|---|
sudo dnf install epel-release | EPEL 저장소 설치 |
sudo yum install epel-release | EPEL(YUM) 설치 |
시스템 유지 관리
정리 작업
| 명령어 | 설명 |
|---|
sudo dnf clean all | 모든 캐시 지우기 |
sudo dnf clean packages | 패키지 캐시 정리 |
sudo dnf clean metadata | 메타데이터 캐시 정리 |
sudo dnf autoremove | 고아 패키지 제거 |
패키지 그룹
| 명령어 | 설명 |
|---|
dnf group list | 패키지 그룹 나열하기 |
dnf group info "Group Name" | 그룹 정보 표시 |
sudo dnf group install "Development Tools" | 패키지 그룹 설치 |
sudo dnf group remove "Group Name" | 패키지 그룹 제거 |
구성 파일
DNF/YUM 구성
| 파일 | 설명 |
|---|
/etc/dnf/dnf.conf | DNF 주 구성 파일 |
/etc/yum.conf | YUM 주 구성 |
/etc/yum.repos.d/ | 저장소 구성 파일 |
/var/log/dnf.log | DNF 로그 파일 |
/var/log/yum.log | YUM 로그 파일 |
dnf.conf 예시
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
fastestmirror=True
max_parallel_downloads=10
저장소 파일 예시
[example-repo]
name=Example Repository
baseurl=https://example.com/repo/
enabled=1
gpgcheck=1
gpgkey=https://example.com/RPM-GPG-KEY
고급 사용법
히스토리 및 롤백
| 명령어 | 설명 |
|---|
dnf history | 거래 내역 표시 |
dnf history info ID | 거래 세부 정보 표시 |
sudo dnf history undo ID | 트랜잭션 취소 |
sudo dnf history redo ID | 거래 다시 하기 |
sudo dnf history rollback ID | 트랜잭션으로 롤백 |
모듈 관리 (DNF)
| 명령어 | 설명 |
|---|
dnf module list | 사용 가능한 모듈 목록 |
dnf module list --installed | 설치된 모듈 목록 |
sudo dnf module install module:stream | 모듈 스트림 설치 |
sudo dnf module enable module:stream | 모듈 스트림 활성화 |
sudo dnf module disable module | 모듈 비활성화 |
보안 업데이트
| 명령어 | 설명 |
|---|
dnf updateinfo | 업데이트 정보 표시 |
dnf updateinfo --security | 보안 업데이트 표시 |
sudo dnf update --security | 보안 업데이트만 설치하세요 |
dnf updateinfo list cves | CVE 목록 |
패키지 빌드
RPM 개발
| 명령어 | 설명 |
|---|
sudo dnf install rpm-build rpmdevtools | 빌드 도구 설치 |
rpmdev-setuptree | RPM 빌드 트리 설정 |
rpmbuild -ba package.spec | RPM 패키지 빌드 |
rpm -qp --requires package.rpm | RPM 종속성 확인 |
소스 RPM
| 명령어 | 설명 |
|---|
dnf download --source package_name | 소스 RPM 다운로드 |
rpm -ivh package.src.rpm | 소스 RPM 설치 |
rpmbuild --rebuild package.src.rpm | 소스에서 다시 빌드 |
문제 해결
일반적인 문제
| 문제 | 솔루션 |
|---|
| Conflicting packages | sudo dnf remove conflicting_package |
| Broken dependencies | sudo dnf check |
| Corrupted RPM database | sudo rpm --rebuilddb |
| Repository errors | sudo dnf clean all && sudo dnf makecache |
잠금 문제
Would you like me to continue with the remaining sections?
| 명령어 | 설명 |
|---|
sudo rm /var/lib/rpm/.rpm.lock | RPM 잠금 해제 |
sudo rm /var/run/yum.pid | YUM 잠금 제거 |
| `ps aux \ | grep yum` |
| 명령어 | 설명 |
|---|
sudo rpm --rebuilddb | RPM 데이터베이스 재구축 |
sudo dnf check | 문제 확인 |
sudo dnf distro-sync | 패키지 동기화 |
Fedora 업데이트
| 명령어 | 설명 |
|---|
sudo dnf system-upgrade download --releasever=XX | 다운로드 업그레이드 |
sudo dnf system-upgrade reboot | 업그레이드 수행 |
sudo dnf install fedora-upgrade | 업그레이드 도구 설치 |
| 명령어 | 설명 |
|---|
sudo dnf install flatpak | Flatpak 설치 |
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | Flathub 추가하기 |
구독 관리자 (RHEL)
| 명령어 | 설명 |
|---|
sudo subscription-manager register | 시스템 등록 |
sudo subscription-manager attach --auto | 자동 연결 구독 |
sudo subscription-manager repos --enable=repo_name | 저장소 활성화 |
| 명령어 | 설명 |
|---|
sudo dnf install centos-release-stream | Stream 저장소 설치 |
sudo dnf swap centos-linux-repos centos-stream-repos | Stream으로 전환 |
구성 조정
# /etc/dnf/dnf.conf optimizations
[main]
fastestmirror=True
max_parallel_downloads=10
deltarpm=True
keepcache=True
| 명령어 | 설명 |
|---|
sudo dnf install dnf-plugins-core | DNF 플러그인 설치 |
sudo dnf config-manager --set-enabled powertools | PowerTools (CentOS) 활성화 |