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


9

我确实需要安装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一起使用。

Answers:


9

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

似乎我们不能强制apt-get更新获取“非安全存储库”,但是我可以通过使用.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版。


我不知道它是否是新的,但是在看到我的“错误的” gcc版本时,安装脚本实际上建议使用'--override'标志再次运行它。所以我确实再次运行了它sh cuda_7.5.18_linux.run --override,现在一切似乎都可以正常工作:我可以使用NVidia卡运行一些简单的TensorFlow代码。安装几乎是即时的,我认为它没有编译任何内容。我不确定为什么需要指定编译器...以后可能会遇到一些问题。
toto2 '16

由于已经安装了驱动程序,因此我应该指定跳过该驱动程序的安装。我不确定是否可以绕过一些编译。
toto2 '16

我以为Nvidia驱动程序不会在16.04中自动安装?我还要求Nvidia开发人员解决Cuda .deb存储库的问题,但他们说16.04尚不支持Cuda 7.5。似乎很奇怪,因为使用.sh安装程序可以正常工作,我什至可以在tensorflow中使用它
Amine Horseman

NVidia驱动程序的确不是默认安装的。我尝试直接从NVidia安装它,弄乱了系统。但是后来我意识到,可以通过转到“设置”应用>软件和更新>其他驱动程序轻松安装它。它可能不是最新的,但非常简单。
toto2

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

运行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

2

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

sudo apt install nvidia-cuda-toolkit

感谢您的修改,因此您不需要cuda-dev?
SentinalBais

0

我无可奉告,但添加到@ 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

并且它安装正确。


0

解决方案很简单:

cd /etc/apt/
rm cuda-VERSIONHERE-local.list
apt-key net-update
apt-get update
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.