micro_ros_setup icon indicating copy to clipboard operation
micro_ros_setup copied to clipboard

Ubuntu 24.04 - rosdep fails on libcurl4-dev

Open SpaceBod opened this issue 6 months ago • 0 comments

Issue

When building micro_ros_setup for ROS 2 Jazzy on Ubuntu 24.04 Noble (e.g. using the ros:jazzy-ros-core-noble Docker image), I ran into a dependency resolution issue caused by a change in how Ubuntu 24.04 handles libcurl4-dev.

Since this may affect other users, I wanted to document the problem and the workaround to help others save time.

  • Hardware description: Custom Docker container - ros:jazzy-ros-core-noble on arm64
  • Installation type: micro_ros_setup
  • Version or commit hash: jazzy - latest (June 2025)

Steps to reproduce the issue

  1. Use ros:jazzy-ros-core-noble as base image in Dockerfile
  2. Build micro_ros_setup following docs:
RUN . /opt/ros/jazzy/setup.sh && \
    mkdir uros_ws && cd uros_ws && \
    git clone -b jazzy https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup && \
    rosdep update && rosdep install --from-paths src --ignore-src -y

See rosdep fail:

E: Unable to locate package libcurl4-openssl-dev
ERROR: the following rosdeps failed to install
  apt: command [apt-get install -y libcurl4-openssl-dev] failed

Expected behavior

rosdep install resolves dependencies on Noble and build proceeds.

Actual behavior

Fails because in Noble libcurl4-dev is virtual; user must manually install libcurl4-openssl-dev first.

Additional information

Workaround

RUN apt-get update && apt-get install -y --no-install-recommends libcurl4-openssl-dev Then the build completes as expected:

RUN . /opt/ros/jazzy/setup.sh && \
    mkdir uros_ws && cd uros_ws && \
    git clone -b jazzy https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup && \
    rosdep update && rosdep install --from-paths src --ignore-src -y && \
    colcon build && \
    . install/local_setup.sh && \
    ros2 run micro_ros_setup create_agent_ws.sh && \
    ros2 run micro_ros_setup build_agent.sh

Possible solution - add os-specific dependency entry for Ubuntu 24.04, or note in docs.

SpaceBod avatar Jun 24 '25 14:06 SpaceBod