On Fri, 13 Jun 2003 22:14:08 +0900
Michael Campbell <michael_s_campbell / yahoo.com> wrote:

> 
> 
> > Lots of people are talking about making the RAA into something like
> > CPAN.
> > That's okay, but I'm sick of seeing the package management wheel
> > being reinvented over and over again.
> 
> This to me seems quite the opposite of reinventing the wheel,
> while...

Huh?

What I meant was, if we have "CPAN for Ruby", it would be basically the same
thing as the CPAN, only for Ruby. I'm resigned to the fact that what we'll
probably get is "CPAN for Ruby", but what I would like to see implemented is a
general package manager, that would just so happen to work well with the RAA.

<rant>
I'm just sick of seeing every Linux distro having its own little package
manager. I'm sick of looking at the instructions for packaging something for
distro X that goes something like this: 

"Prefix in /usr, don't link against X, be sure to link against Y, etc, etc".

ie, each distro has rules set out that each package must follow.

Why can't we just have some metadata with each package describing what options
it supports. Then our package manager could just say to package X:

"Okay, I want X11 support with GTK widgets, prefix is /usr/local, strip
binaries, don't install the manpages, and install the package in
/tmp/lala-1234 so we can record what files are in the package before we
install it in /usr/local".

(Of course, the software would be nowhere near as chatty. :-) )

And we would somehow get a package that meets those specifications: We might
build it locally, we might fetch binaries from somewhere, etc.

The nice thing about this approach is that we would only have to package stuff
*once*. And then build the software differently for each configuration needed.

I've been thinking about implementing something like this in Ruby, but I don't
have my ideas pinned down enough to start coding. I have vague ideas about
this software taking "steps" (download, extract, build, install) so that we
could take a package from any step and complete it. That is, we could have one
PC doing builds for a network of 100 that would pick up at the "install" step.
Or something like that.

Also, how all the options a package has would be tricky to represent.

</rant>

> > So it would be really nice if we could solve it "once and for all".
> 
> ..THIS seems the very definition of it.

Now you've got me really confused. If making our own CPAN isn't reinventing
the wheel, how is making our own general purpose package manager reinventing
the wheel?

> You feel that doing something new and different is preferable to
> using a model that's up and working, and you're using the "wheel
> reinvention" analogy to justify it?

No, I feel that implementing basically the same thing (CPAN-like package
manager) for two (or more) languages is a waste.

I also think that having CPAN in the first place is a waste: Package managers
should be flexible enough to deal with that. We should just be able to tell
the package manager about a new source for packages and then it should be able
to download, compile and install those packages.

I want a package managers that adapts a package to the local configuration,
not one that basically dumps tarballs into the directory tree, assuming that
the package is built for the way the system is.

So basically, what I'm asking for is a package manager that will manage
packages.

Will I even find it? Or will I just always say "not flexible enough" to every
thing I try?

I don't know.

Jason Creighton