You are very close. I know the "explanations" are a little vague, but the details are more than a novice would understand. Here's the deal (which I tried to explain earlier). Say we have a package that updates a puppy component (file):
- - Installing a package in a flash-drive installation (which is what we are talking about here) places the new file in the "save" layer, which is below the "snap" (pup_rw) layer.
- Uninstalling a package places the original (puppy sfs) version of the component in the "snap" layer.
- The first time the "save" function is used in a session, it saves everything in the "snap" layer into the "save" layer.
- Subsequent "saves" copy only the components in the "snap" layer that are newer than the copy in the "save" layer.
- - Uninstalling the components to "snap" layer, then installing them to "save" layer, then doing the first "save" of the session, results in the old versions overwriting the new, thus losing the new package.
- If the above were done after the first save, the new-package versions of the components would be retained.
- If you install, then uninstall, then save, the results, as above, will depend on whether the "save" was the first of the session, or not.
And you are right about items 5 & 6. It is the package manager (PPM) that interferes with the ideal uninstall-save-install sequence. I originally coded for that sequence (and have it saved, in case we solve the problem), but had to abandon it because I could not figure out how to fix PPM. Expert assistance needed!
Who decides? The logic I coded, not the user.
BTW, "and/or" is unnecessary because "or" is an "inclusive or". Learned that in a "Clear Technical Writing" PI course.
Note that the directions to the user refer to package(s), to mean that multiple packages can be (un)installed as a group. You just cannot mix the two operations without doing a "save" between groups. And you cannot undo the first save, so must reboot to get a new "first save" opportunity for the uninstalls.
One might ask why we don't see more problems of this sort. The exposure is in working with components that are in the main puppy SFS file, because that's where the old versions reside. My guess is that most installations are of components other than puppy files, so that uninstallation only removes the package files, without any replacement. Since my fix packages almost always involve puppy components, they are most subject to the above "conflicts", and thus seem more problem-prone in flash-drive installations than other packages.
Thanks for providing the opening for me explain my reasoning about this. And I am open to word-smithing those messages.
Richard