不用联网也能装!手把手教你用dpkg在Jetson-AGX-Orin上离线部署nvidia-jetpack

张开发
2026/4/12 10:14:09 15 分钟阅读

分享文章

不用联网也能装!手把手教你用dpkg在Jetson-AGX-Orin上离线部署nvidia-jetpack
深度解析Jetson-AGX-Orin离线部署nvidia-jetpack全流程实战在嵌入式开发领域NVIDIA Jetson-AGX-Orin凭借其强大的AI计算能力已成为边缘计算的首选平台之一。然而在实际工业场景中设备往往部署在严格隔离的网络环境中这使得传统的在线安装方式变得不可行。本文将彻底解决这一痛点通过dpkg工具实现nvidia-jetpack的完整离线部署方案。1. 环境准备与离线包制作1.1 基础系统配置首先需要一台能够连接互联网的Jetson-AGX-Orin作为种子机建议使用官方出厂镜像进行初始化# 检查当前系统版本 cat /etc/nv_tegra_release # 更新可用软件包列表 sudo apt-get update关键点确保基础系统与目标离线设备完全一致包括Ubuntu版本通常为18.04或20.04L4TLinux for Tegra版本内核配置1.2 配置APT缓存策略默认情况下APT安装后会自动清理下载的deb包。我们需要修改配置永久保留这些文件# 创建APT缓存保留配置 echo Binary::apt::APT::Keep-Downloaded-Packages 1; | sudo tee /etc/apt/apt.conf.d/10apt-keep-downloads # 清理旧缓存 sudo apt-get clean注意此配置将导致/var/cache/apt/archives目录不断增长建议定期清理不再需要的deb包。1.3 完整下载jetpack组件执行完整安装命令捕获所有依赖sudo apt-get install -y --download-only nvidia-jetpack常见组件包括nvidia-cudatensorrtvisionworkscudnn各种NVIDIA库和工具链2. 离线包处理与验证2.1 打包缓存文件将所有下载的deb包归档为一个便携文件cd /var/cache/apt/archives sudo tar -zcvf jetpack-offline-$(date %Y%m%d).tar.gz *.deb文件结构示例jetpack-offline-20230615.tar.gz ├── nvidia-jetpack_4.6.1_arm64.deb ├── libcudnn8_8.2.1.32-1cuda11.4_arm64.deb ├── tensorrt_8.0.1.6-1cuda11.3_arm64.deb └── ...2.2 离线包完整性检查在传输到目标设备前建议进行验证# 列出包内所有文件 tar -ztvf jetpack-offline-20230615.tar.gz | wc -l # 检查关键组件是否存在 tar -ztvf jetpack-offline-20230615.tar.gz | grep -E jetpack|cuda|cudnn|tensorrt3. 目标设备离线安装3.1 环境准备将打包文件传输到目标设备后# 创建缓存目录 sudo mkdir -p /var/cache/apt/archives # 解压离线包 sudo tar -zxvf jetpack-offline-20230615.tar.gz -C /var/cache/apt/archives3.2 使用dpkg批量安装进入缓存目录执行安装cd /var/cache/apt/archives sudo dpkg -i *.deb典型问题及解决方案错误类型解决方案示例命令依赖缺失手动安装缺失依赖sudo dpkg -i libxxx.deb文件冲突移除冲突包sudo apt-get remove libyyy版本不匹配指定具体版本sudo dpkg -i package_1.2.3.deb3.3 依赖关系修复即使使用离线安装仍可能遇到依赖问题# 尝试自动修复依赖 sudo apt-get -f install --allow-unauthenticated重要提示在完全离线环境中--allow-unauthenticated是必要的但会跳过签名验证请确保包来源可信。4. 验证与问题排查4.1 基础功能验证安装完成后进行核心组件检查# 检查CUDA版本 nvcc --version # 检查cuDNN cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 # 检查TensorRT dpkg -l | grep tensorrt4.2 常见问题解决方案问题1dpkg: error processing package xxx (--install)解决# 查看详细错误 sudo tail -n 50 /var/log/dpkg.log # 通常需要先安装依赖 sudo dpkg -i dependency_package.deb问题2E: Unmet dependencies. Try apt --fix-broken install解决# 在离线环境中手动修复 sudo dpkg --force-all -i problematic_package.deb问题3硬件加速不工作诊断步骤检查GPU状态sudo tegrastats验证CUDA示例cd /usr/local/cuda/samples sudo make测试推理性能使用NVIDIA提供的示例模型5. 高级技巧与优化5.1 创建本地APT仓库对于需要频繁部署的场景可以建立本地仓库# 安装必要工具 sudo apt-get install -y dpkg-dev # 创建Packages文件 cd /var/cache/apt/archives dpkg-scanpackages . /dev/null | gzip -9c Packages.gz然后在目标设备上配置echo deb [trustedyes] file:/var/cache/apt/archives ./ | sudo tee /etc/apt/sources.list.d/local.list sudo apt-get update5.2 最小化安装方案对于资源受限环境可以选择性安装组件# 仅安装核心组件 sudo apt-get install -y --download-only \ nvidia-jetpack-runtime \ nvidia-cuda \ nvidia-tensorrt5.3 版本兼容性矩阵常见Jetpack版本与组件对应关系Jetpack版本CUDA版本cuDNN版本TensorRT版本4.610.28.28.05.011.48.48.45.111.48.58.5在实际项目中我们发现使用tar.gz打包方式虽然简单但当遇到复杂依赖时采用apt-offline工具能提供更完整的解决方案。特别是在需要处理数百个依赖包的大型项目中建立本地仓库的方式显著提高了部署效率。

更多文章