GPU 작업용 서버에 Rocky Linux 9.7을 설치하고 NVIDIA RTX 4000 Ada 드라이버를 올리는 작업을 했습니다. 요구사항은 “반드시 9.7″이었는데, 설치 후 업데이트를 한 번 돌렸더니 9.8로 올라가 버렸습니다. 다운그레이드는 의존성 오류로 막혀 결국 재설치하고 저장소를 9.7에 고정했습니다. 드라이버 설치 중 화면이 멈춘 것처럼 보인 일까지 함께 정리합니다.

결론
- Rocky 기본 저장소(mirrorlist)는 항상 최신 마이너 버전을 줍니다. 9.7 ISO로 설치해도
dnf update한 번이면 9.8이 됩니다. - 9.8에서 9.7로 내리는
dnf distro-sync는 의존성 오류로 실패했고, 마이너 버전 다운그레이드는 공식 지원도 아니라 재설치했습니다. - 재설치 직후 업데이트 전에 저장소를
dl.rockylinux.org/vault/rocky/9.7로 고정하면 9.7이 유지됩니다. nvidia-open설치가 15/24 단계에서 멈춘 것처럼 보이는 건 DKMS가 커널 모듈을 컴파일하는 중입니다. 끊지 말고 기다리면 끝납니다.
환경
| 항목 | 내용 |
|---|---|
| OS | Rocky Linux 9.7 (9.8로 올라간 뒤 재설치) |
| GPU | NVIDIA RTX 4000 Ada Generation 20GB |
| 드라이버 | nvidia-open 615.71.09 (NVIDIA CUDA rhel9 저장소) |
| 디스크 | NVMe 2개 (OS용 1개, 데이터용 1개 · LVM + XFS, /data) |
| 작업 시점 | 2026년 10월 |
증상 1. 9.7로 설치했는데 9.8이 됨
Rocky Linux 9.7 ISO로 설치하고 첫 작업으로 dnf update를 실행했습니다. 오류 없이 정상으로 끝났는데, 끝나고 보니 버전이 9.8이었습니다.
[직접 확인] 업데이트 자체는 오류 없이 끝났고, 끝난 뒤 버전이 9.8로 바뀌어 있었습니다. 경고나 확인 질문도 없었습니다.
원인. 기본 저장소는 최신 마이너 버전을 제공
- Rocky 저장소 설정(
/etc/yum.repos.d/rocky*.repo)은 기본으로mirrorlist를 쓰고, 이 주소는 지금 가장 최신인 9.x를 가리킵니다. - Rocky Linux 9.8 출시 공지에도 기존 9.x에서
dnf -y upgrade로 9.8로 올릴 수 있다고 안내되어 있습니다. 즉 정상 동작입니다. - 9.8이 나오면 이전 9.7 패키지는 vault(
dl.rockylinux.org/vault/rocky/9.7/)로 옮겨집니다.
다운그레이드 시도: dnf distro-sync 실패
저장소를 9.7로 바꾼 뒤 설치된 패키지를 저장소 버전에 맞추는 distro-sync를 시도했습니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
dnf distro-sync -y
마지막 메타자료 만료확인(0:00:08 이전): 2026년 10월 14일 (수) 오후 02시 06분 39초. 오류: 문제 1: package adcli-selinux-0.9.3.1-3.el9.noarch from @System requires selinux-policy >= 38.1.70-1.el9, but none of the providers can be installed - selinux-policy-38.1.75-2.el9_8.1.noarch from @System does not belong to a distupgrade repository - 설치된 패키지 문제 adcli-selinux-0.9.3.1-3.el9.noarch 문제 2: package mesa-compat-libxatracker-25.0.7-2.el9.0.1.x86_64 from @System requires libLLVM.so.21.1()(64bit), but none of the providers can be installed - llvm-libs-21.1.8-2.el9.x86_64 from @System does not belong to a distupgrade repository - 설치된 패키지 문제 mesa-compat-libxatracker-25.0.7-2.el9.0.1.x86_64 문제 3: installed package p11-kit-client-0.26.4-1.el9_8.x86_64 obsoletes p11-kit-server < 0.25.5-8 provided by p11-kit-server-0.25.3-3.el9_5.x86_64 from appstream - 설치된 패키지 문제 p11-kit-client-0.26.4-1.el9_8.x86_64 (설치 할 수 없는 꾸러미를 건너 뛰려면 '--skip-broken'을 (를) 추가하십시오 또는 '--nobest'는 최적 후보의 꾸러미만 사용합니다)
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- 9.8에서 들어온 패키지가 9.7 저장소에는 없는 버전에 묶여 있어서 맞출 수 없다는 뜻입니다.
- 문제 1:
adcli-selinux가 9.8의selinux-policy를 요구 - 문제 2:
mesa-compat-libxatracker가 9.8의 LLVM 21.1을 요구 - 문제 3: 9.8의
p11-kit-client가 9.7의p11-kit-server를 대체(obsoletes)
[직접 확인]
--allowerasing으로 강제로 맞추는 방법도 있지만, 패키지가 지워지면서 시스템이 어떻게 될지 장담할 수 없고 마이너 버전 다운그레이드는 공식 지원도 아니라서 시도하지 않고 9.7로 재설치했습니다.해결 1. 재설치 후 저장소를 vault 9.7로 고정
재설치한 뒤에는 업데이트를 돌리기 전에 모든 Rocky 저장소를 vault 9.7로 바꿉니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
sed -i -e 's|^mirrorlist=|#mirrorlist=|' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir/$releasever|baseurl=https://dl.rockylinux.org/vault/rocky/9.7|' /etc/yum.repos.d/rocky*.repo
ssh://root@rocky-gpu:22SSH2xtermUTF-8
mirrorlist=줄을 주석 처리해 최신 버전으로 가는 길을 막습니다.- 주석으로 들어 있던
baseurl을 켜고 주소를 vault 9.7로 바꿉니다. - BaseOS, AppStream, CRB, extras, devel, addons 저장소가 모두 한 번에 바뀝니다.
고정에 썼던 명령의 실행 화면은 남기지 못해서, 같은 결과가 나오는 명령으로 적었습니다. 결과는 아래처럼 확인했습니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
grep -E "^(baseurl|mirrorlist)" /etc/yum.repos.d/rocky*.repo
/etc/yum.repos.d/rocky.repo:baseurl=https://dl.rockylinux.org/vault/rocky/9.7/BaseOS/$basearch/os/ /etc/yum.repos.d/rocky.repo:baseurl=https://dl.rockylinux.org/vault/rocky/9.7/AppStream/$basearch/os/ /etc/yum.repos.d/rocky.repo:baseurl=https://dl.rockylinux.org/vault/rocky/9.7/CRB/$basearch/os/ /etc/yum.repos.d/rocky-extras.repo:baseurl=https://dl.rockylinux.org/vault/rocky/9.7/extras/$basearch/os/ /etc/yum.repos.d/rocky-devel.repo:baseurl=https://dl.rockylinux.org/vault/rocky/9.7/devel/$basearch/os/ /etc/yum.repos.d/rocky-addons.repo:baseurl=https://dl.rockylinux.org/vault/rocky/9.7/HighAvailability/$basearch/os/ ... (debug·source 저장소와 나머지 addons도 모두 vault/rocky/9.7, mirrorlist 줄은 없음)
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- 모든
baseurl이vault/rocky/9.7을 가리키면 고정된 것입니다. mirrorlist=로 시작하는 줄이 하나라도 남아 있으면 그 저장소는 여전히 최신 버전을 받아옵니다.
[직접 확인] 재설치 후 모든 Rocky 저장소가 vault 9.7을 가리키고
mirrorlist 줄이 남지 않은 것을 확인한 뒤 업데이트와 드라이버 설치를 진행했습니다.ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
dnf clean all && dnf makecache && dnf update -y
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- 예전 저장소 캐시를 지우고, 고정한 vault 9.7 기준으로 다시 받아 업데이트합니다.
- 캐시를 지우지 않으면 이전 메타데이터가 남아 헷갈릴 수 있습니다.
해결 2. NVIDIA 드라이버 설치 (nvidia-open)
[참고 · 직접 확인하지 않음] 드라이버 설치 전 준비(EPEL, 커널 헤더, CUDA 저장소 추가) 명령은 실행 화면을 남기지 못해 NVIDIA·Rocky 문서 기준으로 적었습니다. 설치 로그의 GPG 키 출처로 NVIDIA CUDA rhel9 저장소를 쓴 것은 확인했습니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
dnf install -y epel-release && dnf install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- DKMS가 들어 있는 EPEL 저장소와, 지금 실행 중인 커널과 같은 버전의 헤더를 설치합니다.
- 커널 헤더 버전이 다르면 DKMS 모듈 빌드가 실패합니다. 저장소를 9.7에 고정했기 때문에 커널과 헤더 버전이 어긋나지 않습니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- NVIDIA 공식 CUDA 저장소(rhel9)를 추가합니다. Rocky 9는 RHEL 9 저장소를 그대로 씁니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
dnf install -y nvidia-open
GPG키 0xD42D0685 가져오는 중: 사용자 ID : "cudatools <cudatools@nvidia.com>" 출처 : https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/D42D0685.pub 키 가져오기에 성공했습니다 ... 설치 중 : nvidia-driver-common-3:615.71.09-1.el9.x86_64 1/24 Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-powerd.service → /usr/lib/systemd/system/nvidia-powerd.service. ... 설치 중 : nvidia-persistenced-3:615.71.09-1.el9.x86_64 6/24 Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-persistenced.service → /usr/lib/systemd/system/nvidia-persistenced.service. ... 설치 중 : nvidia-kmod-common-3:615.71.09-1.el9.noarch 14/24 설치 중 : kmod-nvidia-open-dkms-3:615.71.09-1.el9.noarch 15/24 구현 중 : kmod-nvidia-open-dkms-3:615.71.09-1.el9.noarch 15/24
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- RTX 4000 Ada(Ada Lovelace) 같은 최신 GPU용 오픈 커널 모듈 드라이버를 설치합니다.
- 처음 설치할 때 NVIDIA 저장소의 GPG 키를 가져오고,
nvidia-powerd·nvidia-persistenced서비스가 자동으로 켜집니다(Created symlink줄). - 15/24
kmod-nvidia-open-dkms에서 한참 멈춰 있습니다. DKMS가 현재 커널용 NVIDIA 모듈을 컴파일하는 단계라 화면에 아무것도 나오지 않습니다.
[직접 확인] 15/24에서 출력 없이 멈춰 있어 설치가 걸린 줄 알았는데, 끊지 않고 기다리니 끝까지 정상으로 완료됐습니다. 이때 Ctrl+C로 끊으면 모듈이 반쯤 설치된 상태로 남을 수 있습니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
reboot
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- 새 커널 모듈을 올리기 위해 재부팅합니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
nvidia-smi
ssh://root@rocky-gpu:22SSH2xtermUTF-8
- 드라이버가 GPU를 인식하는지 확인합니다.
- 표에
NVIDIA RTX 4000 Ada Generation, 드라이버 버전, 메모리(약 20GB)가 나오면 정상입니다. NVIDIA-SMI has failed가 나오면dkms status로 모듈 빌드가 끝났는지 먼저 확인합니다.
참고. OS를 재설치해도 데이터 디스크는 그대로
OS는 NVMe 한 개에만 다시 설치하고, 데이터용 NVMe(LVM vg_data/lv_data, XFS)는 건드리지 않았습니다. 재설치 후 fstab에 UUID로 한 줄만 다시 등록하면 됩니다.
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
grep data /etc/fstab
UUID=2fa55924-5d14-45b7-8e8f-25bc3e8cfde0 /data xfs defaults 0 0
ssh://root@rocky-gpu:22SSH2xtermUTF-8
ssh://root@rocky-gpu:22
1 rocky-gpu
[root@localhost ~]#
findmnt /data
TARGET SOURCE FSTYPE OPTIONS /data /dev/mapper/vg_data-lv_data xfs rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=64k,sunit=128,swidth=1024,noquota
ssh://root@rocky-gpu:22SSH2xtermUTF-8
[직접 확인] fstab UUID가 재설치 전에 만든 파일시스템 UUID와 같았고, 재부팅하니 포맷 없이 /data로 자동 마운트됐습니다.
주의사항
- vault 9.7은 더 이상 업데이트가 나오지 않는 저장소입니다. 고정하면 이후 보안 패치도 받지 못하니, 9.7이 꼭 필요한 기간에만 쓰고 가능해지면 최신 버전으로 올리세요.
- 새로 설치할 때는 첫
dnf update전에 저장소부터 고정해야 합니다. 한 번 올라가면 되돌리기 어렵습니다. - NVIDIA CUDA 저장소는 vault 고정과 상관없이 최신 드라이버를 줍니다. 드라이버 버전도 고정해야 하면 설치 버전을 지정하거나 버전 잠금을 따로 해야 합니다.
- BIOS에서 Secure Boot가 켜져 있으면 DKMS 모듈 서명 문제로 드라이버가 올라오지 않을 수 있습니다.
정리
- Rocky 기본 저장소는 최신 마이너 버전을 주므로, 9.7 ISO로 설치해도 업데이트하면 9.8이 된다.
- 9.8 → 9.7
distro-sync는 의존성 오류로 막힌다. 재설치가 안전하다. - 재설치 직후 업데이트 전에 저장소를 vault 9.7로 고정하고
grep으로 확인한다. nvidia-open설치 15/24 멈춤은 DKMS 컴파일 중이니 기다린다. 재부팅 후nvidia-smi로 확인한다.
같은 상황에서 다른 의존성 오류가 났다면 댓글로 오류 문구를 남겨 주세요. 확인해 보고 답변드리겠습니다.