即使 16.04 被認為不夠安全,我如何強制它添加存儲庫?

即使 16.04 被認為不夠安全,我如何強制它添加存儲庫?

我確實需要安裝 Nvidia Cuda,但出現錯誤

E: Failed to fetch file:/var/cuda-repo-7-5-local/Release  No Hash entry in Release file /var/lib/apt/lists/partial/_var_cuda-repo-7-5-local_Release which is considered strong enough for security purposes

我可以強制它安裝嗎?我確實需要使用它,即使它不安全。我懷疑 Nvidia 是否會很快更新存儲庫以支援 16.04。

答案1

我嘗試在 Ubuntu 16.04 中安裝 CUDA 7.5 時遇到相同的問題。這是由於 CUDA 包中缺少 SHA256 或 SHA512 條目(據 Debian 團隊報告)這裡)。

似乎我們無法強制 apt-get update 獲取“非安全存儲庫”,但我可以通過使用 .run 文件完全避免該問題。這是我一步一步所做的:

  1. 不要下載 .deb 包,而是下載 .run 檔案(從 這一頁
  2. 安裝相容的編譯器(看起來像cuda 7.5與Ubuntu 16.04的預設編譯器不相容):

    sudo apt-get install gcc-4.9 g++-4.9
    
  3. 您可能需要安裝一些額外的軟體包(取決於您的配置):

    sudo apt-get install nvidia-modprobe freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev
    
  4. 啟動運行檔案並按照說明進行操作:

    sudo sh cuda_7.5.18_linux.run
    

這對我來說效果很好(不要忘記安裝 NVIDIA 驅動程式)

編輯:在步驟2和3之後,如果CUDA安裝程式嘗試使用gcc 5.3.1(ubuntu 16.04的預設值)作為編譯器而不是4.9版本,您可以嘗試刪除5.3.1版本,安裝CUDA,然後重新安裝最新的gcc版本。

答案2

將您的更改/var/cuda-repo-7-5-local/Release為以下內容:

Origin: NVIDIA
Label: NVIDIA CUDA
Architecture: repogenstagetemp
MD5Sum:
 51483bc34577facd49f0fbc8c396aea0            75379 Packages
 4ef963dfa4276be01db8e7bf7d8a4f12            21448 Packages.gz
SHA256:
 532b1bb3b392b9083de4445dab2639b36865d7df1f610aeef8961a3c6f304d8a            75379 Packages
 2e48cc13b6cc5856c9c6f628c6fe8088ef62ed664e9e0046fc72819269f7432c            21448 Packages.gz

運行sudo apt-get update忽略有關無效簽名的警告,就完成了。

如果失敗,請將 SHA256 總和替換為以下輸出

sha256sum /var/cuda-repo-7-5-local/Packages.gz

gunzip -c /var/cuda-repo-7-5-local/Packages.gz | sha256sum

答案3

目前您可以在Ubuntu 16.04上使用以下指令安裝CUDA Toolkit 7.5:

sudo apt install nvidia-cuda-toolkit

答案4

解決方案很簡單:

cd /etc/apt/
rm cuda-VERSIONHERE-local.list
apt-key net-update
apt-get update

相關內容