From: Eivind Eklund Date: 2004-10-29T02:43:10+09:00 Subject: Re: Gems as key? Re: The real Ruby vs. Python. On Thu, 28 Oct 2004 23:31:05 +0900, Chad Fowler wrote: > An example of something that I believe is > broken from an end-user perspective in rpa-base is that when I remove a > package, it removes all of the dependencies. We _don't_ want to do that > with RubyGems. I have Rails installed, and I've written scripts to use > ActiveRecord, which was installed with Rails. If I decide I don't want > Rails anymore, I don't want to have to go manually install ActiveRecord > afterward. Heh. This seems to be a preference issue: I strongly prefer that dependencies are removed. This is especially important when libraries are used for application support. I see extra dependencies being left around as a significant problem when my use is scaled a little bit. As an example, on one of my FreeBSD systems where I've experiemented with different software packages and dependencies are not automatically removed, I presently have 399 software packages installed. I guess over 100 of these are presently unused dependencies. These complicate my enviornment, but removing them is work, and risk breaking things that have added implict dependencies on them. In my ideal world (and the design I originally described for RPA), the dependencies are *hidden* from the user until they are explictly requested. Thus, your case above cannot happen. > As for tracking reverse dependencies, it doesn't seem difficult to me: > > spec.dependent_gems > > The manual user intervention you were talking about is not _necessary_. I don't get this. Do you mean there is a way to deinstall the dependencies that the install of a gem auto-installed without manual intervention? If so, how? I couldn't find it in the documentation - I'll add it in the places I looked if there is a way. > We added it because we wanted the user to have the choice to remove a > package even if it might screw something up. I don't see how this relate to the above - may we be talking past each other? > I see it as being in the > same vein as allowing a programmer to pass a String into a method that may > usually expect something else. "Here's some rope...you can use it to tie > knots, secure things, etc. or you can hang yourself with it. We trust > that you'll make the right decision, because we don't think you're an > idiot." I'm an idiot, so I tend to presume that there are others out there, too :-) I work day-to-day with a package system (FreeBSD's) that do track reverse dependencies and prevent dropping packages that has a dependency, but do allow a force switch to override it. I regularly try to de-install libraries that are in use. Roughly 70% of those attempted de-installs are by accident, while 30% are ones that I want to go through with anyway. So I definately appreciate being caught by the safety-net. Eivind. -- Hazzle free packages for Ruby? RPA is available from http://www.rubyarchive.org/