On Saturday, August 31, 2002, at 07:51 AM, Michael G Schwern wrote:
> It's sort of silly to require that you have a copy of the 
> source code in
> order to uninstall a module.  Having a "make uninstall" target 
> wouldn't be
> the canonical way to remove a module, simply a way to address 
> the "Shit!  I
> didn't mean to install that there!" problem.

Big Problem with Trying to Uninstall Things In General: if you 
installed FooModule version 0.12 and then you install FooModule 
0.13, trying to uninstall 0.13 is either going to leave you with 
no FooModule at all, or with a bunch of broken fragments that 
existed in 0.12 but not 0.13.

However, if we call the above scenario "reverting", and say we 
actually want to blow away all versions of FooModule when doing 
something like "make uninstall", then the situation's not much 
better.  You'd need to know all files that any version of 
FooModule installed, and I don't think such information is 
available (right?  It theoretically could be, actually).

In order to really address this and support both reverting and 
uninstalling, package managers need to track what you've got 
installed, and tell you what needs to be done in each case.

> So you still need some sort of list of what's installed in order to
> uninstall things once the original source tarball is gone.

In fact, the tarball might not even be able to tell you that 
unless you haven't touched it since 'make install'.  What you 
really need is the list of files it *did* install, rather than 
just the list of files it *thought* it might install.  The 
differences arise out of the fact that you can specify target 
directories at build/install time, there are platform/version 
file name/extension differences, and so on.

That's why Module::Build doesn't include a "list of files to 
install" in its new META.yaml file - it doesn't have that 
information yet in the general case.


> Why don't you just run from the assumption that packlists 
> aren't such a hot
> idea and implement something else?  Probably do it with 
> Module::Build as I
> have no plans to do any significant changes to MakeMaker.  And 
> probably do
> it with YAML so we have a decent data format.
>

If anything more complicated than a flat list of "files we 
installed" is required, then YAML is probably the leading 
candidate format.

  -Ken

Reply via email to