PDF format available here

Installation for Linux

Pre-compiled binaries of XtalOpt may be obtained from here. However, the Linux binaries may not ork on every Linux computer. You may continue reading if you wish to compile XtalOpt on your own.


First and foremost, a C++ compiler with C++11 is required to compile XtalOpt. GCC >= 4.8.4 and Clang >= 3.5 will both work.

"Easy" Dependencies

The following dependencies can be installed from the package manager of most linux distributions:

Source Dependencies

None. Before release 11, XtalOpt required OpenBabel and Avogadro, but there are currently no source dependencies required.


"Easy" Dependencies

Using the package manager for your linux distribution, install the dependencies listed above. For example, on Arch Linux, one can use the command

pacman -S git cmake glu qt5-base qwt eigen libssh openssh

On Ubuntu 16.04, one can use the command

sudo apt-get install git cmake qt5-default libqwt-qt5-dev libeigen3-dev libssh-dev

Note: if you are using Ubuntu 14.04, libqwt-qt5-dev may not be available. Installing Qwt that depends on Qt4 will not work. Therefore, you can either use the .deb file I have created here, or you can compile it yourself.

Source Installations


Once the dependencies are installed, installing XtalOpt is simple. First, change to your source directory:

cd $HOME/src

Check out the master branch of the XtalOpt sources:

git clone git:// xtalopt
git clone xtalopt

Make a build directory and enter it:

mkdir xtalopt/build
cd xtalopt/build

Configure, build, and install (set the CMAKE_INSTALL_PREFIX to wherever you'd like):

cmake .. -DCMAKE_INSTALL_PREFIX=<wherever>
make -j3
make install

Note: if you need to use Kerberos authentication to establish a SSH connection to the remote server, the libssh library used by XtalOpt will not work. There is a workaround for Linux (and possibly Mac) users, which will call the command line ssh/scp commands to communicate with the remote cluster. This can be enabled by adding -DUSE_CLI_SSH=true to the cmake command above. This ssh backend will not prompt for a password, and expects the ssh commands to "just work". Passwordless ssh logins can be enabled using the ssh-copy-id command.

XtalOpt is now installed.

Test the installation

Try running the resulting XtalOpt executable (either in the bin directory of your install directory or in the build directory). If a window opens and you are able to select options, then XtalOpt was successfully installed.