即使被认为不够安全,我如何强制 16.04 添加存储库?

raj*_*ego 9 apt 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
Run Code Online (Sandbox Code Playgroud)

我可以强制它安装它吗?我真的需要使用它,即使它不安全。我怀疑 Nvidia 会很快更新 repo 以与 16.04 一起使用。

Ami*_*man 9

我在尝试在 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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 您可能需要安装一些额外的软件包(取决于您的配置):

    sudo apt-get install nvidia-modprobe freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev
    
    Run Code Online (Sandbox Code Playgroud)
  4. 启动运行文件并按照说明进行操作:

    sudo sh cuda_7.5.18_linux.run
    
    Run Code Online (Sandbox Code Playgroud)

这对我很有效(不要忘记安装 NVIDIA 驱动程序)

编辑:在第 2 步和第 3 步之后,如果 CUDA 安装程序尝试使用 gcc 5.3.1(ubuntu 16.04 的默认值)作为编译器而不是 4.9 版本,您可以尝试删除 5.3.1 版本,安装 CUDA,然后重新安装最新的 gcc版本。


Hua*_*Gao 5

将您/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
Run Code Online (Sandbox Code Playgroud)

运行sudo apt-get update忽略关于无效签名的警告,你就完成了。

如果失败,请将 SHA256 总和替换为

sha256sum /var/cuda-repo-7-5-local/Packages.gz
Run Code Online (Sandbox Code Playgroud)

gunzip -c /var/cuda-repo-7-5-local/Packages.gz | sha256sum
Run Code Online (Sandbox Code Playgroud)