micro-ROS / micro-ROS/micro_ros_setup

Ubuntu 24.04 - rosdep fails on libcurl4-dev

Aperta
#782 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Shell
Stelle
509
Fork
183
Merge medio
22h 26m
PR unite (30g)
7

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il fallimento con l’immagine Docker ros:jazzy-ros-core-noble su arm64 usando i comandi rosdep e colcon mostrati. Esamina come viene risolta la dipendenza libcurl4-dev per Ubuntu Noble; il lavoro è completato quando rosdep install e la successiva compilazione dell’agente micro-ROS terminano senza intervento manuale, oppure quando viene documentata la soluzione alternativa per Noble.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
docker, shell, ubuntu
Ambito
build-system, devops
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.