Rocky Linux / 설치된 패키지 확인하는 방법

Rocky Linux에서 설치된 패키지는 dnf와 rpm으로 확인할 수 있습니다. 평소에는 저장소 정보와 의존성을 함께 보여 주는 dnf를 사용하고, 정확한 RPM 데이터베이스 조회나 파일 소유 패키지 확인에는 rpm을 사용하면 편리합니다.

설치된 패키지 전체 목록 확인

DNF(Dandified YUM)는 Rocky Linux의 패키지 관리자입니다. 다음 명령은 설치된 패키지 이름, 버전과 설치 출처를 표 형식으로 보여 줍니다.

dnf list --installed

RPM 데이터베이스에 등록된 패키지 이름만 간단히 확인하려면 다음 명령을 사용합니다.

rpm -qa | sort

결과가 길면 less로 페이지를 나누거나 grep으로 필요한 이름만 찾을 수 있습니다.

rpm -qa | sort | less
rpm -qa | grep -i postgresql

특정 패키지의 설치 여부와 정보 확인

이름을 알고 있을 때

rpm -q는 패키지가 설치되어 있으면 정확한 이름과 버전을 출력하고, 설치되어 있지 않으면 오류 메시지와 0이 아닌 종료 상태를 반환합니다.

rpm -q curl
dnf info --installed curl

명령이나 파일의 패키지를 찾을 때

이미 존재하는 파일이 어느 패키지에서 설치되었는지는 rpm -qf로 확인합니다. 심볼릭 링크가 있는 명령은 readlink -f로 실제 경로를 찾은 뒤 조회하면 더 정확합니다.

rpm -qf /usr/bin/curl
rpm -qf "$(readlink -f "$(command -v python3)")"

아직 설치되지 않은 명령이나 파일을 제공하는 저장소 패키지는 dnf provides로 찾습니다.

dnf provides '*/semanage'

버전, 설치 시각과 출처를 자세히 보기

RPM의 쿼리 포맷을 이용하면 필요한 항목만 원하는 순서로 출력할 수 있습니다. 아래 예시는 패키지 이름, 에포크·버전·릴리스, 아키텍처를 탭으로 구분합니다.

rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort

최근에 설치된 패키지 순서는 다음과 같이 확인합니다.

rpm -qa --last | head -n 30
확인 목적 권장 명령
전체 설치 목록 dnf list --installed 또는 rpm -qa
특정 패키지 확인 rpm -q 패키지명
패키지 상세 정보 dnf info --installed 패키지명
파일 소유 패키지 rpm -qf 파일경로
파일 제공 패키지 검색 dnf provides '*/파일명'
최근 설치 순서 rpm -qa --last

직접 설치한 패키지와 변경 이력 확인

사용자가 설치한 항목

DNF가 사용자 요청으로 설치된 것으로 기록한 패키지는 다음 명령으로 볼 수 있습니다. 의존성으로 자동 설치된 항목을 제외해 서버의 용도를 파악하거나 정리 대상을 검토할 때 유용합니다.

dnf history userinstalled

다만 과거에 RPM 파일을 직접 설치했거나 시스템을 마이그레이션한 경우에는 기록이 완전하지 않을 수 있습니다. 이 결과만으로 패키지를 자동 삭제하지 말고 서비스와 의존성을 함께 확인해야 합니다.

DNF 거래 이력

설치·업데이트·삭제 작업의 이력과 특정 거래의 상세 내역은 다음처럼 조회합니다.

dnf history
dnf history info 거래_ID

설치 파일과 설정 변경 여부 검사

rpm -V는 설치 당시 기록과 현재 파일의 크기, 체크섬, 권한, 소유자 등을 비교합니다. 아무것도 출력되지 않으면 검사 항목에서 차이가 발견되지 않았다는 뜻입니다.

sudo rpm -V openssh-server

/etc 아래 설정 파일은 관리자가 의도적으로 바꾼 경우에도 차이로 표시됩니다. 결과가 나왔다고 바로 복원하지 말고 변경 관리 기록과 백업을 대조하십시오.

서버 패키지 목록을 파일로 보관하기

장애 대응이나 마이그레이션을 위해 이름·버전·아키텍처를 텍스트로 저장해 두면 두 시점 또는 두 서버를 비교하기 쉽습니다.

rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort > installed-packages.tsv

이 목록은 당시 상태의 기록이지 다른 서버에서 그대로 실행할 설치 스크립트는 아닙니다. Rocky Linux 주 버전, 활성 저장소와 모듈 스트림이 다르면 같은 버전을 구할 수 없으므로 복구 절차는 별도로 시험해야 합니다.

자주 생기는 문제

  • 명령이 없다고 나오는 경우: 최소 설치에서는 일부 DNF 플러그인이 빠질 수 있습니다. 먼저 명령의 제공 패키지를 확인하십시오.
  • 이름이 예상과 다른 경우: 실행 파일 이름과 패키지 이름은 같지 않을 수 있으므로 rpm -qf 또는 dnf provides를 사용합니다.
  • 목록이 서로 달라 보이는 경우: dnf는 저장소 메타데이터를 결합해 표시하고 rpm은 로컬 RPM 데이터베이스를 직접 조회합니다. 비교 목적에 맞는 도구를 선택하십시오.
  • 데이터베이스 오류가 나는 경우: 다른 패키지 작업이 진행 중인지 먼저 확인하고, 잠금 파일이나 데이터베이스를 임의로 삭제하지 마십시오.

참고 문서

같은 카테고리의 다른 글
Rocky Linux / Memo

Rocky Linux / Memo

Rocky Linux와 관련된 잡다한 정보를 정리합니다.

Rocky Linux / 설치된 패키지 확인하는 방법

Rocky Linux / 설치된 패키지 확인하는 방법

Rocky Linux에서 설치된 패키지를 DNF와 RPM으로 확인하는 방법을 설명합니다. 전체 목록, 특정 파일의 소유 패키지, 설치 시각과 변경 검증 방법도 정리합니다.

Rocky Linux / 호스트네임 변경하는 방법

Rocky Linux / 호스트네임 변경하는 방법

Rocky Linux에서 hostnamectl로 호스트네임을 변경하고 결과를 확인하는 방법을 설명합니다. 이름 해석과 서비스 재시작이 필요한 경우도 함께 살펴봅니다.

Rocky Linux / PostgreSQL 설치하는 방법

Rocky Linux / PostgreSQL 설치하는 방법

Rocky Linux에 PostgreSQL을 설치하고 초기화·서비스 활성화·역할 생성·원격 접속을 구성하는 방법을 설명합니다. pg_hba.conf, SCRAM, 방화벽과 TLS 주의점도 정리합니다.

Rocky Linux / GUI 환경 만드는 방법

Rocky Linux / GUI 환경 만드는 방법

Rocky Linux에 GNOME GUI를 설치하고 그래픽 부팅을 설정하는 방법을 설명합니다. Rocky Linux 8·9의 XRDP와 Rocky Linux 10의 GNOME 원격 데스크톱 차이도 정리합니다.

Rocky Linux / DNF 사용법

Rocky Linux / DNF 사용법

Rocky Linux의 DNF로 패키지를 검색·설치·업데이트·삭제하는 방법을 설명합니다. 저장소, 거래 이력, 캐시와 안전한 운영 요령도 함께 정리합니다.

Rocky Linux / 언어 변경하는 방법

Rocky Linux / 언어 변경하는 방법

Rocky Linux에서 localectl과 언어 팩으로 시스템 로케일을 확인·변경하는 방법을 설명합니다. 세션별 변경, LANG·LC_* 우선순위와 한글 깨짐 점검도 정리합니다.

Rocky Linux / MariaDB 설치하는 방법

Rocky Linux / MariaDB 설치하는 방법

Rocky Linux에 MariaDB를 설치하고 초기 보안을 설정하는 방법을 설명합니다. 최소 권한 계정, 원격 수신 주소, 방화벽 원본 제한과 TLS 점검 사항도 정리합니다.

Rocky Linux / root 계정으로 ssh 접속 가능하게 설정하는 방법

Rocky Linux / root 계정으로 ssh 접속 가능하게 설정하는 방법

Rocky Linux에서 root SSH 접속이 필요할 때 공개 키로만 허용하는 안전한 절차를 설명합니다. 설정 검사, 접속 제한과 원상 복구 방법도 정리합니다.

Rocky Linux / SELinux 끄는 방법

Rocky Linux / SELinux 끄는 방법

Rocky Linux의 SELinux 상태와 모드를 확인하고 차단 원인을 해결하는 방법을 설명합니다. Permissive 전환, 정책 조정과 완전 비활성화 시 주의점도 정리합니다.