dnf
dnf(Dandified Yum)는 레드햇 계열 리눅스 배포판에서 사용되는 패키지 관리자 도구.
의존성 문제를 해결해주며 프로그램을 설치하고 삭제하는 데 사용.
dnf 저장소 관리
~]# dnf repolist # 사용 가능한 저장소 보기
~]# dnf repolist all # 모든 저장소(비활성 포함) 보기
~]# dnf config-manager --set-enabled crb # crb 저장소 활성화
# 활성화 후 /etc/yum.repos.d/rocky.repo 파일에서 [crb]섹션 enabled=1로 설정된 것을 확인.
~]# dnf config-manager --set-disabled [저장소] # 저장소 비활성화
~]# dnf install epel-release # epel-release 저장소 설치
# epel(Extra Packages for Enterprise Linux)은 레드햇 계열 배포판에서 사용할 수 있는 확장 패키지 모음
# .repo 파일을 직접 생성하여 저장소 추가 가능.
Bashdnf 프로그램 관리
~]# dnf clean all # dnf 캐시를 삭제
~]# dnf list installed # 설치된 패키지 목록
~]# dnf check-update # 설치된 프로그램 업데이트 가능한 목록
~]# dnf update # 업데이트 가능한 목록을 업데이트
~]# dnf update --disablerepo=mariadb # 특정 저장소 - mariadb - 제외하고 업데이트
~]# dnf list [패키지] # 패키지 리스트 목록 확인
~]# dnf install [패키지] [패키지] [...] # 패키지 설치 - 복수 패키지 설치 가능
~]# dnf remove [패키지] # 패키지 삭제
~]# dnf repoquery --requires certbot # 의존성 패키지 목록 확인
# DNF 패키지 관리자가 자동으로 설치한 의존성 패키지 중 더 이상 필요하지 않은 패키지들을 제거하는 데 사용
~]# dnf autoremove # 의존성 해제된 프로그램 자동제거
# semanage 가 설치 되지 않았을 경우
~]# dnf provides */semanage # semanage 명령을 제공하는 패키지를 식별
Bashdnf 트랜잭션 관리
~]# dnf history # 트랜잭션 기록
~]# dnf history info [트랜잭션 ID] # 트랜잭션 세부정보
~]# dnf history undo [트랜잭션 ID] # 트랜잭션 되돌리기
~]# dnf history redo [트랜잭션 ID] # 트랜잭션 재실행
~]# dnf history rollback [트랜잭션 ID] # 트랜잭션 롤백
BashRPM DB 손상되었을 때
### 증상 ###
오류: rpmdb: BDB0113 Thread/process 656434/140367036869504 failed: BDB1507 Thread died in Berkeley DB library
오류: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
오류: cannot open Packages index using db5 - (-30973)
오류: /var/lib/rpm 안의 패키지 데이터베이스를 열 수 없습니다
오류: Error: rpmdb open failed
Bash~]# cp -a /var/lib/rpm /var/lib/rpm.bak # 현재 상태 백업
~]# rm -f /var/lib/rpm/__db* # 잠긴 파일 제거
~]# rpm --rebuilddb # 데이터베이스 복구
~]# rpm -qa # rpm 검사
# RPM DB가 정상적으로 복구되었다면 /var/lib/rpm.bak 백업 파일을 삭제
Bash