Я скачал и установил приложение, которое использует CUDA 10. Когда я запускаю его, оно говорит:
./main: error while loading shared libraries: libcublas.so.10.0: cannot open shared object file: No such file or directory
В документации сказано, что для этого требуются CUDA 10 и cuDNN. Итак, я скачал и установил оба. (... ну на самом деле я установил CUDA 10.1). Но ничего из этого не помогло. Я не был уверен, какой из них установить, поэтому я установил и dev, и среду выполнения.
И так как это не помогло, я установил nvidia-cuda-toolkit. Я думаю, что тогда все пошло не так. Произошло неизбежное, я сломал его.
Я хотел установить еще один пакет: «cuda-library», но он выдает ошибку неудовлетворенной зависимости, возвращаясь к набору инструментов nvidia, который я установил ранее.
user@dxxx:~/x$ sudo apt install cuda-libraries-10-0
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-libraries-10-0 : Depends: cuda-nvrtc-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-nvgraph-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-nvjpeg-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-cusolver-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-cublas-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-cufft-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-curand-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-cusparse-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-npp-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-cudart-10-0 (>= 10.0.130) but it is not going to be installed
Depends: cuda-license-10-0 (>= 10.0.130) but it is not going to be installed
nvidia-cuda-toolkit : Depends: nvidia-cuda-dev (= 9.1.85-3ubuntu1) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
Прямо сейчас я не могу ни вернуться ни вперед. Когда я пытаюсь удалить это выдает ошибки.
user@xxx:~/x$ sudo apt autoremove
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:
nvidia-cuda-toolkit : Depends: nvidia-cuda-dev (= 9.1.85-3ubuntu1) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
Кроме того, переключатель неисправного исправления не помогает. Он пытается что-то установить, а затем снова идет с ошибкой.
user@xxx:~/x$ sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following package was automatically installed and is no longer required:
libnvidia-common-390
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
nvidia-cuda-dev
Recommended packages:
libnvcuvid1
The following NEW packages will be installed:
nvidia-cuda-dev
0 upgraded, 1 newly installed, 0 to remove and 142 not upgraded.
54 not fully installed or removed.
Need to get 0 B/263 MB of archives.
After this operation, 734 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
(Reading database ... 205855 files and directories currently installed.)
Preparing to unpack .../nvidia-cuda-dev_9.1.85-3ubuntu1_amd64.deb ...
Unpacking nvidia-cuda-dev (9.1.85-3ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/nvidia-cuda-dev_9.1.85-3ubuntu1_amd64.deb (--unpack):
trying to overwrite '/usr/include/cublas.h', which is also in package libcublas-dev 10.2.0.168-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-cuda-dev_9.1.85-3ubuntu1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Как я могу сохранить свою систему? например удаление всего этого.
Для нового начала. sudo mv /usr/include/cublas.h /usr/include/cublas.h.bak
dpkg: архив обработки ошибок /var/cache/apt/archives/nvidia-cuda-dev_9.1.85-3ubuntu1_amd64.deb (--unpack): попытка перезаписать '/ usr / include / cublas.h ', который также находится в пакете libcublas-dev 10.2.0.168-1
2 пакета включают один и тот же файл, и dpkg не переопределяет его без какой-либо опции --force.
sudo dpkg --configure nvidia-cuda-dev and ` sudo dpkg --configure nvidia-cuda-toolkit`
Затем попробуйте удалить пакет, нарушающий apt. sudo dpkg -P cuda-libraries-10-0 libnvidia-common-390
Следующий шаг
sudo dpkg --configure -a && sudo apt -f install
некоторые пакеты необходимо обновить. Но только если вы не получили сообщение об ошибке раньше.
sudo apt update && sudo apt full-upgrade
У меня была в основном та же проблема, но принятый ответ не работал в моем случае (Ubuntu 18.04). Я установил cuda-10.1
, но (как в исходном вопросе) cuda-9.1
все еще присутствовал. Это сообщение было полезно.
dpkg -l | grep -e cuda-.*9-1 | awk '{print $2}' | xargs -n1 sudo dpkg --purge --force-all
sudo apt-get remove nvidia-cuda-toolkit
Эти две строки должны удалить 9.1 (это должно исчезнуть от /usr/local
). Теперь вымыться:
sudo apt autoremove
sudo apt update && sudo apt full-upgrade