Why are there no -dev packages in Arch Linux?
Solution 1
The -dev packages usually contain header-files, examples, documentation and such, which are not needed to just running the program (or use a library as a dependency). They are left out to save space.
ArchLinux usually just ships these files with the package itself. This costs a bit more disk space for the installation but reduces the number packages you have to manage.
Solution 2
If you want to edit the source of standard packages and compile them yourself, you should use the ABS (Arch Build System). Quoted from the Arch Linux Wiki:
The Arch Build System, ABS for short, is a ports-like system for building and packaging software from source code. While pacman is the specialized Arch tool for binary package management (including packages built with the ABS), ABS is a collection of tools for compiling source into installable .pkg.tar.gz/.pkg.tar.xz packages.
This is the recommended method when using Arch Linux.
Related videos on Youtube
Sebastian
Updated on September 18, 2022Comments
-
Sebastian over 1 year
I understand that source based distributions like Gentoo or Slackware do not need
*-dev
versions of programs. They include the source code as well as header files for compiling everything locally.But I never saw
*-dev
packages in Arch Linux, although it is package based. I ran across lots of*-dev
packages in other distributions. -
Matthew Marshall over 12 yearsYou're confusing dev packages with src packages. src packages let you rebuild the package itself. dev packages let you build something that depends on the package.
-
Sebastian over 12 yearsHello thanks for your answer. I think you are right, because I noticed on Arch Linux I can compile packages right away (no need to install
-dev
packages). Could you include one reference? -
Wieland over 12 yearsThe most important reference if probably The Arch Way and the Simplicity principle - making
-dev
packages actually means building the package and taking away the include files. Archlinux packages however include the package as it was built (for example by invokingmake
) without touching it afterwards. There are exceptions to this rule but I can't think of one relevant to this question. -
Jason Axelson over 12 years@MatthewMarshall You're correct. Although at least the ABS is related to the question.