/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.7 is not a symbolic link
时间: 2023-09-22 17:11:46 浏览: 266
这个错误是由于`/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.7`不是一个符号链接引起的。你可以使用以下解决方案来解决这个问题:
1. 打开终端并执行以下命令:
```
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.7
```
这将创建一个符号链接将`/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8`链接到`/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.7`。
这样做的目的是使系统能够找到正确的库文件,并解决`/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.7 is not a symbolic link`错误。
相关问题
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8 不是符号链接。我想给cuda9.0安装匹配的cudnn7,现在一直显示cuda11.1,是版本冲突了吗?需要卸载cuda11.1吗
### 解决CUDA版本冲突并确保安装与CUDA 9.0兼容的cuDNN 7
为了确保安装与CUDA 9.0兼容的cuDNN 7,同时解决可能存在的版本冲突问题以及卸载不完全的CUDA 11.1,以下是详细的说明和操作指南。
#### 卸载现有CUDA 11.1
在开始安装新的CUDA之前,建议先彻底卸载现有的CUDA 11.1以避免潜在的冲突。可以按照以下步骤执行:
```bash
sudo /usr/local/cuda-11.1/bin/cuda-uninstaller
```
此命令会启动官方提供的卸载程序来移除CUDA工具包[^3]。如果该脚本不可用,则可以通过手动删除相关目录实现完整的卸载过程:
```bash
sudo rm -rf /usr/local/cuda-11.1
sudo apt-get remove --purge nvidia*
```
上述命令用于清理残留的NVIDIA驱动及相关组件[^1]。
#### 处理`/sbin/ldconfig.real`错误
当遇到类似于`/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/aarch64-linux/lib/libcudnn_adv_infer.so.8 is not a symbolic link`这样的错误时,通常是因为库文件未被正确设置为符号链接所致。修复方法如下所示:
```bash
sudo ln -sf /usr/local/cuda-10.2/targets/aarch64-linux/lib/libcudnn_ops_train.so.8.0.0 \
/usr/local/cuda-10.2/targets/aarch64-linux/lib/libcudnn_ops_train.so.8
sudo ldconfig
source ~/.bashrc
```
尽管这里的例子针对的是CUDA 10.2,但对于其他版本同样适用——只需调整路径至目标版本即可[^2]。
#### 安装与CUDA 9.0兼容的cuDNN 7
确认已成功卸载旧版CUDA之后,接下来便是安装适合于CUDA 9.0使用的cuDNN 7。首先访问[NVIDIA官方网站](https://developer.nvidia.com/)下载相应版本的cuDNN库[^4]。注意选择与当前操作系统架构相匹配的二进制文件。
解压后复制必要的头文件和预编译库到指定位置:
```bash
tar -xzvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn*.h /usr/local/cuda-9.0/lib64/libcudnn*
```
最后更新动态链接器缓存以便系统能够识别新加入的共享对象文件:
```bash
sudo ldconfig
```
验证安装是否正常工作可利用nvcc命令查询版本信息:
```bash
nvcc -V
```
此外还需检查环境变量PATH与LD_LIBRARY_PATH是否指向正确的CUDA根目录(/usr/local/cuda-9.0),这一步骤对于保障后续开发流程顺畅至关重要[^5]。
---
相关问题
/sbin/ldconfig.real: /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 is not a symbolic link
这个错误信息表明 `/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8` 不是一个符号链接文件。ldconfig 命令用于更新共享库缓存,它期望这个文件是一个符号链接。解决这个问题的方法是确保 `/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8` 是一个有效的符号链接文件。
你可以尝试运行以下命令来创建符号链接:
```shell
sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so
```
这会创建一个名为 `libcudnn_ops_infer.so` 的符号链接,指向 `/usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8` 文件。然后再次运行 ldconfig 命令,应该就不会再报错了。
请注意,如果你的路径不同或者使用的是其他版本的 CUDA 和 cuDNN,需要相应地修改上述命令中的路径。
阅读全文
相关推荐













