Проблема с пакетом python2, не устанавливаемым на Ubuntu 18.04

Окончательное обновление

Аналогичная проблема была зарегистрирована здесь.

Объявление о дискурсе: Сбои сборки/CI с включенным репозиторием ros-testing?


Update2

На самом деле, установка 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


Update

Когда неисправно:

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.

Поскольку я использую Docker, у меня есть старый образ, где python-rosinstall-generator был успешно установлен с apt установить 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

После выполнения apt update в Docker, он дает теперь:

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.


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 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
5
задан 26 June 2020 в 23:41

2 ответа

Похоже, что packages.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

Но установка ros-melodic- полный рабочий стол успешно завершается с использованием исходного файла Dockerfile.

2
ответ дан 30 July 2020 в 22:20

Одним из способов решения этой проблемы может быть ее установка с помощью менеджера пакетов pip. Поскольку вы используете python2 для ROS, попробуйте следующее:

sudo apt install python-pip
sudo pip install -U rosdep rosinstall_generator vcstool rosinstall

Это сработало для меня. Надеюсь, это поможет.

0
ответ дан 30 July 2020 в 22:20

Другие вопросы по тегам:

Похожие вопросы: