Installation of dependencies on Ubuntu 18.04 wants to remove ROS, Ignition and other packages
I'm following installation notes from https://libcinder.org/docs/branch/master/guides/linux-notes/ubuntu.html on Ubuntu 18.04.5, which has numerous optional packages installed, e.g. ROS, Python, Ignition, etc.. Here is what I'm getting trying to install required Cinder dependencies:
All packages are up to date.
paul@desktop:~$ sudo apt install libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev zlib1g-dev libfontconfig1-dev libcurl4-gnutls-dev libmpg123-dev libsndfile1 libsndfile1-dev libpulse-dev libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-libav gstreamer1.0-alsa gstreamer1.0-pulseaudio gstreamer1.0-plugins-bad
Reading package lists... Done
Building dependency tree
Reading state information... Done
libfontconfig1-dev is already the newest version (2.12.6-0ubuntu2).
libfontconfig1-dev set to manually installed.
libglu1-mesa-dev is already the newest version (9.0.0-2.1build1).
libxcursor-dev is already the newest version (1:1.1.15-1).
libxcursor-dev set to manually installed.
libxi-dev is already the newest version (2:1.7.9-1).
libxinerama-dev is already the newest version (2:1.1.3-1).
libxinerama-dev set to manually installed.
libxrandr-dev is already the newest version (2:1.5.1-1).
zlib1g-dev is already the newest version (1:1.2.11.dfsg-0ubuntu2).
zlib1g-dev set to manually installed.
gstreamer1.0-alsa is already the newest version (1.14.5-0ubuntu1~18.04.1).
gstreamer1.0-alsa set to manually installed.
gstreamer1.0-pulseaudio is already the newest version (1.14.5-0ubuntu1~18.04.1).
gstreamer1.0-pulseaudio set to manually installed.
libasound2-dev is already the newest version (1.1.3-5ubuntu0.5).
libgl1-mesa-dev is already the newest version (20.0.8-0ubuntu1~18.04.1).
libpulse-dev is already the newest version (1:11.1-1ubuntu7.11).
libpulse-dev set to manually installed.
libsndfile1 is already the newest version (1.0.28-4ubuntu0.18.04.1).
libsndfile1 set to manually installed.
The following packages were automatically installed and are no longer required:
cython fonts-lyx freeglut3 hddtemp ignition-gazebo2 libamd2 libarmadillo-dev libarpack2-dev libassimp-dev libassimp4
libavdevice-dev libavdevice57 libavfilter-dev libblas-dev libbtf1 libbullet-dev libbullet2.87 libcamd2 libccolamd2 libcholmod3
libcxsparse3 libdap-dev libdapserver7v5 libdart6 libdart6-collision-bullet libdart6-collision-bullet-dev libdart6-collision-ode
libdart6-collision-ode-dev libdart6-dev libdart6-external-ikfast-dev libdart6-external-odelcpsolver
libdart6-external-odelcpsolver-dev libdart6-utils libdart6-utils-dev libdart6-utils-urdf libdart6-utils-urdf-dev libepsilon-dev
libev-dev libfreenect-dev libfreenect0.5 libfreexl-dev libfyba-dev libgdal-dev libgeos-dev libgeotiff-dev libgflags-dev
libgflags2.2 libgif-dev libgl2ps-dev libgraphblas1 libgts-dev libhdf5-mpi-dev libhdf5-openmpi-dev libignition-cmake2-dev
libignition-common3-av-dev libignition-common3-core-dev libignition-common3-dev libignition-common3-events-dev
libignition-common3-graphics-dev libignition-common3-profiler libignition-common3-profiler-dev libignition-fuel-tools3
libignition-gazebo2 libignition-gazebo2-plugins libignition-gazebo4-plugins libignition-gui2 libignition-gui2-dev
libignition-gui4-dev libignition-launch libignition-math6-dev libignition-math6-eigen3-dev libignition-msgs4
libignition-msgs4-dev libignition-msgs6-dev libignition-physics libignition-physics-core-dev libignition-physics-dartsim
libignition-physics-dartsim-dev libignition-physics-dev libignition-physics-mesh-dev libignition-physics-sdf-dev
libignition-physics3-core-dev libignition-physics3-dartsim libignition-physics3-dartsim-dev libignition-physics3-dev
libignition-physics3-mesh-dev libignition-physics3-sdf-dev libignition-physics3-tpe libignition-physics3-tpe-dev
libignition-physics3-tpelib libignition-physics3-tpelib-dev libignition-plugin-dev libignition-rendering2
libignition-rendering2-core-dev libignition-rendering2-dev libignition-rendering2-ogre1 libignition-rendering2-ogre1-dev
libignition-rendering2-ogre2 libignition-rendering2-ogre2-dev libignition-rendering4-core-dev libignition-rendering4-dev
libignition-rendering4-ogre1 libignition-rendering4-ogre1-dev libignition-rendering4-ogre2 libignition-rendering4-ogre2-dev
libignition-sensors2 libignition-sensors2-air-pressure libignition-sensors2-air-pressure-dev libignition-sensors2-altimeter
libignition-sensors2-altimeter-dev libignition-sensors2-camera libignition-sensors2-camera-dev libignition-sensors2-core-dev
libignition-sensors2-depth-camera libignition-sensors2-depth-camera-dev libignition-sensors2-dev libignition-sensors2-gpu-lidar
libignition-sensors2-gpu-lidar-dev libignition-sensors2-imu libignition-sensors2-imu-dev libignition-sensors2-lidar
libignition-sensors2-lidar-dev libignition-sensors2-logical-camera libignition-sensors2-logical-camera-dev
libignition-sensors2-magnetometer libignition-sensors2-magnetometer-dev libignition-sensors2-rendering
libignition-sensors2-rendering-dev libignition-sensors2-rgbd-camera libignition-sensors2-rgbd-camera-dev
libignition-sensors4-air-pressure-dev libignition-sensors4-altimeter-dev libignition-sensors4-camera-dev
libignition-sensors4-core-dev libignition-sensors4-depth-camera libignition-sensors4-depth-camera-dev libignition-sensors4-dev
libignition-sensors4-gpu-lidar libignition-sensors4-gpu-lidar-dev libignition-sensors4-imu-dev libignition-sensors4-lidar
libignition-sensors4-lidar-dev libignition-sensors4-logical-camera-dev libignition-sensors4-magnetometer-dev
libignition-sensors4-rendering-dev libignition-sensors4-rgbd-camera libignition-sensors4-rgbd-camera-dev
libignition-sensors4-thermal-camera-dev libignition-tools-dev libignition-transport7 libignition-transport7-core-dev
libignition-transport7-dev libignition-transport7-log libignition-transport7-log-dev libignition-transport9-core-dev
libignition-transport9-dev libignition-transport9-log-dev libjs-jquery-ui libjs-sphinxdoc libjs-underscore libjson-c-dev
libjsoncpp-dev libklu1 libkml-dev libkmlconvenience1 libkmlregionator1 libkmlxsd1 liblapack-dev libldl2 libmetis5
libminizip-dev libnetcdf-cxx-legacy-dev libode-dev libode6 libogdi3.2-dev libogre-1.9-dev libogre-1.9.0v5 libogre-2.1
libogre-2.1-dev libopenjp2-7-dev libopenni-dev libopenni-sensor-pointclouds0 libopenni0 libopenni2-0 libopenni2-dev
libpcl-apps1.8 libpcl-common1.8 libpcl-dev libpcl-features1.8 libpcl-filters1.8 libpcl-io1.8 libpcl-kdtree1.8
libpcl-keypoints1.8 libpcl-ml1.8 libpcl-octree1.8 libpcl-outofcore1.8 libpcl-people1.8 libpcl-recognition1.8
libpcl-registration1.8 libpcl-sample-consensus1.8 libpcl-search1.8 libpcl-segmentation1.8 libpcl-stereo1.8 libpcl-surface1.8
libpcl-tracking1.8 libpcl-visualization1.8 libpoppler-dev libpoppler-private-dev libpostproc-dev libpq-dev libproj-dev
libprotoc-dev libprotoc10 libqhull-dev libqhull-r7 libqt5charts5 libqt5concurrent5 libqt5designer5 libqt5designercomponents5
libqt5help5 libqt5opengl5 libqt5opengl5-dev libqt5quickcontrols2-5 libqt5quickparticles5 libqt5quicktemplates2-5
libqt5quicktest5 libqt5quickwidgets5 libqt5sql5 libqt5sql5-sqlite libqt5test5 libqt5webkit5-dev librbio2 libsdformat10-dev
libsdformat8 libsdformat8-dev libspatialite-dev libspqr2 libsuitesparse-dev libsuperlu-dev libtheora-dev libumfpack5
liburiparser-dev libuv1-dev libvtk6-dev libvtk6-java libvtk6-jni libvtk6-qt-dev libvtk6.3-qt libwebp-dev libwebsockets-dev
libxerces-c-dev libxml2-dev libyaml-dev libzip-dev libzmq3-dev libzzip-0-13 openni-utils protobuf-compiler pyqt5-dev
python-attr python-autobahn python-automat python-backports.functools-lru-cache python-cairo python-cbor python-click
python-colorama python-concurrent.futures python-constantly python-cycler python-hyperlink python-incremental python-lz4
python-matplotlib python-matplotlib-data python-mpi4py python-nacl python-opencv python-opengl python-openssl python-pam
python-psutil python-pyasn1-modules python-pydot python-pyqt5 python-pyqt5.qtopengl python-pyqt5.qtsvg python-pyqt5.qtwebkit
python-qrcode python-serial python-service-identity python-snappy python-subprocess32 python-trie python-trollius
python-twisted python-twisted-bin python-twisted-core python-txaio python-tz python-u-msgpack python-ubjson python-vtk6
python-wsaccel python-zope.interface qml-module-qt-labs-folderlistmodel qml-module-qt-labs-platform qml-module-qt-labs-settings
qml-module-qtcharts qml-module-qtgraphicaleffects qml-module-qtquick-controls qml-module-qtquick-controls2
qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick-privatewidgets qml-module-qtquick-templates2
qml-module-qtquick-window2 qml-module-qtquick2 qt5-assistant qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools
qtdeclarative5-dev qtquickcontrols2-5-dev qttools5-dev qttools5-dev-tools qttools5-private-dev ros-melodic-actionlib-tutorials
ros-melodic-angles ros-melodic-bond-core ros-melodic-bondpy ros-melodic-common-msgs ros-melodic-common-tutorials
ros-melodic-compressed-depth-image-transport ros-melodic-compressed-image-transport ros-melodic-control-msgs
ros-melodic-costmap-2d ros-melodic-cv-bridge ros-melodic-diagnostic-aggregator ros-melodic-diagnostic-analysis
ros-melodic-diagnostic-common-diagnostics ros-melodic-diagnostics ros-melodic-executive-smach ros-melodic-filters
ros-melodic-find-object-2d ros-melodic-geometry ros-melodic-geometry-tutorials ros-melodic-gl-dependency
ros-melodic-image-geometry ros-melodic-image-transport ros-melodic-image-transport-plugins
ros-melodic-interactive-marker-tutorials ros-melodic-interactive-markers ros-melodic-joint-state-publisher
ros-melodic-kdl-conversions ros-melodic-kdl-parser ros-melodic-kdl-parser-py ros-melodic-laser-geometry ros-melodic-libg2o
ros-melodic-map-msgs ros-melodic-media-export ros-melodic-mk ros-melodic-move-base-msgs ros-melodic-nodelet-core
ros-melodic-nodelet-topic-tools ros-melodic-nodelet-tutorial-math ros-melodic-octomap ros-melodic-octomap-msgs
ros-melodic-pcl-conversions ros-melodic-pcl-msgs ros-melodic-pcl-ros ros-melodic-pluginlib-tutorials
ros-melodic-python-qt-binding ros-melodic-qt-dotgraph ros-melodic-qt-gui ros-melodic-qt-gui-cpp ros-melodic-qt-gui-py-common
ros-melodic-qwt-dependency ros-melodic-robot ros-melodic-robot-state-publisher ros-melodic-ros ros-melodic-ros-base
ros-melodic-ros-comm ros-melodic-ros-core ros-melodic-ros-ign-bridge ros-melodic-ros-ign-image ros-melodic-ros-tutorials
ros-melodic-rosbash ros-melodic-rosboost-cfg ros-melodic-roscpp-core ros-melodic-roscpp-tutorials ros-melodic-roscreate
ros-melodic-roslang ros-melodic-roslint ros-melodic-roslisp ros-melodic-rosmake ros-melodic-rosnode ros-melodic-rospy-tutorials
ros-melodic-roswtf ros-melodic-rqt-action ros-melodic-rqt-bag ros-melodic-rqt-bag-plugins ros-melodic-rqt-common-plugins
ros-melodic-rqt-console ros-melodic-rqt-dep ros-melodic-rqt-graph ros-melodic-rqt-gui ros-melodic-rqt-gui-cpp
ros-melodic-rqt-gui-py ros-melodic-rqt-image-view ros-melodic-rqt-launch ros-melodic-rqt-logger-level ros-melodic-rqt-moveit
ros-melodic-rqt-msg ros-melodic-rqt-nav-view ros-melodic-rqt-plot ros-melodic-rqt-pose-view ros-melodic-rqt-publisher
ros-melodic-rqt-py-common ros-melodic-rqt-py-console ros-melodic-rqt-reconfigure ros-melodic-rqt-robot-dashboard
ros-melodic-rqt-robot-monitor ros-melodic-rqt-robot-steering ros-melodic-rqt-runtime-monitor ros-melodic-rqt-service-caller
ros-melodic-rqt-shell ros-melodic-rqt-srv ros-melodic-rqt-tf-tree ros-melodic-rqt-top ros-melodic-rqt-topic ros-melodic-rqt-web
ros-melodic-rtabmap ros-melodic-self-test ros-melodic-shape-msgs ros-melodic-smach ros-melodic-smach-msgs ros-melodic-smach-ros
ros-melodic-stereo-msgs ros-melodic-tf ros-melodic-tf-conversions ros-melodic-tf2-eigen ros-melodic-tf2-kdl
ros-melodic-theora-image-transport ros-melodic-turtle-actionlib ros-melodic-turtle-tf ros-melodic-turtle-tf2
ros-melodic-turtlesim ros-melodic-urdf-parser-plugin ros-melodic-urdfdom-py ros-melodic-visualization-marker-tutorials
ros-melodic-voxel-grid ros-melodic-webkit-dependency ros-melodic-xacro sbcl sdformat8-sdf tcl tcl-dev tcl-vtk6 tcl8.6-dev tk
tk-dev tk8.6-dev unixodbc-dev vtk6
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
freepats gir1.2-gst-plugins-bad-1.0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 libdca0 libde265-0 libdvdnav4 libdvdread4
libfaad2 libflac-dev libfluidsynth1 libgssdp-1.0-3 libgstreamer-opencv1.0-0 libgstreamer-plugins-bad1.0-0
libgstreamer-plugins-good1.0-dev libgupnp-1.0-4 libgupnp-igd-1.0-4 libkate1 liblilv-0-0 libmjpegutils-2.1-0 libmms0 libmodplug1
libmpcdec6 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libnice10 libofa0 liborc-0.4-dev liborc-0.4-dev-bin libout123-0 libserd-0-0
libsord-0-0 libsoundtouch1 libspandsp2 libsratom-0-0 libsrtp2-1 libvo-aacenc0 libvo-amrwbenc0 libvorbis-dev libwildmidi-config
libwildmidi2 libzbar0
Suggested packages:
frei0r-plugins libcurl4-doc libgnutls28-dev libidn11-dev libkrb5-dev librtmp-dev libssh2-1-dev fluidr3mono-gm-soundfont
| timgm6mb-soundfont | fluid-soundfont-gm gstreamer1.0-doc liborc-0.4-doc serdi sordi
The following packages will be REMOVED:
ignition-blueprint ignition-dome libcurl4-openssl-dev libignition-fuel-tools3-dev libignition-fuel-tools5-dev
libignition-gazebo2-dev libignition-gazebo4-dev libignition-launch-dev libignition-launch3-dev ros-melodic-desktop
ros-melodic-librviz-tutorial ros-melodic-resource-retriever ros-melodic-ros-ign ros-melodic-ros-ign-gazebo
ros-melodic-ros-ign-gazebo-demos ros-melodic-rqt-robot-plugins ros-melodic-rqt-rviz ros-melodic-rtabmap-ros ros-melodic-rviz
ros-melodic-rviz-plugin-tutorials ros-melodic-rviz-python-tutorial ros-melodic-urdf-tutorial
ros-melodic-visualization-tutorials ros-melodic-viz
The following NEW packages will be installed:
freepats gir1.2-gst-plugins-bad-1.0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-libav
gstreamer1.0-plugins-bad libcurl4-gnutls-dev libdca0 libde265-0 libdvdnav4 libdvdread4 libfaad2 libflac-dev libfluidsynth1
libgssdp-1.0-3 libgstreamer-opencv1.0-0 libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-bad1.0-dev
libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer1.0-dev libgupnp-1.0-4 libgupnp-igd-1.0-4
libkate1 liblilv-0-0 libmjpegutils-2.1-0 libmms0 libmodplug1 libmpcdec6 libmpeg2encpp-2.1-0 libmpg123-dev libmplex2-2.1-0
libnice10 libofa0 liborc-0.4-dev liborc-0.4-dev-bin libout123-0 libserd-0-0 libsndfile1-dev libsord-0-0 libsoundtouch1
libspandsp2 libsratom-0-0 libsrtp2-1 libvo-aacenc0 libvo-amrwbenc0 libvorbis-dev libwildmidi-config libwildmidi2 libzbar0
0 upgraded, 50 newly installed, 24 to remove and 0 not upgraded.
Need to get 35.8 MB of archives.
After this operation, 26.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
paul@desktop:~$
I don't want any changes in my ROS and Ignition installation. What should I do? BTW, installation on another Ubuntu 20.04 system without ROS and Ignition, went fine.
Trying minimal build with:
sudo apt install libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev \
zlib1g-dev libfontconfig1-dev libcurl4-gnutls-dev
produces the same list of packages to be removed.
This doesn't seem to have to do with Cinder itself but more with how package dependencies are resolved in Ubuntu. It looks like there is a dependency somewhere that is no longer satisfied and the system wants to remove the hanging packages. You could try aptitude why-not to see if you can get more info about the root reason. Also, what do you get if you just run sudo apt update?
The problem is caused by libcurl4-gnutls-dev. I already have libcurl4-openssl-dev installed and Cinder builds fine with it. Perhaps libcurl4-openssl-dev could be listed as an option to libcurl4-gnutls-dev on the list of dependencies.
I had the same issue with libcurl4-gnutls-dev and also resolved by using my existing libcurl4-openssl-dev. Some indication of this option would have saved a lot of time - I believe libcurl4-openssl-dev is the default package on Ubuntu 18.04+.