ubuntu配置出现的一堆问题求解

服务器一直有安装各种库,以及各种更新。隔了几个月再重新使用caffe的时候,出现了一堆错误,然后清理了一下无用软件sudo apt auto-remove,结果删去了很多有用的软件。几个依赖库不明就里的被删除了???!!!!

然后,一不做二不休的态度,干脆就想把cuda、nvidia驱动都给升级了。然后就有了这接连三天的头疼窘迫。不过也搞懂了一些问题,干脆写下来。

 

首先,cuda和nvidia的依赖

一直以来,我总是认为这俩是绑定安装的,比如cuda8对应nvidia375.26。反正也不经常安装,没有认真思考过这个问题。

  1. 其实,cuda8.0可匹配驱动384!!!!具体他们可以匹配的情况在官网是有具体描述的。cuda和NVIDIA驱动匹配的说明文档 ,据此可以稍微明白一点点,不至于那么糊涂。
  2. 然后GPU驱动顺序:可以参考这儿,大概了解谁先谁后。
  3. 再然后,了解了这些情况,就要去下载了,因为驱动是和硬件亲密接触的,所以要了解他们的支持情况。具体就是搜索nvidia驱动下载,可使用搜索关键字Linux-x86_64 375.82之类的。比如我使用nvidia375.82,支持1080.ti,可以找到这个链接: 在里面可以找到支持的硬件情况。选择合适自己的。然后cuda下载地址: 要注意的是具体软件的支持情况了,比如caffe要求ubuntu<17需要cuda8.0。

一些卸载:

  1. 卸载cuda教程
  2. 安装cuda教程
  3. 卸载opencv教程
  4. 安装opencv出现cvShowImage没有安装的提示,参考这儿
  5. 安装教程套装 -- opencv | caffe | cuda ……
  6. tensorflow的版本和cuda|显卡驱动的依赖关系

大问题

到这儿都是一马平川,没什么波澜。但是出现的几个问题,直呼受不了。

其一:cuda9.0/lib64目录下没有libnppi.so文件

Cuda9.0的确没有这个文件了,出现这个问题的情况之一就是opencv安装时出现的

在cuda9下安装2015年发布的最新版opencv,就可以参考这个链接了。然后,对里面的一些操作不想太一头雾水的话,可以参考一下科普文

 

其二 /usr/bin/ld: cannot find -lcudart”

这个就分情况了:
一是说这是有包没有安装,包是哪个包,可参考这个。如果问题解决了,那就太好了,因为这种情况是最简单的。

二是给软链接,ln,比如这种情况就可以参考如何找这种建立软链接,帖子如此 或者这样

三是安装软件不能安装:,这个让我深陷其中不能自拔,求人拔也出不来。不过搜集到了一些相似的问题:The following packages have unmet dependencies

比如我的情况就是libopencv-dev无论如何都安装不上,出现一堆问题:这些都是不匹配,暂时误解。

$ sudo apt install  libopencv-dev
-----------------------------------
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies: libopencv-dev : 
Depends: libopencv-highgui2.4 but it is not going to be installed
Depends: libopencv-objdetect2.4 but it is not going to be installed
Depends: libopencv-objdetect-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv-highgui-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv-legacy-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv-contrib-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv-ts-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv-videostab-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv-superres-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv-ocl-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv2.4-java (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libopencv2.4-jni (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libcv-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libhighgui-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed
Depends: libcvaux-dev (= 2.4.8+dfsg1-2ubuntu1) but it is not going to be installed

 一线曙光

至此曲线救国的方式不行了,只能直接的解决问题了,幸好有大神也遇到过相类似的情况,据称这是opencv中常出现的一种问题:CUDA_USE_STATIC_CUDA_RUNTIME

解决方法可以看这个贴子

又一线曙光

对于这些问题,多数人倾向于黑盒化处理,今天有幸搜到了一个帖子,说这个问题(cannot find -lopencv_dep_cudart #6542)在opencv2.11中不曾出现,2.13才出现的,所以重新安装opencv2.11在试试。

1. 不过中间可能出现nvcc fatal : Unsupported gpu architecture 'compute_xx'的问题,修改opencv-2.4.xx/cmake/OpenCVDetectCUDA.cmake中的set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1") ,参考这个链接就好了

2. 如果是cuda8的话,还可能出现编译opencv2.4.11时出现错误:error: ‘NppiGraphcutState’ has not been declared,可以参考这个帖子,同样的也是修改一些cpp文件。

猜你喜欢

转载自blog.csdn.net/daniaokuye/article/details/82777350