On Fri, Sep 29, 2006 at 09:08:18AM -0400, Jeff Quast wrote:
> On 9/29/06, Sideris Michael <[EMAIL PROTECTED]> wrote:
> >I don't get how tagging will help keeping your package list as small as
> >possible. Let me give an example:
> >
> >We have 2 packages, Y and Z that were explicitly installed and are
> >tagged accordingly. Y has A, B and C as dependencies. Z has C, D and E
> >as dependencies. The dependencies of course are not tagged, right? Or if
> >they do get marked they get a dependency tag(redundant). Now, as far as
> >I understood you want to achieve the following. If you want to uninstall
> >Y you want to keep any dependencies that were explicitly installed. But,
> >what about A, B and C? They are not tagged as explicitly installed. Which
> >means that either you won't delete any of them, or delete all of them and
> >break the installation of Z since C is going to be missing. Please give
> >me an example of your tagging methodology/plan so we can get an overview
> >of the functionality you have in mind.
> >
> >Thinking of it a bit more, here is a potential solution. You install C
> >which is a dependency of Y. C is marked as "explicitly installed". Later
> >on, you install Y and it is also marked as explicitly installed. A and B
> >are installed as dependencies. Now, you decide to remove Y with
> >pkg_delete(1). It should get the list of dependencies, A, B and C,
> >remove the ones that are marked as explicitly installed, thus removing C
> >from the dependency list, and then uninstalling the ones that are not
> >needed from any other package currently installed on the system, that is
> >A and B. How about that?
> >
> >--
> >Sideris Michael
> >http://black.daemons.gr/msid/
> >
> >
>
> Your description is like reading code that uses only variables a, b,
> c, d, y, z in one small function, with pointers to a struct of arrays,
> like a[d]->z. Gives me a headache to try to make clear sense of it.
> yuchhk!
Let me repeat my example by giving you real packages/dependencies.
package: irssi-0.8.10p0
dependencies: gettext-0.14.5p1 glib2-2.10.3 libiconv-1.9.2p3
package: gettext-0.14.5p1
dependencies: expat-2.0.0 libiconv-1.9.2p3
So, let' say I install gettext-0.14.5p1. pkg_add(1) marks is as
"explicitly installed". Also, expat-2.0.0 and libiconv-1.9.2p3
are installed as dependencies of gettext-0.14.5p1.
Now, I install irssi-0.8.10p0. pkg_add(1) marks it as "explicitly
installed". Also, glib2-2.10.3 is getting installed as a dependency.
gettext-0.14.5p1 is already installed from before as well as
libiconv-1.9.2p3 as a dependency of gettext-0.14.5p1.
Now, I decide to uninstall irssi using pkg_delete(1). This are the
steps of deletion:
* make a list of irssi's dependencies:
gettext-0.14.5p1 glib2-2.10.3 libiconv-1.9.2p3
* remove from this list any packages marked as "explicitly installed":
glib2-2.10.3 libiconv-1.9.2p3
* remove from this any package that is needed by other packages:
glib2-2.10.3
* finally, delete irssi and the packages that are left in the list.
I hope now it is clear to everyone how the whole thing should work. And
using ONLY tagging is NOT a complete solution. If anyone has alternative
ideas please state them in order to conclude to an optimal solution.
--
Sideris Michael
http://black.daemons.gr/msid/