即使它被认为不够安全,我怎样才能强制 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 是否会很快更新 repo 以与 16.04 兼容。

答案1

我在 Ubuntu 16.04 中尝试安装 CUDA 7.5 时遇到了同样的问题。这是由于 CUDA 包中缺少 SHA256 或 SHA512 条目(据 Debian 团队报告这里)。

看来我们无法强制 apt-get update 获取“非安全存储库”,但我可以使用 .run 文件完全避免此问题。以下是我一步步执行的操作:

  1. 不要下载 .deb 软件包,而是下载 .run 文件(来自 这一页
  2. 安装兼容的编译器(好像cuda7.5和Ubuntu16.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

相关内容