LOGBOOK

HELP

Quiz Entry - updated: 2026.10.13

How does installing ESP-IDF differ between the legacy method (before v6.0) and the ESP-IDF Installation Manager (v6.0 and later)?

Legacy: git clone a tagged release with its submodules, run ./install.sh all, then . ./export.sh in each shell. From v6.0: install the EIM tool from Espressif's APT repository, run eim install -i v6.1, then source the generated activate_idf_v6.1.sh.

Step Legacy (< v6.0) EIM (>= v6.0)
Get the framework git clone -b v6.1 --single-branch --recursive https://github.com/espressif/esp-idf.git Add the APT repo, sudo apt install eim-cli
Install tools cd esp-idf && ./install.sh all eim install -i v6.1
Use it in a shell . ./export.sh source ~/.espressif/tools/activate_idf_v6.1.sh

The git flags matter. -b v6.1 --single-branch checks out exactly one release instead of the whole history of every branch. --recursive also pulls the submodules: many ESP-IDF components (the Wi-Fi libraries, mbedTLS, LWIP and others) live in separate repositories, and a clone without them does not build. install.sh all downloads the cross-compilers for all supported chips (ESP32, -S3, -C3, …) and creates the Python virtual environment.

EIM does the same work with one tool, can keep several ESP-IDF versions side by side, and has a GUI as well as a CLI. Both methods end the same way: you still have to activate the environment in every new terminal before idf.py works.

Go deeper:

From Quiz: SIOT / ESP32 Development with ESP-IDF and FreeRTOS Tasks | Updated: Oct 13, 2026