diff --git a/docs/workflow/requirements/linux-requirements.md b/docs/workflow/requirements/linux-requirements.md index cdbf731ab0669a..65c234b41f067e 100644 --- a/docs/workflow/requirements/linux-requirements.md +++ b/docs/workflow/requirements/linux-requirements.md @@ -34,27 +34,30 @@ These instructions are written assuming the current *Ubuntu LTS*. The packages you need to install are shown in the following list: -- `CMake` (version 3.20 or newer) -- `llvm` -- `lld` -- `Clang` (see the [Clang for WASM](#clang-for-wasm) section if you plan on doing work on *Web Assembly (Wasm)*) - `build-essential` -- `python-is-python3` +- `clang` (see the [Clang for WASM](#clang-for-wasm) section if you plan on doing work on *Web Assembly (Wasm)*) +- `cmake` (version 3.20 or newer) +- `cpio` - `curl` - `git` -- `lldb` - `libicu-dev` +- `libkrb5-dev` - `liblttng-ust-dev` - `libssl-dev` -- `libkrb5-dev` +- `lld` +- `lldb` +- `llvm` - `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`) +- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset) +- `python-is-python3` **NOTE:** If you are running on *Ubuntu* older than version *22.04 LTS*, or *Debian* older than version 12, then don't install `cmake` using `apt` directly. Follow the instructions in the [CMake on Older Versions of Ubuntu and Debian section](#cmake-on-older-versions-of-ubuntu-and-debian) later down in this doc. ```bash -sudo apt install -y cmake llvm lld clang build-essential \ +# requires sudo for non-root user +apt install -y cmake llvm lld clang build-essential \ python-is-python3 curl git lldb libicu-dev liblttng-ust-dev \ - libssl-dev libkrb5-dev ninja-build + libssl-dev libkrb5-dev ninja-build pigz cpio ``` #### CMake on Older Versions of Ubuntu and Debian @@ -64,7 +67,8 @@ As of now, Ubuntu's `apt` only has until *CMake* version 3.16.3 if you're using To use `snap`, run the following command: ```bash -sudo snap install cmake +# requires sudo for non-root user +snap install cmake ``` To use the *Kitware APT feed*, follow their official instructions [in this link](https://apt.kitware.com/). @@ -74,9 +78,10 @@ To use the *Kitware APT feed*, follow their official instructions [in this link] As of now, *WASM* builds have a minimum requirement of `Clang` version 16 or later (version 18 is the latest at the time of writing this doc). If you're using *Ubuntu 22.04 LTS* or older, then you will have to add an additional repository to `apt` to be able to get said version. Run the following commands on your terminal to do this: ```bash -sudo add-apt-repository -y "deb http://apt.llvm.org/$(lsb_release -s -c)/ llvm-toolchain-$(lsb_release -s -c)-18 main" -sudo apt update -y -sudo apt install -y clang-18 +# requires sudo for non-root user +add-apt-repository -y "deb http://apt.llvm.org/$(lsb_release -s -c)/ llvm-toolchain-$(lsb_release -s -c)-18 main" +apt update -y +apt install -y clang-18 ``` You can also take a look at the Linux-based *Dockerfile* [over here](/.devcontainer/Dockerfile) for another example. @@ -85,10 +90,10 @@ You can also take a look at the Linux-based *Dockerfile* [over here](/.devcontai If you're planning to use your environment to do Linux cross-building to other architectures (e.g. Arm32, Arm64), and/or other operating systems (e.g. Alpine, FreeBSD), you'll need to install a few additional dependencies. It is worth mentioning these other packages are required to build the `crossrootfs`, which is used to effectively do the cross-compilation, not to build the runtime itself. -- `qemu` -- `qemu-user-static` - `binfmt-support` - `debootstrap` +- `qemu` +- `qemu-user-static` ### Fedora @@ -96,23 +101,26 @@ These instructions are written assuming *Fedora 40*. Install the following packages for the toolchain: -- `cmake` -- `llvm` -- `lld` -- `lldb` - `clang` -- `python` +- `cmake` +- `cpio` - `curl` - `git` -- `libicu-devel` -- `openssl-devel` - `krb5-devel` +- `libicu-devel` +- `lld` +- `lldb` +- `llvm` - `lttng-ust-devel` - `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`) +- `openssl-devel` +- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset) +- `python` ```bash -sudo dnf install -y cmake llvm lld lldb clang python curl git \ - libicu-devel openssl-devel krb5-devel lttng-ust-devel ninja-build +# requires sudo for non-root user +dnf install -y cmake llvm lld lldb clang python curl git \ + libicu-devel openssl-devel krb5-devel lttng-ust-devel ninja-build pigz cpio ``` ### Gentoo