[squeak-dev] Re: Config Browser for Metacello
Dale Henrichs
dhenrich at vmware.com
Wed May 19 16:30:51 UTC 2010
Göran Krampe wrote:
> One interesting trick that Lunar uses (and probably all source distros)
> is that when doing the "make install" (or whatever some tar ball wants
> to do) phase of a module installation, Lunar first installs low level
> filesystem "hooks" to capture ALL modifying file operations performed
> during that phase.
>
>
As Andreas noted, there is a supplyingAnswers: spec in Metacello that
allows you to specify the answers to be supplied on a per package basis...
With Metacello, instead of doing a direct #load, you can do a
#fetch/#load. After the #fetch you will have a list of the package
specs that are scheduled to be loaded, so it is (theoretically) possible
for a tool to run through the supplying answers list and change the
default answers in the configuration, then the modified specs can be
#loaded....
> This way Lunar always knows EXACTLY what files a certain module actually
> did install, and it can then uninstall it cleanly and keep track of
> where files "came from".
>
Metacello does not keep a data base of installed packages. The image is
the data base ... when you ask a configuration for it's current version,
the current version is calculated based upon a best match of the
packages installed in the current image and the versions in the
configuration (#versionStatus gives you a measure of the fidelity of the
currentVersion against the existing image). By keeping no state, it is
possible to unload Metatacello and then at a later date reload Metacello
and then do upgrades without having do any data base reconciliation...
In a future version of Metacello I will add the ability to #unload a
configuration (and keeping with the fetch/load idea there will be the
ability to precompute the unload for review by a human or an
algorithm)...I am interested in getting the load half of the equation
resolved before tackling unload ...
Dale
More information about the Squeak-dev
mailing list
|