最近我同事在更新 CUDA 發生了一個使用 apt 無法升級的情況錯誤的 Log 如下
$ sudo apt -y install cuda The following packages have unmet dependencies: cuda : Depends: cuda-11-1 (>= 11.1.0) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
通常遇到這個問題普遍去 Google 尋找答案都會得到一個結果,就是把 apt 重新整理的指令,包括移除 apt 的暫存更新 apt 並且移除 CUDA,最後在重新安裝。
sudo apt clean sudo apt update sudo apt purge nvidia-* sudo apt autoremove sudo apt install -y cuda
如果電腦裡面沒有裝圖形化介面通常這樣可以解,不過如果有裝圖形化介面如此的方法是解不了的,因為圖形化介面會吃住它,因此沒辦法移除。那怎麼解決呢?
方法一
如果目前的系統是使用圖像介面介面開啟系統,系統就會咬住顯卡驅動讓我們沒辦法更新驅動,所以要更新驅動就要讓系統改成預設使用終端機模式開啟。而轉換指令如下:
sudo systemctl set-default multi-user.target sudo reboot 0
重新啟動後移除所有 NVIDA 的套件,然後使用下方的方法下載 runfile 後重新安裝 CUDA 或是使用安裝 CUDA Toolkit 11.7 重新安裝 CUDA,這次安裝就不會再出現錯誤了。
sudo apt purge nvidia* sudo apt autoremove wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run sudo sh cuda_11.7.0_515.43.04_linux.run
安裝成功後記得把圖形介面再開回來,並且重新啟動回復系統原本的設定。
sudo systemctl set-default graphical.target sudo reboot 0
方法二
除了方法一之外還可以使用第二種方法,手動關閉所有使用 GPU 的程式,不過此方法不一定會成功,還是使用前面的方法比較安全。
關閉所有裝置後並且停止載入 NVIDIA 驅動程式 ,完成後使用安裝 CUDA Toolkit 11.7 安裝程式
sudo systemctl isolate multi-user.target sudo modprobe -r nvidia-drm
參考資料
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!