25 min read

Ubuntu 24.04 安裝 NVIDIA 驅動

在 Ubuntu 24.04 上為 NVIDIA 顯示晶片安裝驅動程式並提供給 Docker 使用需要同時安裝 NVIDIA 驅動程式和 NVIDIA Container Toolkit。

步驟 1:檢查並更新系統

首先,請確保你的系統是最新的。打開終端機並執行以下指令:

sudo apt update
sudo apt upgrade -y

步驟 2:安裝 NVIDIA 驅動程式

Ubuntu 24.04 的軟體來源中通常包含 NVIDIA 驅動程式,所以你可以直接使用 apt 來安裝。

  1. 檢查推薦的驅動程式: 執行以下指令來查看系統推薦的驅動程式版本。
ubuntu-drivers devices

這會列出你的 GPU 型號和建議安裝的驅動程式版本。通常,你應該選擇標註為 (proprietary, tested) 的版本。對於 Quadro P1000,這很可能是 nvidia-driver-535 或更新的版本。

  • 版本說明:
    • nvidia-driver-535 : nvidia驅動程式535版本
    • -server : 為伺服器和資料中心環境提供的驅動程式版本,差異在於
      • 穩定性(Stability): 伺服器版驅動程式更注重長期穩定性、可靠性和相容性。它通常不會包含最新的遊戲優化或新功能,但會確保在長時間運行下,系統能夠保持穩健。
      • 功能集(Feature Set): 伺服器版驅動程式包含一些針對企業級應用和資料中心特有的功能,例如:
        Tesla/Quadro 功能支援:針對專業卡(如你的 Quadro P1000)的特定功能,例如 CUDA Compute 和虛擬化。
      • NVSMI 持久模式(Persistence Mode):確保 GPU 在重啟後能更快地初始化並保持就緒,這對伺服器應用很重要。
      • 更新週期(Update Cycle): 伺服器版的更新頻率通常比桌面版低,主要以修復嚴重的錯誤和安全漏洞為主,避免因頻繁更新而導致潛在的不穩定性。
    • -distro (發行版) : 這指的是這個驅動程式是由 Ubuntu 官方打包和維護 的。這點很重要,因為它代表這個驅動程式已經在 Ubuntu 的環境下經過測試,與其他系統元件的相容性較高。
    • -non-free (非自由軟體) : 這指的是這個驅動程式的原始碼是不公開的。NVIDIA 並沒有開放其驅動程式的原始碼,因此它不符合開放原始碼社群所定義的「自由軟體」。在 Linux 的世界裡,這是一個很常見的分類,用來區分那些可以自由修改和發布的軟體,以及那些有專利或版權限制的軟體。
    • -recommend (推薦) : 這代表 Ubuntu 的系統工具(如 ubuntu-drivers)強烈建議你安裝這個驅動程式。通常,這個標籤是基於你的硬體型號(在這裡是 Quadro P1000)和系統的穩定性考量給出的,這表示它是最適合你的驅動程式版本。
  1. 安裝驅動程式: 根據上一步的建議,安裝驅動程式。以 nvidia-driver-535 為例,執行:
sudo apt install nvidia-driver-535 -y
  1. 重啟系統: 安裝完成後,必須重啟電腦才能讓驅動程式生效。
  2. 驗證安裝: 系統重啟後,打開終端機並執行 nvidia-smi
nvidia-smi

如果驅動程式安裝成功,你會看到類似下面的輸出,顯示你的 GPU 型號、驅動程式版本和狀態。

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.05             Driver Version: 535.104.05   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                  Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf            Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Quadro                          On | 00000000:00:00.0 Off |                  N/A |
| N/A   **C    P*               ***W /***W|   ****MiB / *****MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

調降功耗

在 Ubuntu Server 底下最正統、最有效率的方法是使用 NVIDIA 官方的 nvidia-smi 指令:

  1. 查出兩張 GPU 編號(ID) 以及它們支援的功耗範圍

nvidia-smi --query-gpu=index,name,power.limit,power.min_limit,power.max_limit --format=csv

  1. NVIDIA 驅動預設有一種機制:當沒有任何程式在使用顯卡時,驅動模組會自動從核心中卸載以節省電力,要解決這個問題,必須開啟 NVIDIA 的 Persistence Mode(常駐模式),強迫驅動永遠留在核心 (常駐模式不會增加耗電)

sudo nvidia-smi -i 0 -pm 1

  • 設定 GPU 0 為常駐模式
  • 執行成功會顯示: Enabled persistence mode for GPU...
  1. 使用 -pl (Power Limit) 參數來指定瓦數

sudo nvidia-smi -i 0 -pl 150

  • 限制 GPU 0 為 150 W
  • 執行成功系統會提示:Power limit for GPU 00000000:XX:00.0 was set to 150.00 W...

再次輸入 nvidia-smi,就會發現那兩列的 Pwr:Usage/Cap 右邊的上限(Cap)已經變成 150W

  1. 開機自動執行

sudo vim /etc/systemd/system/nvidia-power-limit.service

建立服務檔案後貼上下列內容

[Unit]
Description=Set NVIDIA GPU Power Limits on Boot
After=nvidia-persistenced.service
Wants=nvidia-persistenced.service

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStart=/usr/bin/nvidia-smi -i 0 -pm 1
ExecStart=/usr/bin/nvidia-smi -i 1 -pm 1

ExecStart=/usr/bin/nvidia-smi -i 0 -pl 150
ExecStart=/usr/bin/nvidia-smi -i 1 -pl 150

[Install]
WantedBy=multi-user.target

存檔後退出並輸入下列指令以啟用

sudo systemctl daemon-reload

  • 重新載入 systemd 設定

sudo systemctl enable nvidia-power-limit.service

  • 啟用開機自動執行

sudo systemctl start nvidia-power-limit.service

  • 立即執行服務

步驟 3:安裝 Docker

如果你還沒有安裝 Docker,請按照以下步驟進行。

  1. 安裝必要套件:
sudo apt install ca-certificates curl gnupg -y
sudo install -m 0755 -d /etc/apt/keyrings
  1. 添加 Docker 的 GPG 密鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  1. 設定 Docker 儲存庫:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安裝 Docker Engine:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
  1. 將你的使用者帳號加入 docker 群組,這樣你就不需要每次都使用 sudo 來執行 Docker 指令了。
sudo usermod -aG docker $USER
newgrp docker

這一步完成後,你可以嘗試執行 docker run hello-world 來測試 Docker 是否正確運作。

步驟 4:安裝 NVIDIA Container Toolkit

這是讓 Docker 能夠識別並使用你的 NVIDIA GPU 的關鍵步驟。

  1. 設定 NVIDIA Container Toolkit 儲存庫:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu24.04/libnvidia-container.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  • 儘管 Ubuntu 24.04 已經發布,但 NVIDIA 官方的套件儲存庫可能還沒有正式為它建立完整的套件清單。
    • 解決方案:使用 Ubuntu 22.04 LTS 的套件清單,將第二段輸入替換為:
curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  • NVIDIA 的許多套件在不同的 Ubuntu LTS 版本之間是相容的,因此使用 22.04 的套件清單通常可以正常工作。
  1. 更新 apt 套件清單並安裝 Toolkit:
sudo apt update
sudo apt install -y nvidia-container-toolkit
  1. 設定 Docker: 安裝 Toolkit 後,你需要對 Docker 進行設定,使其預設使用 NVIDIA 執行時。
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

這會修改 /etc/docker/daemon.json 檔案,使其執行時包含 NVIDIA 驅動。

步驟 5:測試 Docker 容器中的 GPU

現在,一切都設定好了。你可以運行一個包含 NVIDIA GPU 支援的 Docker 映像來驗證是否成功。
最簡單的方法是使用 nvidia/cuda 官方映像。執行以下指令:

docker run --rm --runtime=nvidia nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
  • --rm: 容器結束後自動移除。
  • --runtime=nvidia: 告訴 Docker 使用 NVIDIA 執行時(在步驟 4 中已設定為預設,但手動指定更保險)。

如果一切正常,你會看到與你在主機上執行 nvidia-smi 相同的輸出,這代表 Docker 容器已經成功存取並使用你的 Nvidia 顯示卡。

Linux 環境 NVIDIA 顯示卡壓力測試

在 Ubuntu (Server) 之類的沒有圖形介面環境下,測試 NVIDIA 顯卡穩定性與散熱,最主流且專業的方法是使用 GPU 壓力測試工具,並配合 NVIDIA 官方的監控工具。

A. 使用 GPU Burn 進行極限壓測

gpu-burn 是 Linux 底下最經典、純粹的 NVIDIA GPU 壓力測試工具。它會利用 CUDA 進行大量的矩陣乘法運算,能瞬間將 GPU 的功耗和發熱量拉到 100%。

  1. 安裝 CUDA 工具包與編譯環境
  • gpu-burn 需要 CUDA 編譯器才能執行,請先安裝必要套件:

sudo apt update
sudo apt install build-essential m4

  • 如果沒有安裝工具包也要一併安裝(安裝 cuda-toolkit 需要一點時間)

sudo apt install nvidia-cuda-toolkit

  1. 下載並編譯 gpu-burn

git clone https://github.com/wilicc/gpu-burn.git

cd gpu-burn && make

  1. 開始測試
  • 編譯完成後,目錄下會多出一個 gpu_burn 執行檔。 你可以指定測試的時間(單位為秒)。例如,測試 10 分鐘(600秒)

./gpu_burn 600

  • 如果想指定特定顯卡(例如只測序號 0 和 1 ),可以使用:

CUDA_VISIBLE_DEVICES=0,1 ./gpu_burn 600

  • 如何判斷穩定: 測試執行時,畫面會不斷跳出 OK 的進度。如果直到測試結束都沒有噴出 ERROR 或突然中斷,代表顯卡的晶片與顯存穩定度過關。
  • 如果使用較老的顯卡,CUDA 編譯器(nvcc)在編譯 gpu-burn 時,可能預設產生了太新或不對的算力二進位檔,導致舊的晶片看不懂,我們只需要手動指定這個參數 (用編輯器打開 Makefile 修改 COMPUTE ?= XX 這一行改為你的顯示晶片支援的版本) 重新編譯,就能順利執行

B. 監控溫度與功耗

在執行 gpu_burn 的同時,你必須開另一個終端機視窗來監控顯卡狀態

請在另一個視窗輸入以下指令,讓系統每秒更新一次顯卡狀態:

watch -n 1 nvidia-smi

  • 如果使用quadro專業卡在 nvidia-smi 中看到 ECC 的錯誤計數(Volatile Counter)在測試過程中不斷增加,代表顯存可能快老化損壞了,或是電壓不穩。

Optional: 使用 Phoronix Test Suite (PTS)

如果你想要更接近真實世界(如 AI 推理、3D 渲染)的壓力測試,而不是單純的燒機,可以使用 Linux 知名的基準測試自動化工具Phoronix Test Suite,透過apt安裝:

sudo apt install phoronix-test-suite

安裝後,可以執行如下測試來對顯卡進行不同維度的穩定性評估

pts/unigine-valley : 圖形/計算測試

pts/cl-mem : OpenCL vram頻寬測試

討論紀錄

請問我要怎麼在ubuntu 24.04上為quadro p1000裝驅動並提供給docker使用
Gemini 2.5 flash
## 如何在 Ubuntu 24.04 上為 Quadro P1000 安裝驅動並供 Docker 使用 要在 Ubuntu 24.04 上為 NVIDIA Quadro P1000 安裝驅動程式並提供給 Docker 使用,你需要執行幾個步驟。最重要的是,你將需要同時安裝 NVIDIA 驅動程式和 NVIDIA Container Toolkit。 ### 步驟 1:檢查並更新系統 首先,請確保你的系統是最新的。打開終端機並執行以下指令: ```Bash sudo apt update sudo apt upgrade -y ``` ### 步驟 2:安裝 NVIDIA 驅動程式 Ubuntu 24.04 的軟體來源中通常包含 NVIDIA 驅動程式,所以你可以直接使用 `apt` 來安裝。 1. 檢查推薦的驅動程式: 執行以下指令來查看系統推薦的驅動程式版本。 ```Bash ubuntu-drivers devices ``` 這會列出你的 GPU 型號和建議安裝的驅動程式版本。通常,你應該選擇標註為 `(proprietary, tested)` 的版本。對於 Quadro P1000,這很可能是 `nvidia-driver-535` 或更新的版本。 2. 安裝驅動程式: 根據上一步的建議,安裝驅動程式。以 `nvidia-driver-535` 為例,執行: ```Bash sudo apt install nvidia-driver-535 -y ``` 3. 重啟系統: 安裝完成後,必須重啟電腦才能讓驅動程式生效。 ```Bash sudo reboot ``` 4. 驗證安裝: 系統重啟後,打開終端機並執行 `nvidia-smi`。 ```Bash nvidia-smi ``` 如果驅動程式安裝成功,你會看到類似下面的輸出,顯示你的 GPU 型號、驅動程式版本和狀態。 ```bash +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 Quadro P1000 On | 00000000:01:00.0 Off | N/A | | N/A 32C P8 3W / 47W| 1MiB / 4096MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ ``` ### 步驟 3:安裝 Docker 如果你還沒有安裝 Docker,請按照以下步驟進行。 1. 安裝必要套件: ```Bash sudo apt install ca-certificates curl gnupg -y sudo install -m 0755 -d /etc/apt/keyrings ``` 2. 添加 Docker 的 GPG 密鑰: ```Bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg ``` 3. 設定 Docker 儲存庫: ```Bash echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 4. 安裝 Docker Engine: ```Bash sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y ``` 5. 將你的使用者帳號加入 `docker` 群組,這樣你就不需要每次都使用 `sudo` 來執行 Docker 指令了。 ```Bash sudo usermod -aG docker $USER newgrp docker ``` 這一步完成後,你可以嘗試執行 `docker run hello-world` 來測試 Docker 是否正確運作。 ### 步驟 4:安裝 NVIDIA Container Toolkit 這是讓 Docker 能夠識別並使用你的 NVIDIA GPU 的關鍵步驟。 1. 設定 NVIDIA Container Toolkit 儲存庫: ```Bash curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu24.04/libnvidia-container.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list ``` 2. 更新 apt 套件清單並安裝 Toolkit: ```Bash sudo apt update sudo apt install -y nvidia-container-toolkit ``` 3. 設定 Docker: 安裝 Toolkit 後,你需要對 Docker 進行設定,使其預設使用 NVIDIA 執行時。 ```Bash sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker ``` 這會修改 `/etc/docker/daemon.json` 檔案,使其包含 NVIDIA 執行時。 ### 步驟 5:測試 Docker 容器中的 GPU 現在,一切都設定好了。你可以運行一個包含 NVIDIA GPU 支援的 Docker 映像來驗證是否成功。 最簡單的方法是使用 `nvidia/cuda` 官方映像。執行以下指令: ```Bash docker run --rm --runtime=nvidia nvidia/cuda:12.2.0-base nvidia-smi ``` - `--rm`: 容器結束後自動移除。 - `--runtime=nvidia`: 告訴 Docker 使用 NVIDIA 執行時(在步驟 4 中已設定為預設,但手動指定更保險)。 如果一切正常,你會看到與你在主機上執行 `nvidia-smi` 相同的輸出,這代表 Docker 容器已經成功存取並使用你的 Quadro P1000 顯示卡。 希望這個教學對你有幫助!
nvidia-driver-***-server - distro non-free 這是甚麼?我需要裝server版比較好嗎? -distro non-free recommend又是甚麼?
Gemini 2.5 flash
這是一個很好的問題!讓我們來釐清 `nvidia-driver-***-server` 是什麼,以及你是否需要安裝它。 ### 什麼是 `nvidia-driver-***-server`? `nvidia-driver-***-server` 是 NVIDIA 官方為伺服器和資料中心環境提供的驅動程式版本,它與你通常使用的桌面版驅動程式`nvidia-driver-***`有些不同。 主要區別在於: - 穩定性(Stability): 伺服器版驅動程式更注重長期穩定性、可靠性和相容性。它通常不會包含最新的遊戲優化或新功能,但會確保在長時間運行下,系統能夠保持穩健。 - 功能集(Feature Set): 伺服器版驅動程式包含一些針對企業級應用和資料中心特有的功能,例如: Tesla/Quadro 功能支援:針對專業卡(如你的 Quadro P1000)的特定功能,例如 CUDA Compute 和虛擬化。 - NVSMI 持久模式(Persistence Mode):確保 GPU 在重啟後能更快地初始化並保持就緒,這對伺服器應用很重要。 - 更新週期(Update Cycle): 伺服器版的更新頻率通常比桌面版低,主要以修復嚴重的錯誤和安全漏洞為主,避免因頻繁更新而導致潛在的不穩定性。 ### 我需要裝伺服器版嗎? 對於你的情況,安裝伺服器版驅動程式會是更好的選擇。 原因如下: 1. 你的 Quadro P1000 是一張專業級顯示卡。 這張卡主要用於工作站、內容創作和 GPU 加速運算,而不是遊戲。伺服器版驅動程式與這類專業卡的功能和穩定性更匹配。 2. 你的目標是提供給 Docker 使用。 Docker 容器通常運行在後台,用於執行運算任務(例如機器學習、資料分析),這與伺服器的工作負載非常相似。你最需要的是一個穩定、可靠且高效能的運算環境,而不是最新的遊戲效能。 3. 避免不必要的麻煩。 桌面版驅動程式可能會包含你用不到的函式庫或功能,有時甚至可能與你的運算工作負載產生衝突。使用伺服器版可以確保你的環境更簡潔且專為運算優化。 總結來說,雖然你安裝一般的 `nvidia-driver-***` 驅動程式也能讓 Docker 正常運作,但為了獲得最佳的穩定性與效能,強烈建議你選擇安裝 `nvidia-driver-***-server` 版本。這將確保你的 Quadro P1000 在執行運算任務時發揮最大效用,並減少潛在的相容性問題。
這是個好問題,這個標籤在 Ubuntu 的軟體來源中很常見,但對於剛接觸的人來說可能會有點困惑。 什麼是 `distro non-free` 和 `recommend`? 讓我們把這個標籤拆開來解釋: - `distro` (發行版): 這指的是這個驅動程式是由 Ubuntu 官方打包和維護 的。這點很重要,因為它代表這個驅動程式已經在 Ubuntu 的環境下經過測試,與其他系統元件的相容性較高。 - `non-free` (非自由軟體): 這指的是這個驅動程式的原始碼是不公開的。NVIDIA 並沒有開放其驅動程式的原始碼,因此它不符合開放原始碼社群所定義的「自由軟體」。在 Linux 的世界裡,這是一個很常見的分類,用來區分那些可以自由修改和發布的軟體,以及那些有專利或版權限制的軟體。 - `recommend` (推薦): 這代表 Ubuntu 的系統工具(如 ubuntu-drivers)強烈建議你安裝這個驅動程式。通常,這個標籤是基於你的硬體型號(在這裡是 Quadro P1000)和系統的穩定性考量給出的,這表示它是最適合你的驅動程式版本。 總結來說,當你看到 `nvidia-driver-***-server - distro non-free recommend` 這個完整標籤時,它其實是在告訴你: 「這個由 Ubuntu 官方打包 的 非開源 NVIDIA 驅動程式,是最推薦給你的硬體使用的版本,專為伺服器環境設計。」 簡而言之,這是一個很好的信號。它代表你正在考慮安裝的驅動程式是經過官方認證且穩定的版本,而不是一個你需要自己從 NVIDIA 官網下載並手動安裝的第三方驅動。因此,當你看到這個推薦時,可以放心地選擇它。
sudo apt update時 E: 未知的類型 'doctype',位於在來源列表 /etc/apt/sources.list.d/nvidia-container-toolkit.list 中的第 1 行 E: 無法讀取來源列表。 你的指令或路徑有問題
Gemini 2.5 flash
您遇到的這個錯誤訊息 `E: 未知的類型 ' 開頭),而不是 APT 所需的套件清單。 讓我們一起檢查並修復這個問題。
## 解決步驟 ### 步驟 1:刪除錯誤的來源清單 首先,你需要刪除有問題的檔案,也就是 `/etc/apt/sources.list.d/nvidia-container-toolkit.list`。 執行以下指令來刪除它: ```Bash sudo rm /etc/apt/sources.list.d/nvidia-container-toolkit.list ``` ### 步驟 2:重新執行正確的指令 接下來,請再次執行安裝 NVIDIA Container Toolkit 儲存庫的指令,但這次我們將使用兩個獨立的指令,以確保每一步都正確無誤。 下載並新增 GPG 密鑰: ```Bash curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg ``` 這一步將 NVIDIA 的公鑰下載到您的系統中,用於驗證套件的真實性。 設定 NVIDIA Container Toolkit 儲存庫: ```Bash curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu24.04/libnvidia-container.list | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list ``` 這個指令會下載正確的套件清單網址,並將其寫入到檔案中。這次我們省略了 sed 命令,因為直接下載的列表內容已經是正確的格式。 注意:如果您使用的是 Ubuntu 22.04 而非 24.04,請將網址中的 ubuntu24.04 改成 ubuntu22.04。但根據您的問題,您應該是使用 24.04。 ### 步驟 3:更新套件清單並安裝 當您重新執行上述指令後,請再次執行 sudo apt update。這次應該不會再出現錯誤。 ```Bash sudo apt update ``` 如果更新順利,您就可以繼續安裝 nvidia-container-toolkit 了: ```Bash sudo apt install -y nvidia-container-toolkit ``` 為什麼會發生這個問題? 這個問題通常發生在當 curl 指令無法從目標網址下載到預期的文字內容時。這可能是由於: - 網路連線不穩定或中斷。 - 防火牆或代理伺服器阻擋了請求。 - 網址拼寫錯誤。 這些情況都可能導致 `curl` 接收到一個 HTML 錯誤頁面(例如 404 Not Found 或 500 Internal Server Error),並將其寫入到 APT 的來源清單檔案中,進而導致 `apt update` 執行失敗。 遵循以上步驟,您應該就能成功修復這個問題,並繼續安裝 NVIDIA Container Toolkit。
每次我打第二個指令的時候都跑出網頁原始碼
Gemini 2.5 flash
這是一個非常好的觀察!當你執行 curl 指令時,它顯示 HTML 原始碼而不是預期的套件清單內容,這通常是因為網路問題或伺服器問題,導致你接收到的是一個錯誤頁面(例如 404 Not Found 或 500 Internal Server Error)。 這表示 curl 正在正常運作,但它無法從正確的網址下載到套件清單。我們需要更換一個下載方式,確保你能取得正確的內容。
## 解決方法 我將提供一個更穩健的方法來處理這個問題。這個方法會先檢查下載的內容是否正確,然後再寫入到檔案中。 ### 步驟 1:手動下載並檢查 首先,請在你的瀏覽器中打開這個網址: https://nvidia.github.io/libnvidia-container/ubuntu24.04/libnvidia-container.list 當你打開這個網址時,你應該會看到類似這樣的文字內容: ``` # WARNING: THIS FILE IS A REPOSITORY CONFIGURATION FILE. DO NOT EDIT! deb https://nvidia.github.io/libnvidia-container/ubuntu24.04/amd64/ / ``` 如果頁面顯示的是這些文字,這代表網址是正確的。如果顯示的是一個錯誤頁面(例如「404 Not Found」),這代表 NVIDIA 的伺服器有問題,或者網址可能已經變更。 ### 步驟 2:手動建立套件清單檔案 如果上一步的網址內容是正確的,你可以直接在終端機中手動建立這個檔案,避免 curl 引起的任何網路問題。 開啟或建立檔案: 執行以下指令,用 nano 文字編輯器來編輯這個檔案。 ```Bash sudo nano /etc/apt/sources.list.d/nvidia-container-toolkit.list ``` 貼上正確的內容: 將你在瀏覽器中看到的正確內容複製並貼上到 nano 編輯器中。 ```bash deb https://nvidia.github.io/libnvidia-container/ubuntu24.04/amd64/ / ``` 儲存並關閉: - 按下 Ctrl + X - 按下 Y - 按下 Enter 這樣就成功地手動建立了套件清單檔案。 ### 步驟 3:重新執行 APT 更新 現在你可以再次執行 `sudo apt update`。這次應該不會再出現任何錯誤。 ```Bash sudo apt update ``` 如果更新順利,你就可以繼續執行安裝指令: ```Bash sudo apt install -y nvidia-container-toolkit ``` ### 補充說明 這種情況非常罕見,但通常是由於網路連線的不穩定或暫時性的伺服器問題造成的。手動建立檔案是最保險的方法,它能讓你跳過網路下載的步驟,確保檔案內容是完全正確的。
Unsupported distribution or misconfigured repository settings
Gemini 2.5 flash
你遇到了另一個常見但比較棘手的問題:NVIDIA 的套件儲存庫沒有為 Ubuntu 24.04 準備好。 儘管 Ubuntu 24.04 已經發布,但 NVIDIA 官方的套件儲存庫(repository)可能還沒有正式為它建立完整的套件清單。這就是為什麼你的系統會顯示 `Unsupported distribution` 的錯誤。 當你輸入 `https://nvidia.github.io/libnvidia-container/ubuntu24.04/libnvidia-container.list` 時,NVIDIA 的伺服器發現 ubuntu24.04 這個路徑不存在或沒有內容,所以它返回一個「不支援此發行版」的錯誤訊息網頁,而不是正確的套件清單。 解決方案:使用 Ubuntu LTS 的套件清單 解決這個問題最常見的方法是使用上一個長期支援版本(LTS)的 Ubuntu 套件清單。對於 Ubuntu 24.04,上一個 LTS 版本是 Ubuntu 22.04 (Jammy Jellyfish)。 NVIDIA 的許多套件在不同的 Ubuntu LTS 版本之間是相容的,因此使用 22.04 的套件清單通常可以正常工作。 ### 步驟 1:刪除錯誤的來源清單 首先,請確保你已經刪除了之前創建的錯誤檔案。 ```Bash sudo rm /etc/apt/sources.list.d/nvidia-container-toolkit.list ``` ### 步驟 2:手動建立並使用 Ubuntu 22.04 的清單 接下來,我們將重新手動建立檔案,但這次使用 ubuntu22.04 的網址。 開啟或建立檔案: ```Bash sudo nano /etc/apt/sources.list.d/nvidia-container-toolkit.list ``` 貼上正確的內容: 請將以下內容貼上到 nano 編輯器中。注意,這裡的網址使用了 ubuntu22.04。 ``` deb https://nvidia.github.io/libnvidia-container/ubuntu22.04/amd64/ / ``` 儲存並關閉: - 按下 Ctrl + X - 按下 Y - 按下 Enter ### 步驟 3:更新套件並安裝 現在,你的系統已經指向了 NVIDIA 官方的 Ubuntu 22.04 儲存庫。請再次執行 APT 更新和安裝指令。 ```Bash sudo apt update sudo apt install -y nvidia-container-toolkit ``` 這次,apt update 應該會成功找到並下載套件資訊,然後你可以順利安裝 nvidia-container-toolkit。 ### 總結 Unsupported distribution 這個錯誤訊息不是你的指令有問題,而是 NVIDIA 的官方儲存庫尚未為你的 Ubuntu 24.04 準備好專屬的套件。使用前一個 LTS 版本(Ubuntu 22.04)的儲存庫是目前的最佳解決方案。未來當 NVIDIA 正式發布 Ubuntu 24.04 的支援時,你再將來源網址修改回來即可。