ifupdown-ng/README.md

46 lines
1.4 KiB
Markdown
Raw Normal View History

2020-07-18 11:15:10 +00:00
# ifupdown-ng
2020-07-24 12:07:36 +00:00
ifupdown-ng is a network device manager that is largely compatible with Debian
ifupdown, BusyBox ifupdown and Cumulus Networks' ifupdown2.
## Dependency Resolution
![Dependency resolution example](doc/img/dependency-resolution.png)
2020-07-24 12:07:36 +00:00
ifupdown-ng uses a dependency resolver to determine interface bring-up order
in a deterministic way.
This is accomplished through a combination of manual hinting using the `requires`
keyword and dependency learning using native executors.
2020-07-24 12:07:36 +00:00
For compatibility with some legacy ifupdown executors, we also provide the
`requires` keyword under other environment variables in some cases.
## Caveats
2020-07-18 11:15:10 +00:00
* ifupdown2 python plugins are not supported at this time. An executor could be
written to handle them.
* ifupdown-ng retains compatibility with /etc/network/if-X.d scripts, but will
prefer using executors in /usr/libexec/ifupdown-ng where appropriate.
## Building
On musl systems, simply do `make` and `make install` to build and install.
On glibc systems, you must additionally define LIBBSD_CFLAGS and LIBBSD_LIBS:
2020-07-25 07:18:03 +00:00
export LIBBSD_CFLAGS=$(pkg-config --cflags libbsd-overlay)
export LIBBSD_LIBS=$(pkg-config --libs libbsd-overlay)
make
make install
To run the tests, do `make check`.
To build the documentation, do `make docs` and `make install_docs`. Building
the documentation requires scdoc (`apk add scdoc`).
2020-08-13 06:36:15 +00:00
## Discussion
Discuss ifupdown-ng on IRC: irc.as7007.net #ifupdown-ng