The page lists the prerequisite packages that need to be installed on the different platforms to be able to configure, build and run ROOT.

The table of content can be used to quickly jump to your operating system.

Fedora, Scientific Linux and CentOS

Use yum install <package> or the graphical “Add/Remove Software” program.

Required packages

  • make: for /usr/bin/make
  • cmake3: for /usr/bin/cmake3
  • gcc-c++: for for /usr/bin/g++ (ROOT 6 requires g++ 4.8 or clang 3.4; for SLC5/SLC6)
  • gcc: for /usr/bin/gcc
  • binutils: for /usr/bin/ld
  • libX11-devel: for usr/include/X11/Xlib.h and for /usr/lib/
  • libXpm-devel: for /usr/include/X11/xpm.h and for /usr/lib/
  • libXft-devel: for /usr/include/X11/Xft/Xft.h and for /usr/lib/
  • libXext-devel: for /usr/include/X11/extensions/shape.h and for /usr/lib/
  • python:  (ROOT6 requires version >= 2.7)
  • redhat-lsb-core: needed by some tests (tutorials) using lsb_release and some CDash scripts
  • openssl-devel: for /usr/include/openssl/pem.h and /usr/lib/ and /usr/lib/

As a one-liner:

sudo yum install git cmake3 gcc-c++ gcc binutils \
libX11-devel libXpm-devel libXft-devel libXext-devel openssl-devel

Most common optional packages

  • gcc-gfortran: for /usr/bin/gfortran
  • pcre-devel: for /usr/bin/pcre-config
  • mesa-libGL-devel: for /usr/include/GL/gl.h and for /usr/lib[64]/
  • mesa-libGLU-devel: for /usr/include/GL/glu.h and for /usr/lib[64]/
  • glew-devel (may need enabling of the EPEL additional software repository): for /usr/include/GL/glew.h and for /usr/lib[64]/
  • ftgl-devel: for /usr/bin/pkg-config
  • mysql-devel: for /usr/bin/mysql_config
  • fftw-devel: for /usr/include/fftw3.h and for /usr/lib/
  • cfitsio-devel: for /usr/include/fitsio2.h and for /usr/lib/
  • graphviz-devel: for /usr/include/graphviz/gvc.h and for /usr/lib/
  • avahi-compat-libdns_sd-devel: for /usr/include/dns_sd.h and for /usr/lib/
  • openldap-devel: for /usr/include/ldap.h and for /usr/lib/
  • python-devel: for /usr/include/python2.7/Python.h and for /usr/lib/
  • python-numpy-devel: needed for PyMVA
  • libxml2-devel: for /usr/bin/xml2-config
  • gsl-devel: for /usr/include/gsl/gsl_version.h and for /usr/lib/libgsl.a
  • r-base: needed for R bindings. In addition R packages Rcpp and RInside need to be installed.

As a one-liner:

sudo yum install gcc-gfortran pcre-devel \
mesa-libGL-devel mesa-libGLU-devel glew-devel ftgl-devel mysql-devel \
fftw-devel cfitsio-devel graphviz-devel \
avahi-compat-libdns_sd-devel openldap-devel python-devel \
libxml2-devel gsl-devel

Ubuntu and other Debian-based distributions

Use sudo apt-get install <package> or use the graphical “Synaptic Package Manager” program.

Required packages

  • dpkg-dev for dpkg-architecture (needed by configure to locate system libraries starting from 11)
  • cmake: for /usr/bin/cmake
  • g++: for /usr/bin/g++
  • gcc: for /usr/bin/gcc
  • binutils: for /usr/bin/ld
  • libx11-dev: for usr/include/X11/Xlib.h and for /usr/lib/
  • libxpm-dev: for /usr/include/X11/xpm.h and for /usr/lib/
  • libxft-dev: for /usr/include/X11/Xft/Xft.h and for /usr/lib/
  • libxext-dev: for /usr/include/X11/extensions/shape.h and for /usr/lib/
  • libpng: png library
  • libjpeg: jpeg library
  • python: (ROOT6 requires version >= 2.7)
  • openssl-dev or libssl-dev: for /usr/include/openssl/pem.h and /usr/lib/ and /usr/lib/

As a one-liner:

sudo apt-get install dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev \
libxft-dev libxext-dev python openssl-dev

Most common optional packages

  • gfortran: for /usr/bin/gfortran
  • libpcre3-dev: for /usr/bin/pcre-config
  • xlibmesa-glu-dev: for /usr/include/GL/gl.h and for /usr/lib/
  • libglew1.5-dev: for /usr/include/GL/glew.h and for /usr/lib/
  • libftgl-dev: for /usr/bin/pkg-config
  • libmysqlclient-dev: for /usr/bin/mysql_config
  • libfftw3-dev: for /usr/include/fftw3.h and for /usr/lib/
  • libcfitsio-dev: for /usr/include/fitsio2.h and for /usr/lib/
  • graphviz-dev: for /usr/include/graphviz/gvc.h and for /usr/lib/
  • libavahi-compat-libdnssd-dev: for /usr/include/dns_sd.h and for /usr/lib/
  • libldap2-dev: for /usr/include/ldap.h and for /usr/lib/
  • python-dev: for /usr/include/python2.7/Python.h and for /usr/lib/
  • python-numpy-dev: needed for PyMVA
  • libxml2-dev: for /usr/bin/xml2-config
  • libkrb5-dev: for /usr/include/krb5.h and for /usr/lib/
  • libgsl0-dev: for /usr/include/gsl/gsl_version.h and for /usr/lib/libgsl.a
  • libqt4-dev: for /usr/include/qt4/Qt/qglobal.h and for /usr/lib/
  • r-base: needed for R bindings. In addition R packages Rcpp and RInside need to be installed.

As a one-liner:

sudo apt-get install gfortran libpcre3-dev \
xlibmesa-glu-dev libglew1.5-dev libftgl-dev \
libmysqlclient-dev libfftw3-dev libcfitsio-dev \
graphviz-dev libavahi-compat-libdnssd-dev \
libldap2-dev python-dev libxml2-dev libkrb5-dev \
libgsl0-dev libqt4-dev


Minimal set:

sudo zypper install bash cmake gcc-c++ gcc binutils python libXpm-devel
xorg-x11-devel libXext-devel libopenssl-devel

Most common optional packages:

sudo zypper install gcc-fortran pcre-devel Mesa glew-devel
pkgconf-pkg-config libmariadb-devel fftw3-devel cfitsio-devel graphviz-devel
libdns_sd avahi-compat-mDNSResponder-devel openldap2-devel python-devel libxml2-devel
krb5-devel gsl-devel chromium libQt5Gui-devel libqt5-qtwebengine-devel


  • Xcode developer package: Xcode is found on the Mac App store. Install command line tools through the XCode preferences and/or running in a terminal xcode-select --install



  • CMake (version >= 16.3)
  • Microsoft Visual C++ (ROOT6 requires at least Visual Studio 2019 version 16.1). The Community version is free, fully-featured for students, open-source contributors, and individuals.
  • Python (ROOT6 requires version >= 2.7)


ROOT 6 on Windows is currently in beta, and has several known issues as well as missing features. We are currently working on making ROOT on Windows production-grade.

ROOT 5 (deprecated)

If you are using Windows make sure you have installed Microsoft Visual C++ (e.g., the no-cost edition) plus CMake. The CMake build will work directly without the need to install cygwin as it was required previously before the adaption of CMake.