From: Yohanes Santoso Date: 2002-11-09T08:13:42+09:00 Subject: Re: CPAN Style installer Austin Ziegler writes: > On Sat, 9 Nov 2002 07:24:10 +0900, Yohanes Santoso wrote: > > why the lucky stiff writes: > >> I wonder. Is it fair to simply install these directly in > >> $prefix/lib/ruby/site_ruby/$version? (aka > >> Config::CONFIG['sitelibdir']) > > I have a suggestion: why not install each package to its own > > directory, then foreach file in the package, make a link to > > $prefix/lib/ruby/site_ruby/$version/. > > Doesn't work with Windows. Well, the rational is this: if you ever want to manually scrap a package and update it, just delete a directory. Why would you want to update it manually? Because sometimes, you really need the latest package (which may not be compatible with the previous version and requires thoroughly scrapping the old ones), but the package in raa-suc (or whatever) is a bit outdated. Without putting each package in its own directory, removing old files from a package involves a fair amount of hunting and guess work. > IMO, it is fair to install them in the appropriate place. The question is not whether it's fair or not. After all lots of systems already stuff everything in one place (witness /usr/bin). The question is whether we allow cruft/bad practice to continue or not. The good thing from a packager like Debian's is it allows you to find out all the files of a package ('dpkg -L perl' would list all files from the perl package) and allows thorough uninstall. The bad thing is it requires the package builder to manually/semi-automatically identify all files. So, instead, the easiest way is to stuff a package in its own directory. The advantage is you can have two version of the same package installed which sometimes comes in handy. To use a particular version, just link it in (see GNU stow http://www.gnu.org/software/stow/stow.html). I'm not too sure about windows, but I think if you use libcygwin, you can do file linking. Alternatively, ruby's include path could be appended with the appropriate package directory for each installed package. Just my 2c. YS.