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
