librerias-habituales-desarrollo-linux

Common Development Libraries in Linux

  • 3 min

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 the gcc compiler.
  • 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.

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 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.