[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