36

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.

Sebastian
  • 8,677
  • 4
  • 39
  • 49

2 Answers2

38

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.

antje-m
  • 1,573
  • 12
  • 11
  • 1
    Hello 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? – Sebastian Jan 13 '12 at 09:46
  • 3
    The most important reference if probably [The Arch Way](https://wiki.archlinux.org/index.php/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 invoking `make`) without touching it afterwards. There are exceptions to this rule but I can't think of one relevant to this question. – Wieland Jan 13 '12 at 19:02
4

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.

Jason Axelson
  • 415
  • 3
  • 7
  • 3
    You'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. – Matthew Marshall Jan 13 '12 at 03:57
  • @MatthewMarshall You're correct. Although at least the ABS is related to the question. – Jason Axelson Jan 13 '12 at 20:02