Linux install
The current stable release is 0.12.1. Nightly packages, whose filenames change with the build date, are on the nightly release.
Download the 64-bit package:
of_v0.12.1_linux64_gcc6_release.tar.gz
The gcc6 in that filename is historical. The package is the x86_64 build. Raspberry Pi and other ARM boards use the packages on the Raspberry Pi guide.
Distributions
Run the install script that matches the distribution. Each script lives in scripts/linux/<name>/install_dependencies.sh.
| Distribution | Script directory | Notes |
|---|---|---|
| Ubuntu 22.04 and 24.04, and Ubuntu derivatives the script recognizes (Linux Mint, elementary OS) | scripts/linux/ubuntu |
Use the Ubuntu script for these distributions. |
| Debian 12 (bookworm) | scripts/linux/debian |
|
| Debian 13 (trixie) and Raspberry Pi OS Trixie | scripts/linux/debian |
See the package note below. |
| Arch Linux | scripts/linux/archlinux |
Uses pacman. |
| Fedora | scripts/linux/fedora |
Uses dnf. |
Ubuntu 22.04 can stop on a held libunwind package when libunwind-14 is already installed. Remove that package, then run the script again: sudo apt-get remove libunwind-14. This shows up on some CI images (#8543). A normal desktop install usually does not have that package.
Debian 13 removed libgconf-2-4. The script in the 0.12.1 package still lists it, so apt stops (#8480). Delete libgconf-2-4 from the apt-get install line in scripts/linux/debian/install_dependencies.sh and run the script again. Current master has removed that dependency; on 0.12.1, remove the entry locally. Some older nightly scripts also ask for xorgproto, which is the source package name. Replace it with the installable package x11proto-dev (#8630).
Do not rewrite /etc/lsb-release to look like an older Ubuntu. The Ubuntu script reads /etc/os-release. If it does not recognize a derivative, run the Debian or Ubuntu script that matches the base system.
Dependencies and codecs
From the openFrameworks directory, for Ubuntu:
cd /path/to/openFrameworks/scripts/linux/ubuntu
sudo ./install_dependencies.sh
Swap ubuntu for debian, archlinux, or fedora on those systems.
Optional patent-encumbered codecs, including mp3, are a separate script in the same directory:
sudo ./install_codecs.sh
Compile openFrameworks
cd /path/to/openFrameworks
./scripts/linux/compileOF.sh -j3
-j3 is the number of compile jobs. Use the number of cores, or fewer.
Project Generator
From the openFrameworks root, build the 0.12.1 command-line generator:
./scripts/linux/compilePG.sh
This builds apps/projectGenerator/commandLine/bin/projectGenerator and offers to install it as projectGenerator in /usr/local/bin. It does not build the Electron GUI. You can decline the install and run the binary from its build folder instead.
After installing the command, create a project from the openFrameworks root:
projectGenerator --help
projectGenerator -o"$PWD" -plinux64 apps/myApps/mySketch
The same command updates an existing project at that path. Use -plinuxaarch64 for the 0.12.1 ARM64 package. See Create a new project for addons, other platforms, and the GUI workflow.
Run an example
cd examples/graphics/polygonExample
make
make run
Editor
VS Code is the makefile editor for Linux. Open the .code-workspace file in an example. Qt Creator is no longer a maintained setup path.