TensorRT deb安装方式踩坑“ tensorrt : Depends: libnvinfer8 (= 8.0.1-1+cuda11.3) but it is not going to be ”

在Ubuntu18.04系统中,安装TensorRT时出现错误,提示依赖的CUDA库版本不匹配。解决方案包括从官方网站下载对应CUDA版本的TensorRT,或者重新安装CUDA,采用.deb包进行安装。在卸载并重新安装CUDA过程中,可能需要重新安装Nvidia显卡驱动以恢复`nvidia-smi`命令的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统: Ubuntu 18.04

报错如下:

tensorrt : Depends: libnvinfer8 (= 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvinfer-plugin8 (= 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvparsers8 (= 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvonnxparsers8 (= 8.0.1-1+cuda11.3 but it is not going to be installed
            Depends: libnvinfer-bin (= 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvinfer-dev (= 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvinfer-plugin-dev (=8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvparsers-dev (= 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvonnxparsers-dev (= 8 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvinfer-samples (= 8.0.1-1+cuda11.3) but it is not going to be installed
            Depends: libnvinfer-doc (= 8.0.1-1+cuda11.3) but it is not going to be installed

E: Unable to correct problems, you have held broken packages.

报错原因1: TensorRT版本与cuda版本不对应

解决方法:去官网重新下对应电脑cuda的TensorRT版本;

报错原因2: 之前采用的runfile方式安装的cuda,即使版本对应正确,安装TensorRT时也会报上面的错

解决方法:重新安装cuda,采用.deb的方式安装,

先卸载已安装的cuda,参考Ubuntu18.04完全卸载CUDA_ubuntu卸载cuda_谱写的博客-优快云博客

重新安装cuda,可参考【非常详细】Ubuntu18.04安装显卡驱动和CUDA,CUDNN流程和踩坑记录_ubuntu18.04安装cuda_�Sintol·D·Kevin的博客-优快云博客

重装完cuda后,nvidia-smi命令可能会失效,此时还需要重装下Nvidia显卡驱动。

<think>好的,我现在需要帮助用户解决安装TensorRT时遇到的依赖问题。用户之前询问过关于CUDA安装包的问题,现在遇到的是在Ubuntu系统上使用`sudo apt install tensorrt`时出现的依赖错误。首先,我得仔细看看用户提供的错误信息,找出具体的问题所在。 错误信息显示,tensorrt依赖的多个包如libnvinfer8libnvinfer-plugin8等,版本都是8.6.1.6-1+cuda11.8,但无法安装。系统提示可能有无法满足的依赖关系,或者有破损的包被保留。这通常是因为软件源中的包版本与当前系统已安装CUDA或其他库版本不兼容,或者软件源没有正确配置。 首先,用户之前安装的是CUDA 11.1,但TensorRT 8.6.1需要CUDA 11.8。这可能是一个关键点。用户可能在尝试安装TensorRT时,系统里的CUDA版本过低,导致依赖不满足。需要确认用户当前的CUDA版本是否与TensorRT要求的CUDA 11.8一致。 另外,用户可能没有正确配置NVIDIA的软件源,或者软件源中没有对应CUDA 11.8TensorRT包。需要检查是否添加了正确的APT仓库,并且更新了包列表。 接下来,可能的解决步骤包括: 1. 检查CUDA版本:用户需要确认当前安装CUDA版本是否为11.8。如果不是,可能需要升级CUDA11.8,或者安装对应CUDA版本的TensorRT。 2. 配置NVIDIA的APT仓库:确保用户已经添加了正确的仓库,这样APT才能找到与CUDA 11.8兼容的TensorRT包。 3. 更新软件包列表:运行`sudo apt update`,确保系统有最新的包信息。 4. 修复破损的依赖:使用`sudo apt --fix-broken install`尝试自动修复依赖问题。 5. 明确指定版本安装:如果自动修复无效,可能需要手动指定TensorRT及其依赖的版本,或者使用deb文件安装。 此外,用户可能有残留的旧版本包,导致依赖冲突,这时候需要清理旧的NVIDIA包,或者使用aptitude进行更智能的依赖解决。 在思考过程中,还需要考虑用户是否在使用WSL,因为错误提示中的路径包含“mywsl@LAPTOP”,可能是在Windows Subsystem for Linux中操作。虽然WSL支持CUDA,但需要特定的驱动支持和配置,这也可能影响软件包的安装。 最后,建议用户如果无法解决依赖问题,可以考虑使用NVIDIA提供的Tar包安装,或者通过Python的pip安装TensorRT,这可能绕过系统包管理的依赖问题。 总结起来,问题可能出在CUDA版本不匹配、软件源配置不正确、残留包冲突,或者WSL环境下的特定问题。需要一步步引导用户检查这些方面,并提供相应的解决步骤。</think>--- ### 一、问题根源分析 你遇到的错误是由于 **CUDA 版本与 TensorRT 版本不兼容**导致的: - **当前尝试安装TensorRT 版本**:`8.6.1`(对应 CUDA 11.8)。 - **你的系统中可能安装CUDA 版本**:根据依赖关系推断,可能是 **CUDA 11.1**(或更低),与 TensorRT 8.6.1 要求的 CUDA 11.8 不匹配。 --- ### 二、解决步骤 #### 步骤 1:确认 CUDA 版本 ```bash nvcc --version ``` - 如果输出为 **CUDA 11.1**,则必须升级到 **CUDA 11.8**(或更高)。 - 如果已安装 CUDA 11.8,继续下一步。 #### 步骤 2:添加 NVIDIA 官方仓库 确保已正确配置 CUDA 11.8 的 APT 仓库: ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update ``` #### 步骤 3:修复依赖冲突 ```bash # 清理旧版本残留 sudo apt autoremove --purge "*nvidia*" "*cuda*" "*tensorrt*" # 修复依赖关系 sudo apt --fix-broken install # 安装 CUDA 11.8 基础工具包 sudo apt install cuda-toolkit-11-8 # 安装 TensorRT(自动匹配 CUDA 11.8 版本) sudo apt install tensorrt ``` --- ### 三、替代安装方案(若仍失败) #### 方案 1:手动下载 deb安装 从 [NVIDIA TensorRT 下载页](https://developer.nvidia.com/tensorrt) 下载与 CUDA 11.8 对应的 deb 包,例如: ```bash # 示例(具体文件名以官网为准) sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-11.8_1.0-1_amd64.deb sudo apt update sudo apt install tensorrt ``` #### 方案 2:使用 Tar 包安装 1. 下载 TensorRT 8.6.1 的 tar 包: ```bash wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz ``` 2. 解压并添加环境变量: ```bash tar -xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz echo &#39;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT-8.6.1.6/lib&#39; >> ~/.bashrc source ~/.bashrc ``` --- ### 四、关键注意事项 1. **CUDA 版本强制要求**: - TensorRT 8.6.1 必须与 CUDA 11.8 严格匹配,不可混用其他版本。 2. **系统架构一致性**: - 确保下载的包与系统架构(x86_64 / arm64)一致。 3. **WSL 兼容性**: - 若在 WSL 中操作,需确保 Windows 主机已安装 NVIDIA 驱动,并启用 GPU 支持(参考 [NVIDIA WSL 文档](https://docs.nvidia.com/cuda/wsl-user-guide/index.html))。 --- ### 五、验证安装 ```bash # 检查 TensorRT 是否安装成功 dpkg -l | grep tensorrt # 运行示例程序(需提前安装 Python 环境) python3 -c "import tensorrt; print(tensorrt.__version__)" ``` --- ### 六、总结 - **核心问题**:CUDA 版本与 TensorRT 不兼容。 - **推荐方案**:升级 CUDA11.8 + 通过官方仓库安装 TensorRT- **备选方案**:手动安装 deb 包或 tar 包(适合离线环境)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值