Ubuntu从18.04升级到22.04后安装ROS 2 Humble Desktop时遭遇dpkg错误代码(1)的求助
Ubuntu从18.04升级到22.04后安装ROS 2 Humble Desktop时遭遇dpkg错误代码(1)的求助
我完全理解你从Ubuntu 18.04逐步升级到22.04后,安装ROS2 Humble Desktop碰到这个dpkg错误有多闹心——尤其是对Linux不太熟悉的话,一串依赖报错看着就头大。咱们先从错误根源入手,你日志里最关键的问题是:update-alternatives: error: /var/lib/dpkg/alternatives/mpi corrupt: slave link same as main link /usr/bin/mpicc,也就是mpi的替代配置文件损坏了,这直接导致后续依赖链上的所有包都没法正常配置。
下面是一步步的修复方案,你可以跟着操作:
步骤1:修复损坏的mpi alternatives配置
- 先查看当前mpi替代配置的状态,确认问题:
sudo update-alternatives --query mpi - 如果确实显示配置损坏,先移除这个有问题的替代项:
sudo update-alternatives --remove-all mpi - 重新安装openmpi相关的基础包(这是ROS2依赖的mpi版本):
sudo apt install --reinstall openmpi-bin libopenmpi-dev - 重新配置mpi的替代规则,设置openmpi为默认:
(这里的sudo update-alternatives --install /usr/bin/mpicc mpicc /usr/bin/mpicc.openmpi 100 sudo update-alternatives --install /usr/bin/mpicxx mpicxx /usr/bin/mpicxx.openmpi 100100是优先级数值,确保openmpi成为默认选择即可)
步骤2:修复未完成配置的依赖包
- 尝试让dpkg重新配置所有未完成的包:
sudo dpkg --configure -a - 如果上面的命令还没解决问题,强制重新安装整个依赖链上的包:
sudo apt install --reinstall libhdf5-openmpi-dev libhdf5-mpi-dev libvtk9-dev libflann-dev libvtk9-qt-dev libpcl-dev ros-humble-pcl-conversions ros-humble-desktop
步骤3:验证安装结果
- 执行下面的命令,确认ROS2 Humble Desktop是否已正常配置:
apt list --installed | grep ros-humble-desktop - 也可以运行ROS2的基础命令,验证环境是否正常:
ros2 --version
附你遇到的完整错误日志:
Reading package lists... Done Building dependency tree... Done Reading state information... Done ros-humble-desktop is already the newest version (0.10.0-1jammy.20231207.082253). 0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade. 8 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] y Setting up libhdf5-openmpi-dev (1.10.7+repack-4ubuntu2) ... update-alternatives: error: /var/lib/dpkg/alternatives/mpi corrupt: slave link same as main link /usr/bin/mpicc dpkg: error processing package libhdf5-openmpi-dev (--configure): installed libhdf5-openmpi-dev package post-installation script subprocess returned error exit status 2 dpkg: dependency problems prevent configuration of libhdf5-mpi-dev: libhdf5-mpi-dev depends on libhdf5-openmpi-dev; however: Package libhdf5-openmpi-dev is not configured yet. dpkg: error processing package libhdf5-mpi-dev (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of libvtk9-dev: libvtk9-dev depends on libhdf5-mpi-dev; however: Package libhdf5-mpi-dev is not configured yet. dpkg: error processing package libvtk9-dev (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of libflann-dev:amd64: libflann-dev:amd64 depends on libhdf5-mpi-dev; however: Package libhdf5-mpi-dev is not configured yet. dpkg: error processing package libflann-dev:amd64 (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of libvtk9-qt-dev:amd64: libvtk9-qt-dev:amd64 depends on libvtk9-dev (= 9.1.0+really9.1.0+dfsg2-3build1); however: Package libvtk9-dev is not configured yet. dpkg: error processing package libvtk9-qt-dev:amd64 (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of libpcl-dev: libpcl-dev depends on libflann-dev; however: Package libflann-dev:amd64 is not configured yet. libpcl-dev depends on libvtk9-dev; however: Package libvtk9-dev is not configured yet. libpcl-dev depends on libvtk9-qt-dev; however: Package libvtk9-qt-dev:amd64 is not configured yet. dpkg: error processing package libpcl-dev (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of ros-humble-pcl-conversions: ros-humble-pcl-conversions depends on libpcl-dev; however: Package libpcl-dev is not configured yet. dpkg: error processing package ros-humble-pcl-conversions (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of ros-humble-desktop: ros-humble-desktop depends on ros-humble-pcl-conversions; however: Package ros-humble-pcl-conversions is not configured yet. dpkg: error processing package ros-humble-desktop (--configure): dependency problems - leaving unconfigured Processing triggers for desktop-file-utils (0.26-1ubuntu3) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for gnome-menus (3.36.0-1ubuntu3) ... Processing triggers for libglib2.0-0:amd64 (2.72.4-0ubuntu2.2) ... Processing triggers for libc-bin (2.35-0ubuntu3.6) ... Processing triggers for man-db (2.10.2-1) ... Processing triggers for libreoffice-common (1:7.3.7-0ubuntu0.22.04.4) ... Processing triggers for mailcap (3.70+nmu1ubuntu1) ... Errors were encountered while processing: libhdf5-openmpi-dev libhdf5-mpi-dev libvtk9-dev libflann-dev:amd64 libvtk9-qt-dev:amd64 libpcl-dev ros-humble-pcl-conversions ros-humble-desktop E: Sub-process /usr/bin/dpkg returned an error code (1)
备注:内容来源于stack exchange,提问作者Balen
相关产品推荐
相关产品推荐

