not logged in | [Login]

Since v3.1.x FreeRADIUS has a hard dependency on C11 support (available in GCC >= 4.9.0).

If you see an error message like:

configure: error: FreeRADIUS requires support for the C11 _Generic keyword

That means your compiler does not support C11, and you'll need to one that does.

Supported Platforms

FreeRADIUS is known to run on a large number of 32 and 64bit platforms, however building on some of them may require following special procedures here.

Building from Source

If your operating system has support for a package manager such as .deb or .rpm file format, we recommend that you follow the instructions in the next section instead:

tar zxvf freeradius-<version>.tar.gz
./configure
make
su - root
make install

Don't forget to read supplied documentation first, including the configuration files. As with many free software projects, FreeRADIUS could use more documentation. Until such documentation is available, the only place that configuration items are documented is in the configuration files themselves.

If you have problems when trying to run FreeRADIUS, and you see error messages like:

rlm_sql: Could not link driver rlm_sql_mysql: file not found

Then the shared libraries on your system are misconfigured.

Postgresql note: Copy rlm_sql_postgresql.so from FreeRadius build source to /usr/lib/rlm_sql_postgresql.so

Building on MAC OSX

./configure --enable-developer
make
sudo make install

and freeradius runs and responds to radtest.

FreeRADIUS 3.0.0 requires talloc which is available from samba.org

curl -LO http://www.samba.org/ftp/talloc/talloc-2.1.0.tar.gz
tar zxvf talloc-2.1.0.tar.gz
cd talloc-2.1.0
./configure --without-gettext
make
sudo make install

cd ../
curl -LO ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.0.tar.gz
tar zxvf freeradius-server-3.0.0.tar.gz
cd freeradius-server-3.0.0
./configure --enable-developer
make
sudo make install

Building on Solaris

Please see: Solaris

Building on RHEL7 or Centos7

RHE7 ships with GCC 4.8.5 but we require GCC >= 4.9.0 for FreeRADIUS >= v3.1.x.

Fortunately the devtoolset-3 series of packages provides a later version of GCC.

Follow the instructions here to enable the devtoolset-3 repository https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/.

To install:

yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++

and then to get to a shell with the correct environment:

scl enable devtoolset-3 bash

You can then perform the normal:

./configure --enable-developer
make
sudo make install

Or can set CC=/opt/rh/devtoolset-3/root/usr/bin/gcc in your environment, which works just as well.

If you're building on older versions of RedHat then you'll need to compile GCC from source.

Building Packages

The FreeRADIUS source contains build rules for several different types of system packages. If your operating system has a packaging system (dpkg, rpm, tgz), it is usually easier to install the appropriate packages instead of directly installing from source. However this may not always be the recommended approach as many systems seem to lag behind with very old versions of FreeRADIUS. In that case it may be better to build packages from source.

Building Debian packages

Building Debian packages of FreeRADIUS from source is kept as simple as possible. Please refer to the Debian package page for full instructions.

The above page also includes instructions on building with Oracle support or installing Debian backports packages for older systems.

Building Ubuntu packages

If you're using Ubuntu, you should first check whether your desired version of FreeRADIUS is available in the Ubuntu package repositories, because that will save you the trouble of building packages yourself. As of March 2016, the Ubuntu repositories contain only version 2 of the server, which is end-of-life. Please see: http://packages.ubuntu.com/freeradius.

For build instructions, please follow the instructions building Ubuntu Packages or follow the same directions as building Debian packages on the main Debian page.

Building RedHat packages

Please refer to the information on the Red Hat specific page Red Hat FAQ.

Building SUSE packages

On SUSE Linux it should be a simple matter of taking the latest FreeRADIUS release tarball and dropping it in /usr/src/packages/SOURCES along with the other files from the suse/ directory inside the tarball with the exception of freeradius.spec which goes in /usr/src/packages/SPECS

Then simply run:

rpmbuild -ba /usr/src/packages/SPECS/freeradius.spec

rpmbuild will tell you if you are missing any build dependencies. If so, simply install them with yast2 -i packagename-devel then rerun rpmbuild

Building SUSE packages with Oracle Support

If you wish to use Oracle you will need to recompile FreeRADIUS on a machine that has Oracle development libraries installed. FreeRADIUS is known to work both with a full Oracle installation as well as with the Oracle Instant Client SDK. Once built the resulting RPM package can be deployed with just the Oracle Instant Client (No need for the SDK on production machines)

Most rpm packages available do not included oraclesql.conf due to the fact that they also don't contain the Oracle driver module (due to copyright reasons)

On SUSE Linux if you have the Oracle header files in a sane location it should be a simple matter of taking the latest FreeRADIUS release tarball and dropping it in /usr/src/packages/SOURCES along with the other files from the suse/ directory inside the tarball with the exception of freeradius.spec which goes in /usr/src/packages/SPECS

Then edit /usr/src/packages/SPECS/freeradius.spec and change:

%define _oracle_support 0

to:

%define _oracle_support 1

Then simply run:

rpmbuild -ba /usr/src/packages/SPECS/freeradius.spec

See Also