Every time I get a new system, freshly installed, I have to install a bunch of development library dependencies to be able to start “working properly”.
Personally, I don’t remember them from one time to the next. So I have my list of packages that I need for development, and that I use frequently. This way when I get a system, I install what I need, and I don’t have to worry.
Beware, it might seem messy to have them all like this… and I won’t lie to you, it is. But at some point I’m going to need them, so I install them and meow 🐱.
In case it might be useful to some of you, I’m sharing them in case you find them helpful, especially if you are working on projects involving graphics, interfaces, or sound.
sudo apt install build-essential cmake git sudo apt install libsdl2-dev libbsd-dev sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev libxrandr-dev libxi-dev libasound2-dev mesa-common-dev libgl1-mesa-dev sudo apt-get install libdrm-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev sudo apt-get install libraspberrypi-dev raspberrypi-kernel-headers sudo apt-get install —no-install-recommends raspberrypi-ui-mods lxterminal gvfs sudo apt install qtbase5-dev qt5-qmake qtbase5-dev-tools qml qtdeclarative5-dev
Now I break down what each one is.
Explanation of each library
Basic development tools
sudo apt install build-essential cmake git
build-essential: Package that includes essential tools for software compilation, such as thegcccompiler.cmake: Tool for managing project builds.git: Version control system.
SDL and BSD libraries
sudo apt install libsdl2-dev libbsd-dev
libsdl2-dev: Library for developing multimedia applications (SDL 2).libbsd-dev: Library with BSD utilities.
X11 and related libraries
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev libxrandr-dev libxi-dev libasound2-dev mesa-common-dev libgl1-mesa-dev
libx11-dev: Main library of the X Window System.libxcursor-dev: Library for managing cursors in X11.libxinerama-dev: Library for the Xinerama extension (support for multiple screens).libxrandr-dev: Library for the RandR extension (dynamic management of resolutions and rotations).libxi-dev: Library for the X Input extension.libasound2-dev: Library for the ALSA sound system.mesa-common-devandlibgl1-mesa-dev: Development libraries for OpenGL with Mesa.
Graphics and EGL related libraries
sudo apt-get install libdrm-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev
libdrm-dev: Library for managing graphics resources (Direct Rendering Manager).libegl1-mesa-dev: Library for EGL (interface between OpenGL and the windowing system).libgles2-mesa-dev: Library for OpenGL ES 2.libgbm-dev: Library for managing graphics buffers.
Raspberry Pi specific packages
sudo apt-get install libraspberrypi-dev raspberrypi-kernel-headers
libraspberrypi-dev: Development library for the Raspberry Pi.raspberrypi-kernel-headers: Kernel headers for Raspberry Pi, needed to compile kernel modules.
Desktop environment components for Raspberry Pi
sudo apt-get install —no-install-recommends raspberrypi-ui-mods lxterminal gvfs
raspberrypi-ui-mods: Raspberry Pi user interface modifications.lxterminal: Lightweight terminal emulator.gvfs: Virtual filesystem.
Libraries and tools for Qt5
sudo apt install qtbase5-dev qt5-qmake qtbase5-dev-tools qml qtdeclarative5-dev
qtbase5-dev: Base development package for Qt5.qt5-qmake: Qt build tool.qtbase5-dev-tools: Additional tools for Qt development.qml: QML (programming language for user interface in Qt).qtdeclarative5-dev: Development package for Qt5 declarative modules.

