One key differentiator between different Linux
distributions has been the packaging system used. The same is happening
in the world of Illumos distributions, some use IPS, some debian
packaging, SmartOS uses pkgsrc, Tribblix sticks true to the retro feel
of Solaris by using SVR4.
Overall, there's been a huge amount of effort expended on
packaging. Consider the replacement of SVR4 packaging with IPS - a huge
multi-year multi-person effort, that required almost the whole of
Solaris to be retooled to fit. And yet, this is all wasted effort.What of packaging in the future? I see it largely disappearing. You can see this in the consumerization of applications: it's the App Store, not a package repository. Package management is conspicuous by its absence in the modern world of IT. Looking at where Ubuntu are heading, you can see the same thing. That's not the only initiative - look at AppStream for another example.
The point here is that
packages aren't relevant to users. Applications are. Which is why the
notion of overlays is central to Tribblix - at their simplest, overlays
are simply collections of packages (I could have used the term cluster,
but that already has meaning to the Solaris installer, although it was
never exposed to administrators later which was a terrible design), but the idea is that you manage
software at the level of abstraction of an overlay, rather than at a
package level.
Even as a unit of delivery, packages aren't that useful - they normally arise as build artifacts, which don't necessarily map well to user needs. And that's another thing - what constitutes a useful component of a package isn't fixed, but is very much context dependent. Worse, the possible contexts in which a package can be used isn't known ahead of time, so the packager cannot enumerate all the possible uses of the software they're packaging. And an individual package is almost never useful in isolation - most working applications are the leaf nodes of a large complex tree. Dependency management is another game where, if you play, you lose. Rather than tightly-coupled systems with strong dependency management, I'm looking for loosely coupled largely self contained units of delivery. If necessary, application bundles manage their own dependencies rather than relying on the system to do so.
Despite the title, it's not that packaging will disappear, but it will (I hope) become largely invisible.
2 comments:
Yes, packaging should and is becoming invisible to most users. Still using SVR4 underneath is not much better than using tar... IPS on the other hand is very handy and allows to make the packaging transparent to end-users in a much easier and consistent way than SVR4.
The point is that the direction is away from heavyweight packaging to something that's not that different from shipping a tarball, an approach that's diametrically opposite to IPS. (There are packaging systems that are just tarballs with minimal inventory data associated with them.)
Post a Comment