Rocky Linux / DNF 사용법

Rocky Linux에서 프로그램을 설치하거나 업데이트할 때 가장 많이 사용하는 명령어 중 하나가 dnf입니다. dnf를 사용하면 패키지를 직접 다운로드할 필요 없이 저장소(Repository)에서 필요한 패키지를 검색하고 설치할 수 있으며, 설치된 패키지의 업데이트와 삭제, 시스템 전체 업데이트도 간단하게 처리할 수 있습니다.

Rocky Linux뿐만 아니라 RHEL, AlmaLinux, Fedora 등 RPM 기반 리눅스를 관리한다면 dnf 사용법을 알아두는 것이 좋습니다.

패키지 검색하기

설치하려는 패키지의 정확한 이름을 모르는 경우 dnf search를 사용할 수 있습니다.

# dnf search 키워드

예를 들어 nginx와 관련된 패키지를 검색하려면 다음과 같이 실행합니다.

# dnf search nginx

패키지 이름과 설명을 대상으로 검색하여 관련된 패키지 목록을 보여줍니다. 특정 프로그램을 설치하고 싶은데 패키지 이름을 정확하게 모를 때 유용한 명령어입니다.

패키지 설치하기

Rocky Linux에서 dnf를 이용하여 패키지를 설치하는 기본 명령어는 다음과 같습니다.

# dnf install 패키지명

예를 들어 vim을 설치하려면 다음과 같이 실행합니다.

# dnf install vim

설치를 진행하기 전에 설치되는 패키지와 용량 등의 정보가 표시되고 계속 진행할 것인지 묻습니다.

확인 과정 없이 바로 설치하고 싶다면 -y 옵션을 추가합니다.

# dnf install -y vim

서버를 자동으로 구성하는 스크립트 등에서는 -y 옵션을 자주 사용합니다. 하지만 어떤 패키지가 함께 설치되는지 확인해야 하는 상황에서는 -y를 사용하지 않고 내용을 확인한 후 진행하는 것이 좋습니다.

여러 패키지 한 번에 설치하기

여러 개의 패키지를 한 번에 설치할 수도 있습니다.

# dnf install 패키지1 패키지2 패키지3

예를 들어 다음과 같이 실행할 수 있습니다.

# dnf install vim wget curl

확인 과정 없이 설치하려면 다음과 같이 합니다.

# dnf install -y vim wget curl

여러 가지 기본 도구가 필요한 서버를 구성할 때 편리합니다.

패키지 삭제하기

설치된 패키지를 삭제하려면 remove를 사용합니다.

# dnf remove 패키지명

예를 들어 vim을 삭제하려면 다음과 같이 실행합니다.

# dnf remove vim

확인 과정 없이 삭제하려면 -y 옵션을 추가합니다.

# dnf remove -y vim

패키지를 삭제할 때는 해당 패키지와 의존 관계에 있는 다른 패키지가 함께 제거될 수 있으므로 실제로 삭제되는 패키지 목록을 확인하는 것이 좋습니다.

설치된 패키지 확인하기

현재 시스템에 설치된 패키지 목록을 확인하려면 다음 명령어를 사용합니다.

# dnf list installed

많은 패키지가 출력될 수 있으므로 특정 패키지가 설치되어 있는지 확인하려면 패키지 이름을 지정하는 것이 편리합니다.

예를 들어 httpd 패키지를 확인하려면 다음과 같이 실행합니다.

# dnf list installed httpd

RPM 명령어를 이용해서도 설치된 패키지를 확인할 수 있습니다.

# rpm -qa

특정 문자열이 포함된 패키지만 확인하고 싶다면 grep과 조합할 수도 있습니다.

# rpm -qa | grep httpd

패키지 정보 확인하기

특정 패키지에 대한 상세 정보를 확인하려면 dnf info를 사용합니다.

# dnf info 패키지명

예를 들어 nginx 패키지의 정보를 확인하려면 다음과 같이 실행합니다.

# dnf info nginx

패키지의 버전, 아키텍처, 저장소, 설명 등의 정보를 확인할 수 있습니다. 패키지를 설치하기 전에 어떤 버전이 제공되는지 확인할 때 유용합니다.

업데이트 가능한 패키지 확인하기

현재 설치된 패키지 중 업데이트할 수 있는 패키지가 있는지 확인하려면 다음 명령어를 실행합니다.

# dnf check-update

업데이트 가능한 패키지가 있다면 패키지 이름과 버전 등의 정보가 출력됩니다.

참고로 dnf check-update는 업데이트 가능한 패키지가 발견되었을 때 일반적인 성공 종료 코드인 0이 아니라 100을 반환할 수 있습니다. 따라서 셸 스크립트에서 이 명령어를 사용할 때는 종료 코드 처리에 주의해야 합니다.

특정 패키지 업데이트하기

특정 패키지만 업데이트하려면 다음과 같이 실행합니다.

# dnf upgrade 패키지명

예를 들어 nginx를 업데이트하려면 다음과 같이 합니다.

# dnf upgrade nginx

환경에 따라 다음과 같이 update를 사용한 명령도 볼 수 있습니다.

# dnf update nginx

일반적인 Rocky Linux 관리에서는 upgrade를 사용해도 됩니다.

시스템 전체 업데이트하기

Rocky Linux에 설치되어 있는 패키지를 전체적으로 업데이트하려면 다음 명령어를 실행합니다.

# dnf upgrade

확인 과정 없이 진행하려면 다음과 같이 합니다.

# dnf upgrade -y

시스템 업데이트에는 커널이나 주요 라이브러리가 포함될 수 있습니다. 업데이트 후 새로운 커널이 설치되었거나 중요한 시스템 구성 요소가 변경되었다면 필요에 따라 시스템을 재부팅합니다.

운영 중인 서버라면 무조건 재부팅하기보다는 서비스 영향과 업데이트 내용을 확인한 후 재부팅 일정을 잡는 것이 좋습니다.

사용 가능한 패키지 목록 확인하기

저장소에서 설치할 수 있는 패키지를 확인하려면 다음과 같이 실행합니다.

# dnf list available

설치된 패키지를 포함하여 패키지 목록을 확인하려면 다음 명령어를 사용할 수 있습니다.

# dnf list

패키지가 매우 많기 때문에 실제 서버 관리에서는 특정 패키지를 검색하거나 이름을 지정하는 방법이 더 편리합니다.

저장소 목록 확인하기

Rocky Linux에서 활성화되어 있는 저장소를 확인하려면 다음 명령어를 사용합니다.

# dnf repolist

활성화된 저장소가 표시됩니다.

비활성화된 저장소를 포함하여 전체 저장소를 확인하려면 다음과 같이 실행합니다.

# dnf repolist --all

패키지를 설치할 수 없거나 원하는 버전의 패키지가 검색되지 않을 때는 저장소가 정상적으로 활성화되어 있는지 확인해 보는 것이 좋습니다.

특정 저장소를 지정하여 사용하기

특정 작업에서 저장소 하나를 추가로 활성화하려면 --enablerepo 옵션을 사용할 수 있습니다.

# dnf --enablerepo=저장소ID install 패키지명

반대로 특정 저장소를 제외하려면 --disablerepo를 사용할 수 있습니다.

# dnf --disablerepo=저장소ID install 패키지명

저장소 문제를 분석하거나 특정 저장소의 패키지만 사용하고 싶을 때 활용할 수 있습니다.

불필요한 패키지 삭제하기

다른 패키지의 의존성 때문에 설치되었지만 현재는 더 이상 필요하지 않은 패키지를 삭제하려면 다음 명령어를 사용할 수 있습니다.

# dnf autoremove

실제로 삭제되는 패키지를 확인한 후 진행하는 것이 안전합니다.

확인 없이 삭제하려면 다음과 같이 할 수 있습니다.

# dnf autoremove -y

운영 서버에서는 중요한 패키지가 제거되지 않는지 목록을 확인한 후 실행하는 것을 권장합니다.

dnf 캐시 삭제하기

dnf는 패키지와 저장소 관련 데이터를 캐시에 저장합니다. 캐시를 정리하려면 다음 명령어를 실행합니다.

# dnf clean all

저장소 캐시를 다시 생성하려면 다음과 같이 실행할 수 있습니다.

# dnf makecache

패키지 검색이나 설치 과정에서 저장소 메타데이터와 관련된 문제가 발생할 때 다음과 같이 캐시를 삭제하고 다시 생성해 보는 것도 문제 해결 방법 중 하나입니다.

패키지 다시 설치하기

이미 설치된 패키지를 다시 설치해야 한다면 reinstall을 사용할 수 있습니다.

# dnf reinstall 패키지명

예를 들어 httpd를 다시 설치하려면 다음과 같이 실행합니다.

# dnf reinstall httpd

패키지에 포함된 파일이 손상되었거나 실수로 삭제된 경우 등에 사용할 수 있습니다.

dnf 명령어 사용 기록 확인하기

dnf를 이용해 수행했던 설치, 삭제, 업데이트 등의 작업 기록을 확인할 수 있습니다.

# dnf history

각 작업에는 ID가 표시됩니다. 특정 작업의 상세 내용을 확인하려면 다음과 같이 실행합니다.

# dnf history info ID

예를 들어 작업 ID가 10이라면 다음과 같습니다.

# dnf history info 10

어떤 패키지가 언제 설치되거나 업데이트되었는지 확인해야 할 때 유용합니다.

dnf 사용 시 주의할 점

dnf는 간단한 명령어로 시스템의 중요한 패키지를 설치하거나 삭제할 수 있기 때문에 운영 서버에서는 몇 가지 사항에 주의해야 합니다.

특히 다음과 같이 전체 시스템을 업데이트하는 명령어는 실행하기 전에 서비스 영향을 확인하는 것이 좋습니다.

# dnf upgrade

커널, OpenSSL, 데이터베이스 관련 라이브러리 등 중요한 패키지가 업데이트될 수 있기 때문입니다.

또한 다음 명령어를 실행할 때도 삭제되는 패키지 목록을 확인하는 것이 좋습니다.

# dnf remove 패키지명
# dnf autoremove

편의를 위해 -y 옵션을 사용할 수 있지만, 운영 서버에서는 무조건 -y를 추가하기보다 변경되는 패키지 목록을 먼저 확인하는 것이 안전합니다.