Building From Sources¶
BeeGFS can easily build from sources. Please see also the README.md included in the source
code repository.
Depending on the system, different options can be used in this process, and just the general
procedure will be described here. During those steps references for adaptions of the builds are
shown. We will use git
and get the public sources and then go through the necessary steps for
building the packages.
Get the sources:
$ git clone https://git.beegfs.io/pub/v7 beegfs-v7
Go into directory
beegfs-v7
:$ cd beegfs-v7
Read the
README.md
(Also rendered online on https://git.beegfs.io/pub/v7):$ less README.md
Install dependencies that are stated in
README.md
:# yum install ...
Build by following either
the Building Packages section below.
the Building Without Packaging section.
Install the packages you need on your machines:
# rpm -i ./packages/libbeegfs-ib*.rpm \ ./packages/beegfs-{common,mgmtd,storage,meta,utils}*.rpm \ ./packages/beegfs-client-7*.rpm
Install the other packages on the machines according to your needs.
Check the System Design to continue with the installation.
Building Packages¶
BeeGFS comes with a Makefile capable of building packages for the system on which it is executed. These include all services, the client module and utilities.
To build RPM packages, run
$ make package-rpm PACKAGE_DIR=packages
You may also enable parallel execution with
$ make package-rpm PACKAGE_DIR=packages RPMBUILD_OPTS="-D 'MAKE_CONCURRENCY <n>'"
where <n>
is the number of concurrent processes.
For DEB packages use this command:
$ make package-deb PACKAGE_DIR=packages
Or start with <n>
jobs running in parallel:
$ make package-deb PACKAGE_DIR=packages DEBUILD_OPTS="-j<n>"
This will generate individual packages for each service (management, meta-data, storage) as well as the client kernel module and administration tools.
The above examples use packages
as the output folder for packages, which must not exist and will
be created during the build process. You may specify any other non-existent directory instead.
Note, however, that having PACKAGE_DIR
on a NFS or similar network share may slow down the build
process significantly.
Building Without Packaging¶
To build the complete project without generating any packages, simply run
$ make
The sub-projects have individual make targets, for example, storage-all
, meta-all
, etc.
To speed things up, you can use the -j
option of make
.
Additionally, the build system supports distcc
:
$ make DISTCC=distcc