即使不足够安全,我如何强制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一起工作。

我在尝试在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版。

将您的/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 

目前,您可以在Ubuntu 16.04上使用以下命令来安装CUDA Toolkit 7.5:

 sudo apt install nvidia-cuda-toolkit 

我无法评论,但添加到@ Horse-man的答案:如果您已经安装了gcc 4.9,则无需卸载/重新安装gcc。 对我来说就足够了

 sudo unlink /usr/bin/gcc sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc 

我的gcc-4.9真的是4.9.3 CUDA安装程序不喜欢的,所以我用它来执行它

 sudo sh cuda_7.5.18_linux.run --override 

它安装得当。

解决方案很简单:

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