2021-07-10 00:53:28 +02:00
# Installing build requisites on other systems
2021-07-11 22:19:11 +02:00
### Fedora
2021-07-10 00:53:28 +02:00
```console
2022-02-19 15:09:34 +01:00
sudo dnf install texinfo binutils-devel curl cmake mpfr-devel libmpc-devel gmp-devel e2fsprogs ninja-build patch ccache rsync @"C Development Tools and Libraries" @Virtualization
2021-07-10 00:53:28 +02:00
```
2022-04-04 09:23:22 +02:00
Optional: `fuse2fs` for [building images without root ](https://github.com/SerenityOS/serenity/pull/11224 ).
2021-07-10 00:53:28 +02:00
2021-07-11 22:19:11 +02:00
## openSUSE
2021-07-10 00:53:28 +02:00
```console
2021-07-11 22:19:11 +02:00
sudo zypper install curl cmake mpfr-devel mpc-devel ninja gmp-devel e2fsprogs patch qemu-x86 qemu-audio-pa gcc gcc-c++ ccache rsync patterns-devel-C-C++-devel_C_C++
2021-07-10 00:53:28 +02:00
```
## Void Linux
```console
sudo xbps-install -S base-devel cmake curl mpfr-devel libmpc-devel gmp-devel e2fsprogs ninja qemu ccache rsync
```
## ALT Linux
```console
apt-get install curl cmake libmpc-devel gmp-devel e2fsprogs libmpfr-devel ninja-build patch gcc ccache rsync
```
## NixOS
2023-12-04 02:13:55 +01:00
You can use the `nix-shell` script [`Toolchain/serenity.nix` ](../Toolchain/serenity.nix ) to set up the environment (using your host nixpkgs):
2021-07-10 00:53:28 +02:00
2022-03-07 21:12:55 -07:00
```console
nix-shell Toolchain/serenity.nix
2023-12-04 02:13:55 +01:00
# With a custom entrypoint, for example your favorite shell
nix-shell --command bash Toolchain/serenity.nix
2021-07-10 00:53:28 +02:00
```
2023-09-07 22:04:44 +01:00
or you can use the nix flake [`Toolchain/flake.nix` ](../Toolchain/flake.nix ) instead:
2023-08-31 14:39:47 +01:00
```console
2023-12-04 02:13:55 +01:00
nix develop ./Toolchain#
# With a custom entrypoint, for example your favorite shell
nix develop ./Toolchain# --command bash
2023-08-31 14:39:47 +01:00
```
2023-08-31 15:29:27 +01:00
You can also save this environment to a profile:
```
nix develop Toolchain --profile Toolchain/nix-profiles/dev
```
and resume later with:
```
nix develop Toolchain/nix-profiles/dev
```
2021-07-10 00:53:28 +02:00
## Alpine Linux
First, make sure you have enabled the `community` repository in `/etc/apk/repositories` and run `apk update` . It has been tested on `edge` , YMMV on `stable` .
```console
# the basics, if you have not already done so
apk add bash curl git util-linux sudo
2022-02-10 22:04:51 -05:00
# GNU coreutils for GNU's version of `du`
apk add coreutils
2021-07-10 00:53:28 +02:00
# rough equivalent of build-essential
apk add build-base
# qemu
2023-08-10 18:28:27 +02:00
apk add qemu qemu-system-x86_64 qemu-img qemu-ui-gtk qemu-audio-pa
2021-07-10 00:53:28 +02:00
# build tools (samurai is a drop-in replacement for ninja)
2022-03-02 02:20:13 +01:00
apk add cmake e2fsprogs grub-bios samurai mpc1-dev mpfr-dev gmp-dev ccache rsync texinfo
2021-07-10 00:53:28 +02:00
```
2023-08-10 18:28:27 +02:00
Optional: `fuse2fs` for [building images without root ](https://github.com/SerenityOS/serenity/pull/11224 ).
2021-07-10 00:53:28 +02:00
## OpenBSD prerequisites
```console
2021-12-24 10:00:08 -06:00
doas pkg_add bash cmake g++ gcc git gmake gmp ninja ccache rsync coreutils qemu sudo e2fsprogs
2021-07-10 00:53:28 +02:00
```
## FreeBSD prerequisites
```console
2022-02-14 14:32:58 +01:00
pkg install qemu bash cmake coreutils e2fsprogs fusefs-ext2 gcc11 git gmake ninja sudo gmp mpc mpfr ccache rsync
2021-07-10 00:53:28 +02:00
```
2022-04-04 09:23:22 +02:00
Optional: `fusefs-ext2` for [building images without root ](https://github.com/SerenityOS/serenity/pull/11224 ).