On Thu, 26 Jun 2008 15:55:09 PDT
"Richard L. Hamilton" <[EMAIL PROTECTED]> wrote:

> > > Why not adopt "rpm"?
> > 
> > No way! IPS is awesome, it just needs more time to
> > mature.
> 
> As far as I'm concerned, a package system (whatever it looks like):
> * bundles a set of files that must be installed as a unit
> * provides sufficient information to in some sense verify package integrity
>   (checksums are really too minimal, signatures would be much better)
> * provides for metadata sufficient to deal with dependency verification and
>   other special needs; this should be extensible to handle future developments
> * provides for retaining sufficient metadata on installed packages to later
>   verify their integrity after installation
> * provides tools to add, remove, and update packages
> * a comprehensive package system at least defines a mechanism whereby
> updates may be obtained.
> 
> Considerations lending themselves to speed, efficiency, and ease of 
> maintenance
> and updates also apply.

I'd not call that a package "system"; it's more like a format + simple
management tools. I.e. rpm (the format + the single command) meets
that, but is otherwise about the worst "package management system"
I've ever dealt with. It really needs one of the upper level tools
(like yum) to be noticeably better than tar.

To paraphrase what others have said: the value isn't in the package
system, it's in the ecosystem. The number of packages available for
your system is a pretty direct measure of the value of the ecosystem.

The thing is, a random collection of packages built by random
individuals at random times isn't an ecosystem, because the underlying
set of dependencies for each will be different, so only a small
fraction of the packages will work on any given system.

Hence, the package tools - at the user end - requires a lot more to
qualify as a "system".

- it needs the ability to automatically install or upgrade any
  required dependencies for the package you want. Going through umpteen
  levels of required libraries to get to the point of installing the
  software you need is no fun.

- it needs to know when it's about to update a package that other
  things depend on, and either arrange to preserve any bits that will
  break those things if they are updated, or to update said other
  package at the same time (and yes, you *really* need both options).

- it needs the ability to install "alternative" versions of things
  that are part of the operating system instead of part of the
  repository, and hence may have different update cycles.

Most modern package systems gets the first of those right. IPS seems
to be doing a good job on the second as well - or at least one of the
options, whereas most other systems seem to ignore the issue. Most of
the package systems I've dealt with either ignore the last one, or
ignore large chunks of the OS (as recently discussed re: Blastwave).

Of course, none of this does you any good if the package you want - or
one or more of it's dependencies - isn't available in the repository
for your system, or is only available in the old version that was
available when the distro was cut. Hence on the provider end, you
need:

- a build system such that creating a complete set of packages for a
  new distribution of the OS is at *worst* as hard as creating an OS
  distribution (in fact, adding select packages to the distribution
  should be part of the distribution build process).

- a build system that lets you easily updated the repository at
  regular intervals as the maintainers update their packages.

"Complete" is a relative term: some packages may not work on your
architecture, may be binary and not available for it yet, may not
build on it because you've broken the tool chain, may have licenses
that disallow redistributing the binary, etc. So you need ways of
flagging packages as broken, for specific architectures, or not for
redistribution, etc.

Personally, I'm spoiled. The package systems I use regularly also have:

- variant build capabilities, allowing the user to set compile-time
  options either globally or per package, and automatically build a
  given package and it's requirements customized to their taste as
  easily (if not as quickly) as installing the package.

I believe that's important, but I suspect most people simply won't
care.

    <mike
-- 
Mike Meyer <[EMAIL PROTECTED]>          http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to