On 2013-01-15 07:16, David Halko wrote:
What is the reason for "-devel" packages under Linux? Is there a need for such a thing under another OS family?
From my experience and expectations, I'd say yes these are needed. I believe, similar separation did have place in Sun packages with their "root", "usr" and "header" subdivision, but I did never really make out what stood for what. IIRC it was not a consistent scheme between various packages and the descriptions were certainly not helpful to figure out whether I want a "root" or an "usr" one... As I recently posted, sometimes pieces of software are only needed for the shared libraries it delivers to the end-systems (not even the headers as might be needed on the build systems), and not the binary programs unless they are the API as happens for some script invoked projects. For that particular post, I needed to link with OpenLDAP because the opensource project I was building was only written to work with that API. As such, I needed the package to deliver maybe 30 files to the build host and half-a-dozen to runtime hosts - not five screenfuls list of docs, programs, config samples, manifests and methods to hook into SMF, and other resources that are certainly useful when I set up an OpenLDAP server as such. Okay, maybe with this one it is more of a nit, the package requiring some 10Mb of space overall, but when dependencies come into play - such overheads accumulate. For each zone and OS image. This is more files to update, more to backup or verify for fingerprints - for zero received usefulness from them. "Only a liability" as they say ;) Given that OS image installations might go onto more performant hardware (say SSDs today) with smaller size and higher $/GB ratio, every such wasted gigabyte is also a monetary loss of space that you have to buy and not use, or that you could've used better to actually gain some efficiency from the bits you do read often. A binary MySQL client might today require the full 180Mb MySQL server installation into its zone - because there is no smaller package for Solaris, even if a single-megabyte lib is all that's needed... For example, with dependencies as they are, if I wanted to link a program with some graphics libraries (an image converter perhaps), I'd need to set up most of the GNOME desktop environment and audio and USB to boot. All for the ability to read and interpret a few image formats ;) Now, improper dependencies are known to be the Achiles' foot of many packaging systems, and Sun distros were too notorious for that - so we had lists of what packages to mark for installation and ignore complaints from the installer program about unsatisfied dependencies - but I believe that such intent-driven sub-packaging does make sense, should be maintained, and pointers to sub-packages (or facets) should be in the "I need" dependency manifests (what do you need: project's libs to fulfil an ABI? libs+client programs for a command-line API? lib+h for a compiled API? All the docs and bells and whistles and the sbin for a full distro to use that project itself?) My2c, //Jim Klimov ------------------------------------------- illumos-discuss Archives: https://www.listbox.com/member/archive/182180/=now RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be Modify Your Subscription: https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4 Powered by Listbox: http://www.listbox.com
