# Installation

Binary program packages of OVITO for Linux, Windows, and macOS can be downloaded from www.ovito.org.

## System requirements

OVITO requires a 64-bit operating system and runs on processors with x86-64 or arm64 architecture. The graphical user interface of OVITO requires 3D graphics hardware with support for the OpenGL programming interface (OpenGL 2.1 or newer). In general, it is recommended that you install the latest graphics driver provided by your hardware vendor before running OVITO as some older drivers may not fully support modern OpenGL specifications, which can lead to compatibility problems.

Operating system compatibility:

> - Windows 10 (21H2 or later), Windows 11 (21H2 or later) - x86_64 processor architecture

> - Linux: CentOS Linux 8.4 or later, openSUSE 15.3 or later, Ubuntu 20.04 or later, SUSE Linux Enterprise Server 15 SP3 or later - x86_64 processor architecture

> - macOS 10.15+ - x86_64 and arm64 (Apple Silicon) processor architectures

## Installation instructions

Linux:

  Extract the downloaded `.tar.xz` archive file using the tar command: tar xJfv ovito-3.9.3-x86_64.tar.xz. This will create a new sub-directory containing the program files. Change into that directory and start OVITO by running the executable ./bin/ovito.

Windows:

  Run the installer program `ovito-3.9.3-win64.exe` to install OVITO in a directory of your choice. Note that Windows might ask whether you really want to launch the installer because it was downloaded from the web and is not digitally signed.

macOS:

  Double-click the downloaded `.dmg` disk image file to open it, agree to the program license, and drag the Ovito application bundle into your `Applications` folder. Then start OVITO by double-clicking the application bundle.

## Running on remote machines

Note that the OVITO desktop application cannot be run through an SSH connection using X11 forwarding mode, because the software requires direct access to the graphics hardware (OpenGL direct rendering mode). If you simply run ovito in an SSH terminal, you will likely get failure messages during program startup or just a black application window.

It is possible to run OVITO on a remote machine through an SSH connection using a VirtualGL + VNC setup. For further information, please see the www.virtualgl.org website. In this mode, OVITO will make use of the graphics hardware of the remote machine, which must be set up to allow running applications in a desktop environment. Please contact your local computing center staff to find out whether this kind of remote visualization mode is supported by the HPC cluster(s) you work on.

## Python module installation

The OVITO Pro program packages ship with an integrated Python interpreter (ovitos) that gets installed alongside the desktop application, allowing you to execute Python scripts written for OVITO. Optionally, you can install the `ovito` Python module into an external Python interpreter on your system (e.g. Anaconda or the standard CPython interpreter) in case you would like to make use of OVITO’s functionality in script-based workflows. Please refer to this section for further setup instructions.

## Troubleshooting

If you run into any problems during the installation of OVITO, you can contact the developers through the online user forum. The OVITO team will be happy to help you. The most commonly encountered installation issues on different platforms are addressed here:

> - Windows

> - Linux

> - macOS

### Windows

Windows 7 no longer supported

  Error

  If you try to run OVITO 3.7 or later on a Windows 7 computer, it will fail with the error “The procedure entry point CreateDXGIFactory2 could not be located in the dynamic link library dxgi.dll”.

  Solution

  Modern versions of OVITO are based on the Qt6 cross-platform framework, which requires Windows 10 or later to run. Windows 7 has reached its end of life and is no longer supported. Please upgrade your Windows operating system.

### Linux

Missing shared object files or broken links

  Error

  Starting the desktop application ovito or the script interpreter ovitos may fail with the following error:

      ./ovito: error while loading shared libraries: libQt5DBus.so.5:
              cannot open shared object file: No such file or directory

  This error is typically caused by broken symbolic links in the `lib/ovito/` sub-directory of the OVITO installation after extracting the installation package for Linux on a Windows computer.

  Solution

  Reinstall OVITO by extracting the .tar.xz archive on the target machine. Do not transfer the directory tree between different computers after it has been extracted, because this can easily break symbolic links between files.

Missing XCB system libraries

  Error

  You may see the following error when running ovito on a Linux machine:

      qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
      This application failed to start because no Qt platform plugin could be initialized.
      Reinstalling the application may fix this problem.
      Available platform plugins are: minimal, offscreen, vnc, xcb.

  In this case OVITO cannot find the required `libxcb-*.so` set of system libraries, which might not be preinstalled on new Linux systems.

  Solution

  Install the required system libraries using your Linux package manager:

      # On Ubuntu/Debian systems:
      sudo apt install libxcb1 libx11-xcb1 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 \
               libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 \
               libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 libxcb-cursor0 \
               libfontconfig1 libfreetype6 libopengl0 libglx0 libx11-6

      # On CentOS/RHEL systems:
      sudo yum install libxcb xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm

  Debian users should also pay attention to this thread in the OVITO support forum.

Missing OpenGL system libraries

  Error

  You may see the following errors when running ovito or importing the OVITO Python module on a Linux machine:

      ./ovito: error while loading shared libraries: libOpenGL.so.0: cannot open shared object file: No such file or directory

      libEGL.so.1: cannot open shared object file: No such file or directory

  Solution

  Install the required system libraries using your package manager:

      # On Ubuntu/Debian systems:
      sudo apt install libopengl0 libgl1-mesa-glx libegl1

### macOS

OVITO Pro license activation fails

  Error

  The activation step could not be completed due to an issue with the local license information store. File path: `$HOME/.config/Ovito/LicenseStore.ini`. Please check if file access permissions are correctly set. OVITO Pro requires read/write access to this filesystem path.

  Solution

  During license activation, OVITO Pro needs to create the directory `$HOME/.config/Ovito/` to store the downloaded licensing information. The error occurs if creating this directory or storing files in this directory is prevented by insufficient file system permissions.

  In many cases, the parent directory, `$HOME/.config/`, is the actual reason for this problem, because it is owned by the wrong macOS user account. `$HOME/.config/` is the canonical storage location for application configuration data on Linux/Unix systems. On macOS, this directory is not created by the system by default, but rather it is created by individual applications such as OVITO when they run for the first time. As a result, the ownership and permissions of this directory can vary depending on how it was created and which system user ran the first process creating it.

  It can happen that `$HOME/.config/` is owned by the system administrator (“root” user), because it was the root user who first ran an application creating the `.config` directory. As a result, your personal user account, which you are using to install OVITO Pro, can’t make further modifications to the directory, which lets the license activation fail. To resolve the problem, ask your system administrator to create the `$HOME/.config/Ovito/` subdirectory for you and make it writable by your personal user account – or follow these instructions to correct the ownership of the `$HOME/.config/` parent directory yourself.

  If changing the ownership is not possible for some reason, as a last resort, you can set the standard environment variable `XDG_CONFIG_HOME` to point to some existing directory other than `$HOME/.config/`. This will redirect OVITO Pro to store its licensing information in a different place, i.e., in a writable filesystem path of your choice.