Every time I get a new, freshly installed system, I have to install a bunch of development library dependencies to be able to start “working well.”
Personally, I don’t remember from one time to the next. So I have my list of packages that I need for development, which I use frequently. That way, when I get a system, I install what I need, and I don’t have to worry.
I know it may 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 can be useful to anyone, I share them in case you find them useful, especially if you are working on projects that involve 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 will 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 thegcc
compiler.cmake
: Tool for managing the build process of projects.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-dev
andlibgl1-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 Raspberry Pi.raspberrypi-kernel-headers
: Kernel headers for Raspberry Pi, necessary for compiling kernel modules.
Desktop Environment Components for Raspberry Pi
sudo apt-get install --no-install-recommends raspberrypi-ui-mods lxterminal gvfs
raspberrypi-ui-mods
: Modifications for the Raspberry Pi user interface.lxterminal
: Lightweight terminal emulator.gvfs
: Virtual file system.
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
: Build tool for Qt.qtbase5-dev-tools
: Additional tools for Qt development.qml
: QML (programming language for user interface in Qt).qtdeclarative5-dev
: Development package for the declarative modules of Qt5.