폐쇄망 GPU 드라이버 반입 설치 · 오프라인 저장소로 드라이버 설치 · 이론
반입분으로 저장소를 세우고 설치하기
한 줄 요약
반입한 .deb 묶음을 저장소로 만들면 dpkg 로 하나씩 순서를 맞춰 설치하는 대신 apt 에게 맡길 수 있다. 그것이 반입 방식의 표준이다.
왜 이게 필요했나
반입한 파일을 dpkg -i *.deb 로 한 번에 설치하면 순서 때문에 실패한다. 순서를 맞춰 하나씩 하면 되지만, 패키지가 30개면 그것도 일이다. 그리고 무엇보다 다음에 다시 할 때 그 순서를 기억해야 한다.
저장소로 만들면 이 문제가 사라진다. apt 가 그래프를 풀고 순서를 정한다. 그리고 그 저장소는 계속 재사용된다.
어떻게 동작하나
절차
# 1. 반입분을 한곳에 모은다mkdir -p /srv/airgap/pool && cp /media/usb/*.deb /srv/airgap/pool/# 2. 색인을 만든다cd /srv/airgap && dpkg-scanpackages pool /dev/null > pool/Packagesgzip -kf pool/Packages# 3. 저장소로 등록한다echo 'deb [trusted=yes] file:/srv/airgap/pool ./' > /etc/apt/sources.list.d/airgap.listapt-get update# 4. 먼저 시뮬레이션apt-get install -s nvidia-driver-550# 5. 실제 설치apt-get install -y nvidia-driver-5504번을 건너뛰지 마라. -s(simulate)는 실제로 아무것도 바꾸지 않고 계획만 출력한다. 여기서 Inst 로 시작하는 줄이 설치될 패키지이고, 의존성이 안 풀리면 The following packages have unmet dependencies 가 나온다. 이 출력이 곧 반입이 성공했는지에 대한 답이다.
안 풀렸을 때 읽는 법
The following packages have unmet dependencies: libnvidia-container-tools : Depends: libnvidia-container1 (>= 1.16.2-1) but it is not installable읽는 법: 왼쪽이 요구하는 쪽, 오른쪽이 없는 것. not installable 은 저장소에 그 이름이 아예 없다는 뜻이고, but 1.0 is to be installed 는 있긴 한데 버전이 안 맞는다는 뜻이다. 이 구분이 2차 반입 목록을 만드는 근거가 된다.
저장소 정보를 명확히
deb [trusted=yes] file:/srv/airgap/pool ./[trusted=yes] 는 서명 없는 저장소를 신뢰한다는 선언이다. 실습이나 임시 저장소가 아니라면 반드시 서명해야 한다. 운영 환경에서는 자체 GPG 키로 Release 파일에 서명하고 [signed-by=/usr/share/keyrings/...] 로 키를 지정한다.
그리고 저장소 이름이나 경로에 스냅샷 날짜를 넣어 두면 6개월 뒤 조사할 때 큰 도움이 된다.
설치 후 확인
dpkg -l 'nvidia*' 'libnvidia*' | grep '^ii' | wc -ldpkg -l | grep -c '^i[^i]' # ii 가 아닌 것 (문제 있는 상태)apt-get -f install # 미해결이 있으면 정리ii 가 아닌 상태(iU, iF 등)가 하나라도 있으면 설치가 완전히 끝나지 않은 것이다.
현장에서 만나는 모습
2차 반입이 필연이라고 생각하고 절차를 짠다. 아무리 잘 계산해도 첫 반입에서 빠지는 것이 나온다. 그래서 성숙한 조직은 "1차 반입 후 시뮬레이션 → 부족분 목록 자동 생성 → 2차 반입" 을 절차로 못박아 둔다. 부족분 목록을 사람이 손으로 만들면 또 빠진다.
설치 로그를 남긴다. apt-get install 의 출력과 /var/log/apt/history.log 를 반입 기록과 함께 보관한다. 나중에 롤백할 때 어떤 트랜잭션을 되돌려야 하는지 알 수 있다.
다음 실습에서 할 것
1차 반입분으로 저장소를 세워 드라이버 설치를 성공시키고, 툴킷 설치는 실패하는 것을 확인한 뒤, 부족분(2차 반입분)을 추가해 다시 성공시킨다. 실제 폐쇄망 절차 그대로다.