micro-ROS / micro-ROS/micro_ros_setup

Ubuntu 24.04 - rosdep fails on libcurl4-dev

Open
#782 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
509
Forks
183
Avg merge
22h 26m
Merged PRs (30d)
7

Description

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with the ros:jazzy-ros-core-noble Docker image on arm64 using the shown rosdep and colcon commands. Inspect how the libcurl4-dev dependency is resolved for Ubuntu Noble; done means rosdep install and the subsequent micro-ROS agent build complete without manual intervention, or the Noble workaround is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, shell, ubuntu
Domain
build-system, devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.