最后更新
已报告类似问题这里。
话语公告:启用 ros-testing 存储库后构建/CI 会失败吗?
更新2
实际上,在我的案例中,ROS Melodic 安装最终失败了:
Errors were encountered while processing:
/tmp/apt-dpkg-install-lRVV2P/0767-python-catkin-pkg-modules_0.4.22-1_all.deb
/tmp/apt-dpkg-install-lRVV2P/0794-python-rospkg-modules_1.2.8-1_all.deb
/tmp/apt-dpkg-install-lRVV2P/0796-python-rosdistro-modules_0.8.2-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
更多日志:
Selecting previously unselected package python-catkin-pkg-modules.
Preparing to unpack .../0767-python-catkin-pkg-modules_0.4.22-1_all.deb ...
Unpacking python-catkin-pkg-modules (0.4.22-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-lRVV2P/0767-python-catkin-pkg-modules_0.4.22-1_all.deb (--unpack):
trying to overwrite '/usr/lib/python2.7/dist-packages/catkin_pkg/__init__.py', which is also in package python-catkin-pkg 0.3.9-1
Selecting previously unselected package python-rospkg-modules.
Preparing to unpack .../0794-python-rospkg-modules_1.2.8-1_all.deb ...
Unpacking python-rospkg-modules (1.2.8-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-lRVV2P/0794-python-rospkg-modules_1.2.8-1_all.deb (--unpack):
trying to overwrite '/usr/lib/python2.7/dist-packages/rospkg/__init__.py', which is also in package python-rospkg 1.1.4-1
Selecting previously unselected package python-rosdistro-modules.
Preparing to unpack .../0796-python-rosdistro-modules_0.8.2-1_all.deb ...
Unpacking python-rosdistro-modules (0.8.2-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-lRVV2P/0796-python-rosdistro-modules_0.8.2-1_all.deb (--unpack):
trying to overwrite '/usr/lib/python2.7/dist-packages/rosdistro/__init__.py', which is also in package python-rosdistro 0.6.6-1
更新
出现故障时:
The following packages have unmet dependencies:
python-rosinstall-generator : Depends: python-catkin-pkg (>= 0.1.28) but it is not going to be installed
Depends: python-pkg-resources but it is not going to be installed
Depends: python-rosdistro (>= 0.7.3) but it is not going to be installed
Depends: python-rospkg but it is not going to be installed
Depends: python-yaml but it is not going to be installed
Depends: python2 (< 2.8) but it is not installable
Depends: python2 (>= 2.7) but it is not installable
Depends: python2:any (>= 2.6.6-7~) but it is not installable
E: Unable to correct problems, you have held broken packages.
apt-cache policy python-rosinstall-generator
python-rosinstall-generator:
Installed: (none)
Candidate: 0.1.20-1
Version table:
0.1.20-1 500
500 http://packages.ros.org/ros/ubuntu bionic/main amd64 Packages
500 http://packages.ros.org/ros/ubuntu bionic/main i386 Packages
0.1.13-3 500
500 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu bionic/universe i386 Packages
apt-cache policy python3-rosinstall-generator
python3-rosinstall-generator:
Installed: (none)
Candidate: 0.1.20-1
Version table:
0.1.20-1 500
500 http://packages.ros.org/ros/ubuntu bionic/main amd64 Packages
500 http://packages.ros.org/ros/ubuntu bionic/main i386 Packages
0.1.13-3 500
500 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu bionic/universe i386 Packages
python-rosinstall-generator
我在 Ubuntu 18.04 上安装以下软件包时遇到一些问题apt
:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
python-rosinstall-generator : Depends: python2 (< 2.8) but it is not installable
Depends: python2 (>= 2.7) but it is not installable
Depends: python2:any (>= 2.6.6-7~) but it is not installable
E: Unable to correct problems, you have held broken packages.
python-rosinstall-generator
由于我使用的是 Docker,因此我有一个已成功安装的旧映像apt install python-rosinstall-generator
:
apt-cache depends python-rosinstall-generator
python-rosinstall-generator
Depends: python
Depends: python
Depends: python-catkin-pkg
Depends: python-pkg-resources
Depends: python-rosdistro
Depends: python-rospkg
Depends: python-yaml
Depends: <python:any>
python:i386
python
Depends: <python-argparse>
libpython2.7-stdlib
Conflicts: python3-rosinstall-generator
在 Docker 中执行之后apt update
,现在给出:
apt-cache depends python-rosinstall-generator
python-rosinstall-generator
Depends: python-catkin-pkg
Depends: python-pkg-resources
Depends: python-rosdistro
Depends: python-rospkg
Depends: python-yaml
Depends: <python2>
Depends: <python2>
Depends: <python2:any>
Depends: <python-argparse>
libpython2.7-stdlib
Conflicts: python3-rosinstall-generator
并且python2
无法安装包:
apt install python2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package python2 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'python2' has no installation candidate
看起来最近的更新破坏了某些东西,并引入了python2
包依赖关系。
docker文件
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --yes \
build-essential \
software-properties-common \
pkg-config \
cmake \
g++
RUN add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
RUN echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list
RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
RUN apt-get update && apt-get install --yes python-rosinstall-generator
答案1
看起来像这样软件包.ros.org存储库提供的python3-rosinstall-generator
包与 Ubuntu 18.04 LTS 不兼容。
使用没有此类存储库的 Dockerfile 创建容器成功:
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --yes \
build-essential \
software-properties-common \
pkg-config \
cmake \
g++
RUN apt-get update && apt-get install --yes python-rosinstall-generator
但是使用您原始的 Dockerfile 安装ros-melodic-desktop-full
已经成功结束。
答案2
解决此问题的一种方法可能是使用 pip 包管理器进行安装。由于您使用的是 ROS 的 python2,请尝试以下操作:
sudo apt install python-pip
sudo pip install -U rosdep rosinstall_generator vcstool rosinstall
这对我有用。希望这对你有帮助。