オフラインリポジトリで導入する
한국어 원문으로 표시합니다.
목표
반입한 .deb 묶음으로 저장소를 세워 드라이버를 설치하고, 1차 반입만으로는 툴킷이 설치되지 않는 것을 확인한 뒤, 2차 반입분을 추가해 완성합니다. 실제 폐쇄망 절차 그대로입니다.
왜 중요한가
반입한 파일을 dpkg -i 로 하나씩 설치하면 순서를 사람이 맞춰야 하고, 다음에 또 그 순서를 기억해야 합니다. 저장소로 만들면 apt 가 그래프를 풀어 주고 그 저장소는 계속 재사용됩니다. 그리고 설치 시뮬레이션(-s) 이 반입 성공 여부에 대한 최종 답입니다 — 여기서 unmet dependencies 가 나오면 그 목록이 곧 2차 반입 목록입니다.
앞 실습(gpu-deps)에서 만든 /root/gpu/pool 을 이어서 씁니다.
단계
/root/gpu/pool에Release파일을 추가하세요.Origin,Label,Suite,Codename,Architectures,Components여섯 키가 각각 한 줄씩 있어야 하고,Architectures에amd64가 포함돼야 합니다./etc/apt/sources.list.d/gpu-airgap.list로 이 저장소를 등록하고 색인을 갱신하세요. 그리고apt-cache policy nvidia-driver-550출력을/root/gpu/policy.txt로 저장하세요.nvidia-driver-550설치를 시뮬레이션해 출력을/root/gpu/sim-driver.txt로 저장하세요.Inst로 시작하는 줄이 11개여야 합니다.nvidia-container-toolkit설치를 시뮬레이션해 실패하는 것을 확인하고, 출력(표준 에러 포함)을/root/gpu/sim-toolkit-fail.txt로 저장하세요. 파일에libnvidia-container1이 언급돼야 합니다./opt/fixtures/gpu-airgap/src2/의 패키지를 빌드해/root/gpu/pool/에 추가하고, 색인을 다시 만들고, 색인을 갱신하세요.Package:항목이 15개가 돼야 합니다.nvidia-driver-550과nvidia-container-toolkit을 실제로 설치하세요.dpkg -l로nvidia또는libnvidia로 시작하는 패키지의 상태를 확인해/root/gpu/installed.txt로 저장하세요. 모든 줄이ii상태여야 합니다./root/gpu/install-report.txt를 다음 4줄로 만드세요.DRIVER_VERSION=<nvidia-driver-550 의 설치된 버전>/TOOLKIT_VERSION=<nvidia-container-toolkit 의 설치된 버전>/INSTALLED=<이름이 nvidia 또는 libnvidia 로 시작하는 설치된 패키지 수>/SECOND_INTAKE=libnvidia-container1
참고
- 시뮬레이션은
apt-get install -s <패키지>입니다. 실패 출력은 표준 에러로 나오니2>&1로 함께 받으세요. - 설치된 버전은
dpkg-query -W -f='${Version}' <패키지>로 뽑습니다. epoch 가 포함될 수 있습니다. - 색인 재생성 후에는 반드시
apt-get update를 다시 해야 합니다. Release에는Packages의 크기와 해시가 적혀 있습니다. 그래서 5번에서Packages를 다시 만들었다면Release도 다시 만들어야 합니다. 안 그러면 해시가 어긋나 apt 가 새 색인을 조용히 무시하고Candidate: (none)이 됩니다 — 에러가 나지 않아 원인을 찾기 어렵습니다.- 흔한 실수 1: 5번에서 색인만 다시 만들고
apt-get update를 빼먹어 계속 실패하는 경우. - 흔한 실수 2: 8번에서 버전을 적을 때 epoch(
1:)를 임의로 떼는 경우. 조회 결과 그대로 적으세요.
반입분으로 저장소 구성
/root/gpu/pool 에 Release 파일을 추가하세요. Origin, Label, Suite, Codename, Architectures, Components 여섯 키가 각각 한 줄씩 있어야 하고, Architectures 에 amd64 가 포함돼야 합니다.
앞 실습에서 만든 pool 을 그대로 씁니다. Release 파일도 함께 만드세요.
저장소 등록과 갱신
/etc/apt/sources.list.d/gpu-airgap.list 로 이 저장소를 등록하고 색인을 갱신하세요. 그리고 apt-cache policy nvidia-driver-550 출력을 /root/gpu/policy.txt 로 저장하세요.
flat 저장소 형식입니다. 등록 후 색인을 갱신해야 패키지가 보입니다.
드라이버 설치 시뮬레이션
nvidia-driver-550 설치를 시뮬레이션해 출력을 /root/gpu/sim-driver.txt 로 저장하세요. Inst 로 시작하는 줄이 11개여야 합니다.
-s 옵션은 아무것도 바꾸지 않고 계획만 출력합니다. Inst 로 시작하는 줄을 세어 보세요.
툴킷 설치가 막히는 것 확인
nvidia-container-toolkit 설치를 시뮬레이션해 실패하는 것을 확인하고, 출력(표준 에러 포함)을 /root/gpu/sim-toolkit-fail.txt 로 저장하세요. 파일에 libnvidia-container1 이 언급돼야 합니다.
같은 시뮬레이션을 툴킷으로 돌리면 실패합니다. 오류 출력을 그대로 저장하세요.
2차 반입분 추가
/opt/fixtures/gpu-airgap/src2/ 의 패키지를 빌드해 /root/gpu/pool/ 에 추가하고, 색인을 다시 만들고, 색인을 갱신하세요. Package: 항목이 15개가 돼야 합니다.
src2 디렉터리에 부족분이 있습니다. 빌드해서 pool 에 넣고 색인을 다시 만드세요.
실제 설치
nvidia-driver-550 과 nvidia-container-toolkit 을 실제로 설치하세요.
드라이버와 툴킷을 한 번에 설치할 수 있습니다. 설치 후 상태를 확인하세요.
설치 상태 검증
dpkg -l 로 nvidia 또는 libnvidia 로 시작하는 패키지의 상태를 확인해 /root/gpu/installed.txt 로 저장하세요. 모든 줄이 ii 상태여야 합니다.
dpkg -l 의 상태 표시가 전부 ii 여야 합니다. 그렇지 않은 것이 있으면 설치가 안 끝난 것입니다.
설치 보고서
/root/gpu/install-report.txt 를 다음 4줄로 만드세요.
DRIVER_VERSION=<nvidia-driver-550 의 설치된 버전> / TOOLKIT_VERSION=<nvidia-container-toolkit 의 설치된 버전> / INSTALLED=<이름이 nvidia 또는 libnvidia 로 시작하는 설치된 패키지 수> / SECOND_INTAKE=libnvidia-container1
설치된 패키지 수와 버전을 모으세요. 값은 실제 조회 결과여야 합니다.