Skip to content

Cleanup dependencies #874

@smihael

Description

@smihael

I noticed that installing ros-humble-ros-gz-sim in ros:humble-ros-base pulls huge amount of development utilities, development headers and other packages that are not necessary in deployment.

You can try running apt install ros-humble-ros-gz-sim in the ros:humble-ros-base docker (or on a clean ROS install)

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  adwaita-icon-theme alsa-topology-conf alsa-ucm-conf at-spi2-core autoconf automake autotools-dev avahi-daemon bind9-host bind9-libs comerr-dev dbus dbus-user-session dconf-gsettings-backend dconf-service dmsetup file fonts-lato geoclue-2.0 gfortran gfortran-11 gir1.2-glib-2.0 glib-networking
  glib-networking-common glib-networking-services gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme humanity-icon-theme i965-va-driver ibverbs-providers icu-devtools ignition-tools ignition-transport11-cli iio-sensor-proxy intel-media-va-driver javascript-common krb5-multidev
  libaacs0 libaom3 libapparmor1 libargon2-1 libasound2 libasound2-data libass9 libassimp-dev libassimp5 libasyncns0 libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3 libavahi-core7 libavahi-glib1 libavc1394-0 libavcodec-dev
  libavcodec58 libavdevice-dev libavdevice58 libavfilter-dev libavfilter7 libavformat-dev libavformat58 libavutil-dev libavutil56 libbdplus0 libblkid-dev libbluray2 libboost-all-dev libboost-atomic-dev libboost-atomic1.74-dev libboost-atomic1.74.0 libboost-chrono-dev libboost-chrono1.74-dev
  libboost-chrono1.74.0 libboost-container-dev libboost-container1.74-dev libboost-container1.74.0 libboost-context-dev libboost-context1.74-dev libboost-context1.74.0 libboost-coroutine-dev libboost-coroutine1.74-dev libboost-coroutine1.74.0 libboost-date-time-dev libboost-date-time1.74-dev
  libboost-date-time1.74.0 libboost-dev libboost-exception-dev libboost-exception1.74-dev libboost-fiber-dev libboost-fiber1.74-dev libboost-fiber1.74.0 libboost-filesystem-dev libboost-filesystem1.74-dev libboost-filesystem1.74.0 libboost-graph-dev libboost-graph-parallel-dev
  libboost-graph-parallel1.74-dev libboost-graph-parallel1.74.0 libboost-graph1.74-dev libboost-graph1.74.0 libboost-iostreams-dev libboost-iostreams1.74-dev libboost-iostreams1.74.0 libboost-locale-dev libboost-locale1.74-dev libboost-locale1.74.0 libboost-log-dev libboost-log1.74-dev
  libboost-log1.74.0 libboost-math-dev libboost-math1.74-dev libboost-math1.74.0 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.74-dev libboost-mpi-python1.74.0 libboost-mpi1.74-dev libboost-mpi1.74.0 libboost-nowide-dev libboost-nowide1.74-dev libboost-nowide1.74.0
  libboost-numpy-dev libboost-numpy1.74-dev libboost-numpy1.74.0 libboost-program-options-dev libboost-program-options1.74-dev libboost-program-options1.74.0 libboost-python-dev libboost-python1.74-dev libboost-python1.74.0 libboost-random-dev libboost-random1.74-dev libboost-random1.74.0
  libboost-regex-dev libboost-regex1.74-dev libboost-regex1.74.0 libboost-serialization-dev libboost-serialization1.74-dev libboost-serialization1.74.0 libboost-stacktrace-dev libboost-stacktrace1.74-dev libboost-stacktrace1.74.0 libboost-system-dev libboost-system1.74-dev libboost-system1.74.0
  libboost-test-dev libboost-test1.74-dev libboost-test1.74.0 libboost-thread-dev libboost-thread1.74-dev libboost-thread1.74.0 libboost-timer-dev libboost-timer1.74-dev libboost-timer1.74.0 libboost-tools-dev libboost-type-erasure-dev libboost-type-erasure1.74-dev libboost-type-erasure1.74.0
  libboost-wave-dev libboost-wave1.74-dev libboost-wave1.74.0 libboost1.74-dev libboost1.74-tools-dev libbs2b0 libbsd-dev libcaca0 libcaf-openmpi-3 libcairo-gobject2 libcbor0.8 libccd-dev libccd2 libcdio-cdda2 libcdio-paranoia2 libcdio19 libchromaprint1 libcoarrays-dev libcoarrays-openmpi-dev
  libcodec2-1.0 libcolord2 libcryptsetup12 libcups2 libcurl4-openssl-dev libdaemon0 libdart-collision-bullet-dev libdart-collision-bullet6.12 libdart-collision-ode-dev libdart-collision-ode6.12 libdart-dev libdart-external-convhull-3d-dev libdart-external-ikfast-dev
  libdart-external-odelcpsolver-dev libdart-external-odelcpsolver6.12 libdart-utils-dev libdart-utils-urdf-dev libdart-utils-urdf6.12 libdart-utils6.12 libdart6.12 libdav1d5 libdc1394-25 libdconf1 libdecor-0-0 libdecor-0-plugin-1-cairo libdevmapper1.02.1 libdouble-conversion3 libdraco-dev
  libdraco4 libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libegl-dev libegl-mesa0 libegl1 libelf1 libepoxy0 libevdev2 libevent-2.1-7 libevent-core-2.1-7 libevent-dev libevent-extra-2.1-7 libevent-openssl-2.1-7 libevent-pthreads-2.1-7 libfabric1
  libfcl-dev libfcl0.7 libffi-dev libfido2-1 libflac8 libflite1 libfreeimage3 libgbm1 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgflags-dev libgflags2.2 libgfortran-11-dev libgirepository-1.0-1 libgl-dev libgl1 libgl1-amber-dri libgl1-mesa-dri libglapi-mesa libglib2.0-bin
  libglib2.0-data libglib2.0-dev libglib2.0-dev-bin libglu1-mesa libglu1-mesa-dev libglvnd0 libglx-dev libglx-mesa0 libglx0 libgme0 libgsm1 libgssrpc4 libgtk-3-0 libgtk-3-bin libgtk-3-common libgts-dev libgudev-1.0-0 libhwloc-dev libhwloc-plugins libhwloc15 libibverbs-dev libibverbs1 libicu-dev
  libiec61883-0 libigdgmm12 libignition-cmake2-dev libignition-common4 libignition-common4-av libignition-common4-av-dev libignition-common4-core-dev libignition-common4-dev libignition-common4-events libignition-common4-events-dev libignition-common4-graphics libignition-common4-graphics-dev
  libignition-common4-profiler libignition-common4-profiler-dev libignition-fuel-tools7 libignition-fuel-tools7-dev libignition-gazebo6 libignition-gazebo6-dev libignition-gazebo6-plugins libignition-gui6 libignition-gui6-dev libignition-math6 libignition-math6-dev libignition-math6-eigen3-dev
  libignition-msgs8 libignition-msgs8-dev libignition-physics5 libignition-physics5-bullet libignition-physics5-bullet-dev libignition-physics5-core-dev libignition-physics5-dartsim libignition-physics5-dartsim-dev libignition-physics5-dev libignition-physics5-heightmap-dev
  libignition-physics5-mesh-dev libignition-physics5-sdf-dev libignition-physics5-tpe libignition-physics5-tpe-dev libignition-physics5-tpelib libignition-physics5-tpelib-dev libignition-plugin libignition-plugin-dev libignition-rendering6 libignition-rendering6-core-dev
  libignition-rendering6-dev libignition-rendering6-ogre1 libignition-rendering6-ogre1-dev libignition-rendering6-ogre2 libignition-rendering6-ogre2-dev libignition-sensors6 libignition-sensors6-air-pressure libignition-sensors6-air-pressure-dev libignition-sensors6-altimeter
  libignition-sensors6-altimeter-dev libignition-sensors6-boundingbox-camera libignition-sensors6-boundingbox-camera-dev libignition-sensors6-camera libignition-sensors6-camera-dev libignition-sensors6-core-dev libignition-sensors6-depth-camera libignition-sensors6-depth-camera-dev
  libignition-sensors6-dev libignition-sensors6-force-torque libignition-sensors6-force-torque-dev libignition-sensors6-gpu-lidar libignition-sensors6-gpu-lidar-dev libignition-sensors6-imu libignition-sensors6-imu-dev libignition-sensors6-lidar libignition-sensors6-lidar-dev
  libignition-sensors6-logical-camera libignition-sensors6-logical-camera-dev libignition-sensors6-magnetometer libignition-sensors6-magnetometer-dev libignition-sensors6-navsat libignition-sensors6-navsat-dev libignition-sensors6-rendering libignition-sensors6-rendering-dev
  libignition-sensors6-rgbd-camera libignition-sensors6-rgbd-camera-dev libignition-sensors6-segmentation-camera libignition-sensors6-segmentation-camera-dev libignition-sensors6-thermal-camera libignition-sensors6-thermal-camera-dev libignition-tools-dev libignition-transport11
  libignition-transport11-core-dev libignition-transport11-dev libignition-transport11-log libignition-transport11-log-dev libignition-transport11-parameters libignition-transport11-parameters-dev libignition-utils1 libignition-utils1-cli-dev libignition-utils1-dev libilmbase25 libinput-bin
  libinput10 libip4tc2 libjack-jackd2-0 libjs-jquery-ui libjson-c5 libjson-glib-1.0-0 libjson-glib-1.0-common libjsoncpp-dev libjxr0 libkadm5clnt-mit12 libkadm5srv-mit12 libkdb5-10 libkmod2 libkrb5-dev liblcms2-2 liblilv-0-0 libllvm15 liblmdb0 libltdl-dev libmagic-mgc libmagic1 libmaxminddb0
  libmbim-glib4 libmbim-proxy libmd-dev libmd4c0 libmfx1 libminizip-dev libminizip1 libmm-glib0 libmount-dev libmp3lame0 libmpg123-0 libmtdev1 libmysofa1 libnl-3-200 libnl-3-dev libnl-genl-3-200 libnl-route-3-200 libnl-route-3-dev libnorm-dev libnorm1 libnotify4 libnss-mdns libnss-systemd
  libnuma-dev libnuma1 liboctomap-dev liboctomap1.9 libode-dev libode8 libogg0 libogre-1.9-dev libogre-1.9.0v5 libogre-next-dev libogrenexthlmspbs2.2.5 libogrenexthlmsunlit2.2.5 libogrenextmain2.2.5 libogrenextmeshlodgenerator2.2.5 libogrenextoverlay2.2.5 libogrenextplanarreflections2.2.5
  libogrenextsceneformat2.2.5 libopenal-data libopenal1 libopenexr25 libopengl0 libopenjp2-7 libopenmpi-dev libopenmpi3 libopenmpt0 libopus0 libpam-systemd libpciaccess0 libpcre16-3 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpcsclite1
  libpgm-5.3-0 libpgm-dev libpmix-dev libpmix2 libpocketsphinx3 libpolkit-agent-1-0 libpolkit-gobject-1-0 libpostproc-dev libpostproc55 libprotobuf-dev libprotobuf-lite23 libprotobuf23 libprotoc-dev libprotoc23 libproxy1v5 libpsm-infinipath1 libpsm2-2 libpthread-stubs0-dev libpulse0 libqmi-glib5
  libqmi-proxy libqt5charts5 libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5gui5 libqt5location5 libqt5location5-plugins libqt5network5 libqt5opengl5 libqt5opengl5-dev libqt5positioning5 libqt5positioning5-plugins libqt5positioningquick5 libqt5printsupport5 libqt5qml5 libqt5qmlmodels5
  libqt5qmlworkerscript5 libqt5quick5 libqt5quickcontrols2-5 libqt5quickparticles5 libqt5quickshapes5 libqt5quicktemplates2-5 libqt5quicktest5 libqt5quickwidgets5 libqt5sql5 libqt5sql5-sqlite libqt5svg5 libqt5test5 libqt5widgets5 libqt5xml5 librabbitmq4 libraw1394-11 libraw20 librdmacm1
  librsvg2-2 librsvg2-common librubberband2 libruby3.0 libsamplerate0 libsdformat12 libsdformat12-dev libsdl2-2.0-0 libselinux1-dev libsensors-config libsensors5 libsepol-dev libserd-0-0 libshine3 libsigsegv2 libslang2 libsnappy1v5 libsndfile1 libsndio7.0 libsodium-dev libsodium23 libsord-0-0
  libsoup2.4-1 libsoup2.4-common libsoxr0 libspeex1 libsphinxbase3 libsratom-0-0 libsrt1.4-gnutls libssh-gcrypt-4 libswresample-dev libswresample3 libswscale-dev libswscale5 libsystemd0 libtcl8.6 libtheora0 libtool libtwolame0 libucx0 libudev1 libudfread0 liburdfdom-dev liburdfdom-headers-dev
  liburdfdom-model-state3.0 liburdfdom-model3.0 liburdfdom-sensor3.0 liburdfdom-world3.0 libusb-1.0-0 libva-drm2 libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx7 libvulkan-dev libvulkan1 libwacom-bin libwacom-common libwacom9 libwayland-client0
  libwayland-cursor0 libwayland-egl1 libwayland-server0 libwebpmux3 libx11-dev libx11-xcb1 libx264-163 libx265-199 libxau-dev libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-present0 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-sync1
  libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 libxcb1-dev libxcomposite1 libxcursor1 libxdamage1 libxdmcp-dev libxext-dev libxfixes3 libxi6 libxinerama1 libxkbcommon-x11-0 libxkbcommon0 libxml2-dev libxmuu1 libxnvctrl0 libxrandr2 libxshmfence1 libxss1 libxtst6 libxv1
  libxvidcore4 libxxf86vm1 libzimg2 libzip-dev libzip4 libzmq3-dev libzmq5 libzvbi-common libzvbi0 libzzip-0-13 m4 mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers modemmanager mpi-default-bin mpi-default-dev networkd-dispatcher ocl-icd-libopencl1 openmpi-bin openmpi-common openssh-client
  pkexec pocketsphinx-en-us policykit-1 polkitd protobuf-compiler python3-gi qml-module-qt-labs-folderlistmodel qml-module-qt-labs-platform qml-module-qt-labs-settings qml-module-qtcharts qml-module-qtgraphicaleffects qml-module-qtlocation qml-module-qtpositioning qml-module-qtqml
  qml-module-qtqml-models2 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-gtk-platformtheme qt5-qmake qt5-qmake-bin
  qt5-qmltooling-plugins qtbase5-dev qtbase5-dev-tools qtchooser qtdeclarative5-dev qtdeclarative5-dev-tools qtquickcontrols2-5-dev qttranslations5-l10n rake ruby ruby-net-telnet ruby-rubygems ruby-webrick ruby-xmlrpc ruby3.0 rubygems-integration sdformat12-sdf session-migration shared-mime-info
  systemd systemd-hwe-hwdb systemd-sysv systemd-timesyncd tcl tcl8.6 ubuntu-mono udev unzip usb-modeswitch usb-modeswitch-data uuid-dev va-driver-all vdpau-driver-all wpasupplicant x11proto-dev xauth xkb-data xorg-sgml-doctools xtrans-dev zip
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc gettext avahi-autoipd doc-base gfortran-multilib gfortran-doc gfortran-11-multilib gfortran-11-doc i965-va-driver-shaders apache2 | lighttpd | httpd krb5-doc libasound2-plugins alsa-utils libcuda1 libnvcuvid1 libnvidia-encode1 libbluray-bdj
  libboost-doc libboost1.74-doc gccxml libboost-contract1.74-dev libmpfrc++-dev libntl-dev xsltproc doxygen docbook-xml docbook-xsl default-jdk fop colord cups-common libcurl4-doc libidn11-dev libldap2-dev librtmp-dev libssh2-1-dev libgirepository1.0-dev libglib2.0-doc krb5-user gvfs libgts-doc
  libhwloc-contrib-plugins icu-doc jackd2 libjs-jquery-ui-docs liblcms2-utils libtool-doc mmdb-bin libnorm-doc gnome-shell | notification-daemon avahi-autoipd | zeroconf ogre-1.9-doc libogre-1.9.0v5-dbg ogre-next-doc libportaudio2 openmpi-doc opus-tools pciutils pcscd pulseaudio
  qt5-image-formats-plugins qtwayland5 libraw1394-doc librsvg2-bin xdg-utils lm-sensors serdi sndiod sordi speex gcj-jdk libx11-doc libxcb-doc libxext-doc m4-doc iw | wireless-tools opencl-icd keychain libpam-ssh monkeysphere ssh-askpass protobuf-mode-el default-libmysqlclient-dev firebird-dev
  libpq-dev unixodbc-dev ri ruby-dev bundler systemd-container libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0 tcl-tclreadline comgt wvdial libvdpau-va-gl1 wpagui libengine-pkcs11-openssl 
....
2 upgraded, 704 newly installed, 0 to remove and 5 not upgraded.
Need to get 337 MB of archives.
After this operation, 1591 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

The dependencies in package metadata should be reviewed as most of dev packages are necessary just as a build time dependency but not as runtime dependency and should not really be installed. Most of these come from the fact, that libignition-gazebo6-dev is listed as dependency rather than libignition-gazebo6.

I attached the output of apt-rdepends ros-humble-ros-gz-sim.

rdepends.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Inbox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions