Jason Creighton wrote: > To which I say "thank goodness!". CPAN is, IMO, a bad model: It's *only* for > perl stuff. We don't need to reinvent CPAN for Ruby: What we *really* need > is a package manager flexible enough so that we can just do a: > > ~$ ultimate_package_manager --add-source http://www.ruby-lang.org/raa > ~$ ultimate_package_manager --install raa/testunit > > .....or whatever. We need more flexible package managers in general, not > just a language specific package manager every time we feel like we need > to reinvent the wheel. > Jason, I couldn't agree more. The one thing that has made perl horrendously hard to maintain on most systems is that it ignores the system package manager, whatever that is, be it ports, portage, rpm, dpkg, or whatever else. What Ruby needs is good tools for package maintainers to use to make their packages extremely easy to distribute in a system distribution, /and/ makes it easy for someone to download and install a package from the web. If there were a standard set of commands as widely understood as "./configure" "make" "make install", then there would be no need for a CPAN-alike repository and build and test system -- wget and a shell would be all that is needed, and a very simplistic tool to search the RAA, download the package and execute the standard commands would be very easy to create. If one could coerce developers to "just toss in a copy of install-foo.rb and edit installer-conf" to create an easily installable package, one could benefit from easy integration with existing package managers, have easy manual package building, and have a "one-command-does-it-all" tool ala cpan's shell. Some hypothetical examples: # ruby-package-get syck RPM detected -- building packages. Downloading package list from RAA..... done. Finding syck.... done, 2 prerequisites. Downloading syck.... done making spec files.... done + rpmbuild -ba prereq1.spec ..... + rpmbuild -ba prereq2.spec ..... + rpmbuild -ba syck.spec RPMS are in ~/rpm/RPMS. Installing.... + rpm -i ~/rpm/RPMS/{prereq1-0.0.0,prereq2-0.0.0,syck-1.0}.noarch.rpm Done! That's all doable: the PLD team has done similar hacks (mostly ripping most of the features out of) to CPAN -- they have scripts to build RPMs out of CPAN entries. If it were a native function of CPAN, it'd be much easier. Similar can be done for other package managers. Ari