I was wondering, are dev downloads always as complete as their regular counterparts?


I assume you're referring to package names like seen in Debian and Ubuntu.

The -dev suffix for packages signifies that it contains files related to development using the non-suffixed package.

For example, the package zlib1g-dev contains the files you need to create applications using zlib1g. zlib1g just contains the library so existing applications can use the functionality within. Compilation requires the -dev files, because the compiler has to know where the functions come from, but once the program is compiled, only the regular package is needed, because the compiled application knows to load the library and use the functions within.

Unless you're manually compiling applications that use a library, you generally have no use for the -dev packages - you will want the non -dev packages instead. However, if you are compiling applications, you will want them both - the -dev package doesn't contain the library itself (but it usually depends on the library, so you'll get it that way).

  • But would it suffice to just download the dev? – Cenoc Jul 20 '10 at 21:47
  • No, sorry for not making that clear enough. If you're compiling an application, you need both -dev (to compile it) and the actual library (to run it). If you're just running an application, you just need the library iteslf. – Michael Madsen Jul 20 '10 at 23:00

The packages ending in -dev contain the headers and static libraries used when building an application that makes calls to that library. This may be enough for you if you are building an application from source, and you want to compile the library in statically.

However all the applications you install from packages will be using the shared libraries, which are not provided by the -dev packages, so you will need to install the base package as well.

Almost all library packages which end in -dev have a dependency on the base package, so if you select libpng-dev and choose to install it, your package manager should download libpng automatically. If you download libpng-dev yourself, and try to install it, the install will probably fail since it needs libpng specified as well. There are usually command-line switches to force an install without checking the dependencies, but they are rarely used and not recommended.

In summary: You should really download the base package as well as the -dev one, but usually the package manager will take care of that for you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.