apt - 在Ubuntu 18.04上,python2软件包无法安装

分享于 

9分钟阅读

ubuntu

  繁體

问题:

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



我在Ubuntu 18.04安装以下软件包python-rosinstall-generator时遇到了一些问题:


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 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



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




答案1:

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




答案2:

解决这个问题的一种方法是,使用pip包管理器安装它,由于您将python2用于ROS,因此只需尝试以下操作:


sudo apt install python-pip


sudo pip install -U rosdep rosinstall_generator vcstool rosinstall



可以正常工作,希望这可以帮到你。



PAC  PACK  Ubuntu  APT  
相关文章