安装包失败导致 apt-get

Str*_*mer 15 package-management apt nvidia cuda

我刚刚第一次安装了 Ubuntu 18.04。兴奋地玩一些 GPU 代码,我通过deb (local)for17.10选项安装了 CUDA ,如Nvidia CUDA 页面所述。我知道17.10 != 18.04,但我读过有人在这方面取得了成功。

我按照Nvidia提供的安装说明进行操作:

sudo dpkg -i cuda-repo-ubuntu1710-9-2-local_9.2.88-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
Run Code Online (Sandbox Code Playgroud)

安装时最后一个命令导致错误nvidia-396

Get:1 file:/var/cuda-repo-9-2-local  nvidia-396 396.26-0ubuntu1 [80.0 MB]
(Reading database ... 167630 files and directories currently installed.)
Preparing to unpack .../nvidia-396_396.26-0ubuntu1_amd64.deb ...
Unpacking nvidia-396 (396.26-0ubuntu1) ...
dpkg: error processing archive /var/cuda-repo-9-2-local/./nvidia-396_396.26-0ubuntu1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/libGLX_indirect.so.0', which is also in package libglx-mesa0:amd64 18.0.0~rc5-1ubuntu1
Errors were encountered while processing:
 /var/cuda-repo-9-2-local/./nvidia-396_396.26-0ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Run Code Online (Sandbox Code Playgroud)

也许我咬得比我能咀嚼的多,所以我决定转向不那么具有挑战性的事情。我继续安装一些基本的软件包,例如git,但是这样做时,我收到了这个错误:

> sudo apt-get install git
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 cuda-drivers : Depends: nvidia-396 (>= 396.26) but it is not going to be installed
 git : Depends: liberror-perl but it is not going to be installed
       Depends: git-man (> 1:2.17.1) but it is not going to be installed
       Depends: git-man (< 1:2.17.1-.) but it is not going to be installed
 libcuda1-396 : Depends: nvidia-396 (>= 396.26) but it is not going to be installed
 nvidia-396-dev : Depends: nvidia-396 (>= 396.26) but it is not going to be installed
 nvidia-opencl-icd-396 : Depends: nvidia-396 (>= 396.26) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
Run Code Online (Sandbox Code Playgroud)

尝试建议的sudo apt --fix-broken install命令会导致nvidia-396上面遇到的相同错误。

由于未满足的依赖项错误,我尝试安装的似乎cudaapt-get进入一种状态,因此它将不再安装或删除任何软件包。更简单地说,安装cudaapt-get完全损坏 。

我怎样才能让我的包管理器重新工作?

iam*_*dor 47

我仅通过以下方式解决此问题:

sudo apt-get -o Dpkg::Options::="--force-overwrite" install --fix-broken
Run Code Online (Sandbox Code Playgroud)

  • 它也解决了我的问题,但解释它为什么会很好。非常感谢您的解决方案,无论如何! (5认同)