4. Download information

This section presents the different methods to download NUT.

4.1. Building from source code

To build from Git sources, you will need a number of tools such as autoconf, automake and libtool to use these checkouts or snapshots to generate the configure script and some other files. The distribution archives already include the configure script (as well as other files) and do not require auto* tools to prepare the sources for a build.

A more complete list of build prerequisites for different platforms can be seen in Prerequisites for building NUT on different OSes chapter in the NUT QA Guide, and reading about configure script options can also help.

After you configure the source workspace, a make dist-hash recipe would create the snapshot tarballs which do not require the auto* tools, and their checksum files, such as those available on the NUT website and attached to GitHub Releases page.

4.2. Source code

Note

You should always use PGP/GPG to verify the signatures before using any source code.

You can use the following procedure. to do so.

Stable tree: 2.8

You can also browse the stable source directory.

Development tree:

To get the newest fixes or features, you may want to build code that is even newer than the most-recent NUT release (and likely much newer than whatever your OS distribution has packaged). This bleeding-edge approach usually involves building NUT either from the master branch, or even from feature branches which are sources of a pull request being reviewed and discussed before it gets merged into the main development trunk.

As such, it is highly recommended to build from Git sources rather than "distribution tarball" archives (so you can more easily update your build workspace to try subsequent iterations), although the latter are now also available for development iterations.

See the live Wiki article on https://github.com/networkupstools/nut/wiki/Building-NUT-for-in%E2%80%90place-upgrades-or-non%E2%80%90disruptive-tests for latest suggestions for building, testing and installing the latest NUT code base.

Code repository

The development tree is available through a Git repository hosted at GitHub.

To retrieve the current development tree, use the following command:

:; git clone git://github.com/networkupstools/nut.git

OPTIONALLY you can then fetch known git tags, so semantic versions look better (based off a recent release):

:; cd nut
:; git fetch --tags --all

The configure script and its dependencies are not stored in Git. To generate them, ensure that autoconf, automake and libtool are installed, then run the following script in the directory you just checked out:

:; ./autogen.sh

Note

It is optionally recommended to have Python 2.x or 3.x, and Perl, to generate some files included into the configure script, presence is checked by autotools when it is generated. Neutered files can be just "touched" to pass the autogen.sh if these interpreters are not available, and effectively skip those parts of the build later on — autogen.sh will then advise which special environment variables to export in your situation and re-run it.

Then refer to the NUT user manual for more information.

Browse code

You can browse the "vanilla NUT" code at the Main GitHub repository for NUT sources, and some possibly modified copies as part of packaging recipe sources of operating system distributions, as listed below.

Snapshots

For pull requests and eventual merges into the master branch, a NUT CI job prepares correct "dist tarballs" with a snapshot of source code, as well as an archive with rendered documentation files (PDF, HTML, man pages).

Links to these "Dist and Docs" archives can be seen on GitHub in the list of GitHub Checks associated with merge commits and pull requests. Keep in mind that artifacts like these are stored for up to 90 days, and can be rotated away earlier.

Note

GitHub has several download links for repository snapshots (made for particular tags or branches), but the ability to build NUT seamlessly from ZIP or tar.gz snapshots prepared by GitHub automatically (as a simple git archive of a checked-out workspace) is not regularly checked nor "supported" by the Network UPS Tools project. YMMV.

4.3. Binary packages

Note

The only official releases from this project are source code "tarballs", prepared by make dist-files from the tagged release commits on main trunk of the development code base (for more details see NUT Maintainer Guide in source).

Best-effort packages or archives of installation prototype workspaces, prepared by regular CI builds, are planned to ease evaluation of the latest development for some platforms (currently serving only NUT for Windows).

NUT is already available in the following operating systems (and likely more):

4.4. Java packages

4.5. Virtualization packages

VMware