cinder / Cinder

Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
http://libcinder.org
Other
5.34k stars 944 forks source link

Installation of dependencies on Ubuntu 18.04 wants to remove ROS, Ignition and other packages #2232

Open pauljurczak opened 3 years ago

pauljurczak commented 3 years ago

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.

pauljurczak commented 3 years ago

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.

PetrosKataras commented 3 years ago

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?

pauljurczak commented 3 years ago

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.

CorrieVS commented 2 years ago

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