Language: EN

librerias-habituales-desarrollo-linux

Common Development Libraries in Linux

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 the gcc 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.
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 and libgl1-mesa-dev: Development libraries for OpenGL with Mesa.
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.