GTX 1060でUbuntu 24.04にCUDA 12.4を入れる実録
パッケージリストを読み込んでいます… 完了 依存関係ツリーを作成しています… 完了 状態情報を読み取っています… 完了 インストールすることができないパッケージがありました。おそらく、あり得 ない状況を要求したか、(不安定版ディストリビューションを使用しているの であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移 動されていないことが考えられます。 以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります: nvidia-driver-550 : 依存: libnvidia-compute-550 (= 550.163.01-0ubuntu0.24.04.1) しかし、550.163.01-0ubuntu1 はインストールされようとしています 依存: libnvidia-decode-550 (= 550.163.01-0ubuntu0.24.04.1) しかし、インストールされようとしていません 依存: libnvidia-encode-550 (= 550.163.01-0ubuntu0.24.04.1) しかし、インストールされようとしていません 推奨: nvidia-settings しかし、インストールされようとしていません 推奨: nvidia-prime (>= 0.8) しかし、インストールされようとしていません 推奨: libnvidia-compute-550:i386 (= 550.163.01-0ubuntu0.24.04.1) しかし、インストールすることができません 推奨: libnvidia-decode-550:i386 (= 550.163.01-0ubuntu0.24.04.1) しかし、インストールすることができません 推奨: libnvidia-encode-550:i386 (= 550.163.01-0ubuntu0.24.04.1) しかし、インストールすることができません 推奨: libnvidia-fbc1-550:i386 (= 550.163.01-0ubuntu0.24.04.1) しかし、インストールすることができません 推奨: libnvidia-gl-550:i386 (= 550.163.01-0ubuntu0.24.04.1) しかし、インストールすることができません E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
このエラーの原因- 一部の libnvidia-* パッケージが 素のnoble版 (…0ubuntu1) でインストールされており、
- 他は noble-updates版 (…0ubuntu0.24.04.1) が候補になっているため、バージョンが食い違って依存解決できない。
- すべて同じビルド番号 550.163.01-0ubuntu0.24.04.1 を明示。
- 他の依存パッケージ(例: libnvidia-gl-550 )が要求されたら同じバージョンを追加指定。
CUDA Version: 12.4 と表示されればOK。
3. CUDA Toolkit 12.4 のインストール(22.04用を流用) 3-1. CUDAレポジトリ登録 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.debsudo dpkg -i cuda-keyring_1.1-1_all.debsudo apt update1) Toolkit 本体だけインストール(Nsight抜き)
cuda-toolkit-12-4 は便利メタですが、Nsight類まで引っ張るので24.04だと詰みます。必要なコンパイラ&ライブラリだけを個別に入れればOKです( nvcc も入ります)。
# まずレポジトリ登録(やってなければ)wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.debsudo dpkg -i cuda-keyring_1.1-1_all.debsudo apt update# Toolkitの主要部のみ(Nsightを含まない分割パッケージ)sudo apt install --no-install-recommends \ cuda-compiler-12-4 \ cuda-nvcc-12-4 \ cuda-cudart-12-4 \ cuda-driver-dev-12-4 \ cuda-libraries-12-4 \ cuda-libraries-dev-12-4 \ cuda-cupti-12-4 echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrcecho 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrcsource ~/.bashrc nvcc --versionこれで release 12.4 が出ればOK。サンプルは不要なら入れずでOK(必要ならGitHubから個別取得で十分)。
サンプルはGitHubから取得してビルド
# 12.4 タグのサンプルを取得(CMake対応)git clone --branch v12.4 https://github.com/NVIDIA/cuda-samples.gitcd cuda-samples/Samples/1_Utilities/deviceQuery# 依存ツール(未導入なら)sudo apt install -y build-essential cmake# CMakeでビルドcmake -S . -B buildcmake --build build -j# 実行./build/bin/linux/release/deviceQueryResult = PASS が出ればOK。(サンプルは今やGitHubが公式の入手先です。APTで入らないのは仕様です。)
2)(やや力技):libtinfo5 を入れてメタを通す
どうしても cuda-toolkit-12-4 メタで入れたい場合は、Ubuntu 22.04(jammy)の libtinfo5 を一時的に取り込む手があります。ただし 異なるリリース混在なので自己責任。終わったら jammy エントリは削除推奨。
# pinを作ってlibtinfo5だけjammyから取る(ほかは触らない)cat Package: libtinfo5Pin: release n=jammyPin-Priority: 700EOF# 一時的に jammy を追加echo "deb http://archive.ubuntu.com/ubuntu jammy main universe" | sudo tee /etc/apt/sources.list.d/jammy-temp.listsudo apt update# 必要な旧ライブラリを取得sudo apt install libtinfo5# もう不要なので jammy を外すsudo rm /etc/apt/sources.list.d/jammy-temp.listsudo apt update sudo apt install --no-install-recommends cuda-toolkit-12-4 3-2. どうしても meta(cuda-toolkit-12-4)で入れたい場合libtinfo5 を jammy(22.04)から一時的にだけ 取ってきます(自己責任)。
# pin を作成して libtinfo5 だけ jammy を許可cat Package: libtinfo5Pin: release n=jammyPin-Priority: 700EOF# 一時的に jammy のエントリを追加echo "deb http://archive.ubuntu.com/ubuntu jammy main universe" | sudo tee /etc/apt/sources.list.d/jammy-temp.listsudo apt update# 旧ライブラリを導入sudo apt install -y libtinfo5# もう不要なので jammy を外すsudo rm /etc/apt/sources.list.d/jammy-temp.listsudo apt update# これで meta が通るsudo apt install --no-install-recommends cuda-toolkit-12-4 どっちが良い?- 1)が安全・シンプル。深層学習用途や自作CUDAでもこれで十分です。
- 2)は “metaで一発入れたい” こだわりがある方向け。将来のアップデートで再び依存に悩む可能性はあります。
まとめ
- GTX 1060はCUDA 12.4までサポートされており、Ubuntu 24.04でも動作可能。
- ドライバはUbuntu公式の550系を使用するのが安定。
- CUDA ToolkitはUbuntu 22.04用パッケージで問題なくインストール可能。
- カーネル更新にも対応できる構成。
関連記事
Oracle Cloudのインスタンスにコンソール接続します。 PHP8とNGINXの挙動を確認します。 スマホのタッチパネルが壊れてタップできない時の対処法 スマホのタッチパネルが壊れて操作できなくなったときの解決策を徹底解説。USBマウスを使ってAndroidスマホを操作する方法や、必要な準備物、接続手順まで詳しく紹介します。 SSH接続とVisual Studio Code(WSL,Docker)この記事では、Visual Studio CodeとWSLを使ったSSH接続とリモート開発環境の構築方法を初心者向けに解説します。SSH configファイルの設定やVS CodeのRemote - SSH拡張機能を活用した効率的なリモート開発を学びましょう。
Excel複数シート・ブック統合テクニック総まとめ|あなたに最適な方法が必ず見つかる!Excelの複数シート/複数ブックを最短で統合する4つの方法を解説。Power Query・Python・VBA・Power Automateの比較表と手順、テンプレート付きで初心者でもすぐ自動化できます。