도커 환경 구성중에 많이 발생하는 경우같은데, 사실 내 경우는 그냥 ubuntu os에 깔리지 않는 경우로 조금 다르다. 완전 똑같은 오류인 경우는 다음과 같다.
그리고 해결책은 다음과 같다.
해결과정의 큰 구성은 Remove and update, Add and install, Tune environment and reboot, Check your settings로 이뤄진다. 이후에 driver 설치, cuda설치를 진행한다.
Remove and update
sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit
sudo apt remove --autoremove nvidia-*
sudo apt update
sudo apt update를 할 때에 나는 다음과 같은 메시지가 떴다.
Hit:9 http://deb.playonlinux.com cosmic InRelease
Hit:10 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:11 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu focal InRelease
Err:5 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC
Hit:12 https://download.docker.com/linux/ubuntu focal InRelease
Hit:13 https://dl.winehq.org/wine-builds/ubuntu focal InRelease
....
W: GPG error: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC
E: The repository 'http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease' is no longer signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
....
위쪽 경고와 아래 에러문 중에 어느 것이 우선 해결해야 하는 것인지 판단이 서지 않는다. 내가 공개키를 제공하지 않은 것인가, 그쪽의 repo에서 공개키를 나에게 주지 않은 것인가, 아니면 그전에 해당 rep가 signed 되지 않은 것이 근본적인 원인인가..
검색어 : The repository 'http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease' is no longer signed.
해결책: https://developer.nvidia.com/blog/updating-the-cuda-linux-gpg-repository-key/
nvidia가 제공하는 해결방법(key 재설치)
(2022년 7월 기준)
sudo apt-key del 7fa2af80
직접 키를 등록하는 수고를 덜기위해, nvidia는 새로운 signing key 등록과정을 자동화하는 패키지를 제공한다 (sudo나 usermod를 통해서 권한을 높여서 명령어를 입력해야 한다).
wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.0-1_all.deb
$distro/$arch 의 예시는 다음과 같다.
- debian10/x86_64
- debian11/x86_64
- ubuntu1604/x86_64
- ubuntu1804/cross-linux-sbsa
- ubuntu1804/ppc64el
- ubuntu1804/sbsa
- ubuntu1804/x86_64
- ubuntu2004/cross-linux-sbsa
- ubuntu2004/sbsa
- ubuntu2004/x86_64
- ubuntu2204/sbsa
- ubuntu2204/x86_64
- wsl-ubuntu/x86_64
sudo dpkg -i cuda-keyring_1.0-1_all.deb
그 외에 RPM distros(fedora 계열, RHEL..), docker와 쿠버네티스 환경에서의 gpu operator 관련된 도움말도 있다.
이 과정을 거치고 나면, 나는
N: Ignoring file 'cuda-keyring_1.0-1_all.deb' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension 와 같은 문구가 나타났다.
말 그대로 잘못된 파일 형식이 적용되어있다. 리눅스 mirror 관리 디렉토리인 list.d에 들어가기 위해서는 특정 규칙이 있다.
이 실수는 내가 터미널 주소를 /etc/pat/sources.list.d 로 둔 상태에서 wget... 를 진행해버린 탓이다(보통은 Downloads나 src라는 폴더를 따로 만들어서 넣어준다). wget 명령어는 전혀 permission denied 같은 높은 권한을 필요로 하는 동작이 아니다.
이렇게 첫번째 Remove and update가 안전하게 완료된다.
그 뒤로 사이트의 가이드 답변과 다르게 아래 링크를 따라서 autoinstall 을 해주었다.
Add and install
'건축 컴퓨터 비전 > 리눅스 troubleshoot' 카테고리의 다른 글
nvidia driver, cuda, torch 버전 확인 (0) | 2022.03.01 |
---|