はじめに
Jetson Orin Nano の OS を Ubuntu PCからJetpack を使用して書き込みをしていましたが,途中で以下のエラーが出ました.
Apt repository check failure
(1. sudo -S apt-get update && sudo -S apt-get check; 2.
dpkg --audit).command < sudo timeout 300 apt-get update
&& sudo timeout 300 apt-get check > terminated with error,
exitCode: 100.
この記事では,このエラーを解決していきます.
原因
主な原因は「Apt repository check failure」.
つまり,ローカルリポジトリの問題みたいです.
ちなみに,ローカルリポジトリを確認してみます.
ターミナルに以下を入力します.
$grep -r 'cudnn-local-repo' /etc/apt/
実行結果が以下になります.
/etc/apt/sources.list.d/cudnn-local-ubuntu2004-8.5.0.96.list.save:deb [signed-by=/usr/share/keyrings/cudnn-local-0579404E-keyring.gpg] file:///var/cudnn-local-repo-ubuntu2004-8.5.0.96 /
/etc/apt/sources.list.d/cudnn-local-ubuntu2004-8.9.7.29.list:deb [signed-by=/usr/share/keyrings/cudnn-local-CD2C2DD4-keyring.gpg] file:///var/cudnn-local-repo-ubuntu2004-8.9.7.29 /
/etc/apt/sources.list.d/cudnn-local-ubuntu2004-8.5.0.96.list:deb [signed-by=/usr/share/keyrings/cudnn-local-0579404E-keyring.gpg] file:///var/cudnn-local-repo-ubuntu2004-8.5.0.96 /
/etc/apt/sources.list.d/cudnn-local-ubuntu2004-8.9.3.28.list.save:deb [signed-by=/usr/share/keyrings/cudnn-local-53F4A4C8-keyring.gpg] file:///var/cudnn-local-repo-ubuntu2004-8.9.3.28 /
/etc/apt/sources.list.d/cudnn-local-ubuntu2004-8.9.3.28.list:deb [signed-by=/usr/share/keyrings/cudnn-local-53F4A4C8-keyring.gpg] file:///var/cudnn-local-repo-ubuntu2004-8.9.3.28 /
確認すると,cuDNNN のリポジトリが多数存在しています.
ローカルリポジトリとは
ローカルリポジトリとは,自身の PC 内にある,APT パッケージの倉庫になります.
通増の APT リポジトリはネットワークにあるのに対して,ローカルリポジトリはファイルシステムに存在します.
解決策
以下をターミナルで実行します.
$ sudo sed -i 's|^deb|#deb|' /etc/apt/sources.list.d/cudnn-local-ubuntu2004-*.list
その後,以下を実行します.
$ sudo apt update
$ sudo apt upgrade
再度,OS の入れ直しを行うと無事エラーが解消されました.
原因の考察
過去に Ubuntu PC に CuDNN を複数回インストールしたため、ローカルリポジトリが複数存在しているのがエラーの原因でした.
.deb ファイルを実行すると,必ず新しい cuDNN が作成されてしまうらしい.
nvidia 系のリポジトリは依存性が高いため,ダウンロードされるたびに新しいファルダが作成され,数のフォルダが共存してしまうらしいです.
参考