撤回文件复制的操作

你提到使用 pacman -S 安装了 CUDA 和 cuDNN,并且希望将版本降级到 CUDA 11.8 和 cuDNN 8.6,以适配你的 NVIDIA P102-100 GPU(Pascal 架构,SM 6.1)并在 Manjaro 上运行 TensorRT 8.6。你之前还误将 TensorRT 10.10.0.31 的文件复制到 /usr/lib/usr/include,并需要撤回这些操作。以下是完整的解决方案,包括撤回复制操作、卸载当前 CUDA/cuDNN、安装 CUDA 11.8 和 cuDNN 8.6,以及验证环境以运行 build_engine.pyinfer_engine.py


一、撤回 TensorRT 10.10.0.31 文件复制操作

你执行了以下命令,将 TensorRT 10.10.0.31 的库文件和头文件复制到系统目录:

1
2
3
cd /opt/TensorRT-10.10.0.31/
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include

需要安全删除这些文件,避免影响系统其他库或头文件。

1. 列出 TensorRT 10.10.0.31 文件

检查 /opt/TensorRT-10.10.0.31/lib//opt/TensorRT-10.10.0.31/include/ 中的文件:

1
2
ls /opt/TensorRT-10.10.0.31/lib/ > tensorrt_lib_files.txt
ls /opt/TensorRT-10.10.0.31/include/ > tensorrt_include_files.txt

典型文件包括:

  • 库文件(/lib):libnvinfer.so, libnvinfer.so.10, libnvonnxparser.so, 等。
  • 头文件(/include):NvInfer.h, NvOnnxParser.h, NvCaffeParser.h, 等。

2. 检查并删除复制的文件

删除 /usr/lib/usr/include 中匹配的文件:

  • 删除库文件

    1
    2
    3
    4
    5
    6
    for file in $(cat tensorrt_lib_files.txt); do
    if [ -e "/usr/lib/$file" ]; then
    echo "将删除: /usr/lib/$file"
    sudo rm -v /usr/lib/$file
    fi
    done
  • 删除头文件

    1
    2
    3
    4
    5
    6
    for file in $(cat tensorrt_include_files.txt); do
    if [ -e "/usr/include/$file" ]; then
    echo "将删除: /usr/include/$file"
    sudo rm -v /usr/include/$file
    fi
    done

3. 验证删除结果

检查是否仍有 TensorRT 文件:

1
2
ls /usr/lib | grep -E 'nvinfer|nvonnxparser|nvcaffe_parser|nvparsers'
ls /usr/include | grep -E 'NvInfer|NvOnnxParser|NvCaffeParser'

如果没有输出,说明文件已删除。清理临时文件:

1
rm tensorrt_lib_files.txt tensorrt_include_files.txt

4. 注意事项

  • 备份(可选):在删除前备份系统目录:
    1
    2
    sudo tar -czvf /usr_lib_backup.tar.gz /usr/lib
    sudo tar -czvf /usr_include_backup.tar.gz /usr/include
  • 符号链接:如果发现符号链接(如 libnvinfer.so 指向 libnvinfer.so.10),确保都删除:
    1
    ls -l /usr/lib | grep nvinfer