Installing libbson

The following guide will step you through the process of downloading, building, and installing the current release of libbson.

Supported Platforms

The MongoDB C Driver is continuously tested on variety of platforms including:

  • Archlinux
  • Debian 8.1
  • macOS 10.10
  • Microsoft Windows Server 2008
  • RHEL 5.5, 6.2, 7.0, 7.1, 7.2
  • Ubuntu 12.04, 16.04
  • Clang 3.5, 3.7, 3.8
  • GCC 4.6, 4.8, 4.9, 5.3
  • MinGW-W64
  • Visual Studio 2010, 2013, 2015
  • x86, x86_64, ARM (aarch64), Power8 (ppc64le), zSeries (s390x)

Install with a Package Manager

The libbson package is available on recent versions of Debian and Ubuntu.

$ apt-get install libbson-1.0

On Fedora, a libbson package is available in the default repositories and can be installed with:

$ dnf install libbson

On recent Red Hat systems, such as CentOS and RHEL 7, a libbson package is available in the EPEL repository. To check version available, see https://apps.fedoraproject.org/packages/libbson. The package can be installed with:

$ yum install libbson

Building on Unix

Building from a release tarball

Unless you intend on contributing to libbson, you will want to build from a release tarball.

The most recent release of libbson is 1.8.2 and can be downloaded here. The following snippet will download and extract the current release of the driver.

$ wget https://github.com/mongodb/libbson/releases/download/1.8.2/libbson-1.8.2.tar.gz
$ tar -xzf libbson-1.8.2.tar.gz
$ cd libbson-1.8.2/
$ ./configure

For a list of all configure options, run ./configure --help.

If configure completed successfully, you’ll see something like the following describing your build configuration.

libbson 1.8.2 was configured with the following options:

Build configuration:
  Enable debugging (slow)                          : no
  Enable extra alignment (required for 1.0 ABI)    : no
  Compile with debug symbols (slow)                : no
  Enable GCC build optimization                    : yes
  Code coverage support                            : no
  Cross Compiling                                  : no
  Big endian                                       : no
  Link Time Optimization (experimental)            : no

Documentation:
  man                                              : no
  HTML                                             : no

We can now build libbson with the venerable make program.

$ make
$ sudo make install

Building from git

To build an unreleased version of libbson from git requires additional dependencies.

RedHat / Fedora:

$ sudo yum install git gcc automake autoconf libtool

Debian / Ubuntu:

$ sudo apt-get install git gcc automake autoconf libtool

FreeBSD:

$ su -c 'pkg install git gcc automake autoconf libtool'

Once you have the dependencies installed, clone the repository and build the current master or a particular release tag:

$ git clone https://github.com/mongodb/libbson.git
$ cd libbson
$ git checkout x.y.z  # To build a particular release
$ ./autogen.sh
$ make
$ sudo make install

Generating the documentation

Install Sphinx, then:

$ ./configure --enable-html-docs --enable-man-pages
$ make man html

Building on Mac OS X

Install the XCode Command Line Tools:

$ xcode-select --install

The pkg-config utility is also required. First install Homebrew according to its instructions, then:

$ brew install pkgconfig

Download the latest release tarball

$ curl -LO https://github.com/mongodb/libbson/releases/download/1.8.2/libbson-1.8.2.tar.gz
$ tar xzf libbson-1.8.2.tar.gz
$ cd libbson-1.8.2

Build and install libbson:

$ ./configure
$ make
$ sudo make install

Building on Windows

Building on Windows requires Windows Vista or newer and Visual Studio 2010 or newer. Additionally, cmake is required to generate Visual Studio project files.

Let’s start by generating Visual Studio project files for libbson. The following assumes we are compiling for 64-bit Windows using Visual Studio 2010 Express which can be freely downloaded from Microsoft.

> cd libbson-1.8.2
> cmake -G "Visual Studio 14 2015 Win64" \
  "-DCMAKE_INSTALL_PREFIX=C:\libbson"
> msbuild.exe ALL_BUILD.vcxproj
> msbuild.exe INSTALL.vcxproj

You should now see libbson installed in C:\libbson. By default, this will create a debug build of libbson. To enable release build additional argument needs to be provided to both cmake and msbuild.exe:

> cd libbson-1.8.2
> cmake -G "Visual Studio 14 2015 Win64" \
  "-DCMAKE_INSTALL_PREFIX=C:\libbson" \
  "-DCMAKE_BUILD_TYPE=Release"
> msbuild.exe /p:Configuration=Release ALL_BUILD.vcxproj
> msbuild.exe /p:Configuration=Release INSTALL.vcxproj

You can disable building the tests with:

> cmake -G "Visual Studio 14 2015 Win64" \
  "-DCMAKE_INSTALL_PREFIX=C:\libbson" \
  "-DENABLE_TESTS:BOOL=OFF"