Skip to content

Dependencies Ubuntu

Zach Pendleton edited this page Oct 11, 2024 · 37 revisions

Note: For cross-compiling Windows binaries on Linux, please see Windows Dependencies instead.

sudo apt install build-essential cmake libsndfile1-dev libfftw3-dev \
libvorbis-dev libogg-dev libmp3lame-dev libasound2-dev libjack-jackd2-dev \
libsamplerate0-dev libsdl2-dev libstk0-dev stk libfluidsynth-dev portaudio19-dev \
libfltk1.3-dev libxinerama-dev libxft-dev libgig-dev git perl libxml2-utils \
libxml-perl liblist-moreutils-perl qtbase5-dev qtbase5-private-dev \
qttools5-dev-tools qttools5-dev libqt5x11extras5-dev libx11-xcb-dev \
libxcb-keysyms1-dev libxcb-util0-dev libsuil-dev

Lv2

Required packages: lv2-dev liblilv-dev

VST

Install libraries for VST support

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install gcc-multilib g++-multilib libqt5x11extras5-dev \
libxcb-util0-dev libxcb-keysyms1-dev


# for Ubuntu <= 17.04
sudo apt install wine-dev

# for Ubuntu >= 17.10
sudo apt install wine-stable wine64-tools libwine-dev      # for 64-bit systems
sudo apt install wine-stable wine32-tools libwine-dev:i386 # for 32-bit systems

# note: It is possible to use wine-(stable, devel, or staging)
# and corresponding development package from WineHQ repository

# keywords: winegcc: g++ failed
# keywords: fatal error: bits/c++config.h: No such file or directory
# keywords: winegcc: File does not exist: /usr/lib/i386/wine/libwinecrt0.a

Carla

Install libraries for Carla support:

# Update software sources
sudo apt-get update

# Install required dependencies if needed
sudo apt-get install apt-transport-https gpgv wget

# Download kxstudio package file
wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.1.0_all.deb

# Install it
sudo dpkg -i kxstudio-repos_11.1.0_all.deb
sudo apt install -y carla
  • Don't forget to install libraries for VST support here and Carla support here

    ...done installing? Next, clone the source code

Troubleshooting

CMake

Some project operations -- such as generating AppImages -- may require a newer version of CMake. To force a newer version, install from snap:

sudo snap install cmake --classic
alias cmake='snap run cmake'

# keywords: WARNING AppImage creation requires at least CMake 3.19

Unmet dependencies

Sometimes apt will not allow all packages to be installed simultaneously. (e.g. foo : Depends: bar (=1.0.0) but it is not going to be installed). Install them or resolve dependencies individually.

sudo apt install libfluidsynth-dev
sudo apt install libjack-jackd2-dev

# keywords: The following packages have unmet dependencies
# keywords: Unknown command PKG_GET_VARIABLE
# note: libsdl-dev might need a version number when installing dependencies. Example: libsdl1.2-dev 

This can also happen if you already have Jack1 installed on your system, and you're trying to install Jack2 development files. You should try installing Jack1 dev files instead:

sudo apt install libjack-dev

# keywords: The following packages have unmet dependencies

Both Jack1 and Jack2 work fine with LMMS, for differences between the two please consult the Jackaudio wiki.

qmake

If qmake --version shows an error:

sudo apt install qt5-default

# keywords: qmake: could not find a Qt installation of ''

ia32-libs

Older environments may complain that ia32-libs package has been removed. See this page for more information.

sudo apt install wine32

# keywords: ia32-libs package has been removed

Using build-dep

If you are unable to build LMMS after following the steps above, you may want to try apt-get's build-dep command.

This command will install required dependencies for a package.

For Ubuntu:

  1. Edit /etc/apt/sources.list, and uncomment any deb-src entries.
  2. sudo apt update
  3. sudo apt build-dep lmms

For Linux Mint:

  1. Open "Software Sources".
  2. Flip the "Source code repositories" switch in the Official Repositories tab.
  3. Update the apt cache when prompted.
  4. Run sudo apt build-dep lmms.

Remember to comment out deb-src entries in /etc/apt/sources.list when you are finished, or all subsequent apt update commands will take twice as long