mirror of
https://github.com/pi-hole/docs.git
synced 2024-12-06 19:27:12 +01:00
Add possibility to use a devcontainer in the FTL compilation guide
Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
+12
-2
@@ -1,5 +1,9 @@
|
||||
We pre-compile *FTL*DNS for you to save you the trouble of compiling anything yourself. However, sometimes you may want to make your own modifications. To test them, you have to compile *FTL*DNS from source. Luckily, you don't have to be a programmer to build *FTL*DNS from source and install it on your system; you only have to know the basics we provide in here. With just a few commands, you can build *FTL*DNS from source like a pro.
|
||||
|
||||
# Install native build environment
|
||||
|
||||
This will install all necessary tools to build FTL directly in your host operating system. It is usually the easiest solution and works with all editors available.
|
||||
|
||||
## Installing the Required Software
|
||||
|
||||
First, we'll install the basic software you'll need to compile from source, like the GCC compiler and other utilities.
|
||||
@@ -8,13 +12,13 @@ Install them by running the following command in a terminal:
|
||||
### Debian / Ubuntu / Raspbian
|
||||
|
||||
```bash
|
||||
sudo apt install build-essential libgmp-dev m4 cmake libidn11-dev libreadline-dev xxd
|
||||
sudo apt install git wget ca-certificates build-essential libgmp-dev m4 cmake libidn11-dev libreadline-dev xxd
|
||||
```
|
||||
|
||||
### Fedora
|
||||
|
||||
```bash
|
||||
sudo dnf install gcc gmp-devel gmp-static m4 cmake libidn-devel readline-devel xxd
|
||||
sudo dnf install git wget ca-certificates gcc gmp-devel gmp-static m4 cmake libidn-devel readline-devel xxd
|
||||
```
|
||||
|
||||
## Compile `libnettle` from source
|
||||
@@ -85,4 +89,10 @@ Finally, restart *FTL*DNS to use the new binary:
|
||||
sudo service pihole-FTL restart
|
||||
```
|
||||
|
||||
# Use containerized build environment
|
||||
|
||||
While most people think of [Docker](https://www.docker.com/) as a deployment environment, it's also a wonderful tool to create and maintain build environments. Pi-hole provides `ftl-build` containers composed of everything needed to build FTL for various architectures on your `x86_64` hosts. Check out [Docker Hub `pi-hole/ftl-build`](https://hub.docker.com/r/pihole/ftl-build/tags) for the available build containers as well as the [Releases overview](https://github.com/pi-hole/docker-base-images/releases/) for a detailed changelog.
|
||||
|
||||
The `ftl-build` containers can, for instance, easily be used as [`devcontainers`](https://code.visualstudio.com/docs/devcontainers/containers) with Visual Studio Code's [`remote-containers`](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension. The necessary `devcontainer.json` is provided in the FTL repository. See the description of the extension for further details. Note that `./build.sh install` would only install FTL in the container in this case. Instead, you have to copy the FTL binary generated inside the container yourself to the final destination on your installation target.
|
||||
|
||||
{!abbreviations.md!}
|
||||
|
||||
Reference in New Issue
Block a user