【CUDA】Linuxで発生するパッケージ依存性エラーの解決法

問題の原因と概要

Ubuntu 18.04/20.04/22.04やCentOSなどのLinuxディストリビューションでCUDA Toolkitをインストールする際、「The following packages have unmet dependencies」や「cuda-drivers : Depends: cuda-drivers-XXX but it is not installed」というエラーが発生する場合がありませんか?

これは、NVIDIA driverとCUDA Toolkit間のバージョンマッチングの問題、または APT パッケージマネージャーとNVIDIAリポジトリの競合によって引き起こされます。特に、複数のNVIDIA関連パッケージが混在している環境で発生しやすく、nvidia-driver-535cuda-drivers-550のようにDriverとCUDAのバージョンが不一致を起こす場合が一般的です。

解決策

問題の根本原因は、NVIDIA driverとCUDA Toolkitのパッケージバージョンが一致していないことです。すべてのNVIDIA関連パッケージを最新バージョンに統一するか、あるいは古いパッケージを完全に削除してから再インストールすることで解決できます。

具体的な手順

手順1: 現在のNVIDIA関連パッケージを確認する

まず、現在のシステムにインストールされているNVIDIA関連のパッケージをすべて確認します。

dpkg -l | grep -i nvidia

または

apt list --installed | grep -i nvidia

これで現在インストールされているNVIDIA driverおよびCUDA関連のパッケージ一覧が表示されます。

手順2: すべてのNVIDIA関連パッケージを完全に削除

次に、既存のNVIDIA driver、CUDA Toolkit、および関連するすべてのファイルを完全に削除します。

sudo apt autoremove nvidia* --purge
sudo apt purge nvidia* libnvidia*
cuda*

注意: このコマンドにより、現在のNVIDIA driverがアンインストールされます。デスクトップ環境を使用している場合は、実行前に画面キャプチャや設定メモを残しておくことをお勧めします。

手順3: CUDA ToolkitとCompatibleなDriverをインストール

NVIDIAリポジトリを追加し、最新版(または希望するバージョン)のdriverとCUDA Toolkitを同時にインストールします。

# NVIDIAリポジトリの追加(Ubuntuの場合)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update

# driverとCUDA Toolkitを同時にインストール(推奨)
sudo apt install nvidia-driver-550-server cuda-toolkit-12-4

※バージョン(550, 535, 525など)は使用するGPUとCUDAの要件に合わせて選択してください。

手順4: システム再起動

インストールが完了したらシステムを再起動し、新しいdriverを有効化します。

sudo reboot

手順5: インストール確認

再起動後、driverとCUDAが正しくインストールされていることを確認します。

# NVIDIA driverの確認
nvidia-smi

# CUDA Toolkitの確認
nvcc --version

nvidia-smiでGPU情報が表示され、nvcc --versionでCUDAバージョンが表示されれば成功です。

手順6: 環境変数の設定(必要な場合)

CUDAコマンドをPATHに追加するには、~/.bashrc または ~/.profile に以下を追加します。

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

補足・注意点

  • バージョン互換性: CUDA Toolkitの各バージョンには対応する最小driverバージョンがあります。CUDA 12.xを使用する場合は、driver 525以上が必要です。古いGPUを使用している場合は、compatibleなバージョンを組み合わせる必要があります。
  • Runファイル vs APT: NVIDIA公式の.runファイルでインストールすると、APTパッケージマネージャーとの競合が発生しやすいです。可能であれば、APT/apt-getでのインストールを推奨します。
  • クリーンインストール: 問題が解決しない場合は、完全にシステムクリーンアップ后再インストールが最も確実な方法です。
  • Server vs Desktop: Ubuntu Server使用的是nvidia-driver-XXX-serverパッケージ、PC使用的是nvidia-driver-XXXパッケージがあります。環境に合わせて選択してください。
  • Holdされているパッケージ: 稀にAPT holdされているパッケージがあり、更新がブロックされる場合があります。その場合はsudo apt-mark unhold [パッケージ名]で解除してください。

参考元

おすすめ環境

🔧 快適な開発環境のために

本記事の手順をスムーズに進めるために、以下のスペックを推奨します。

この記事は役に立ちましたか?