I was wondering, are dev downloads always as complete as their regular counterparts?
2 Answers
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).
-
-
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. Jul 20, 2010 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.