Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Nov 2001 00:48:45 -0600
From:      Mike Meyer <mwm@mired.org>
To:        Simon J Mudd <sjmudd@pobox.com>
Cc:        questions@freebsd.org
Subject:   Re: gv port builds but fails - needing libpng.so.4 (?)
Message-ID:  <15363.14157.861168.682892@guru.mired.org>
In-Reply-To: <96683653@toto.iv>

next in thread | previous in thread | raw e-mail | index | archive | help
[I should know better than to reply before reading all of a thread....]

Simon J Mudd <sjmudd@pobox.com> types:
> The problem perhaps is that once you've isntalled two conflicting copies
> of a port it is impossible to uninstall one without affecting the other one.

Correct.

> You also don't know which port is _really_ installed completely (if at all).

You may be able to figure it out by looking at the dates in
/var/db/pkgs. Since I normally want to resolve the situation, it
doesn't matter.

> So you can't go back from this situation, and it's easy to get into it.

Backing out is easy. Decide which one you want to install. Delete both
packages, using the force option if necessary, and then install the
one you want installed. Poof, you're done. If you're using
portupgrade, you'll want to fix the db. Depending on the packages, you
may want to note the dependency list of the one you didn't reinstall
so you can reinstall those as well.

> > There's no reason to upgrade everything it depends
> > on in that case.
> If you want to upgrade portA-1.2.3 -> portA-2.0.1 and the dependency for
> portA-2.0.1 is for a package portB-X and the installed version of portB is
> less than X, then this doesn requires portB to be upgraded.  Obviously 
> this is the situation where "all hell may break loose" because this may 
> require further package upgrades.  Ideally the packaging system would 
> tell you two things:
> 
> 	(A) you can't do this if other ports depend on the installed 
> version of portB
> 	(B) if you do this you'll need to upgrade other ports which depend 
> on portB to ensure that the system stays "stable".
>
> rpm does (A) which is obviously easier, and I'm not aware of a packaging 
> system which does (B).

Ok, FreeBSD does A, assuming the packages database is up to date. What
happens for B is that it installs the old version as well as the new
one. In some cases, this works. In the cases where it doesn't, the
only harm done is that you'll have to reinstall the newer B a second
time. Getting warnings would give you the option of not upgrading A
until you had time to deal with all hell breaking loose.

This can't be fixed as a general problem because applications - and
hence packages - change names. I.e. - cdrecord has become cdrtools. If
I have cdrecord installed, and install something that wants part of
cdrtools that wasn't in cdrecord, there's currently no way to solve
the problem.

> Thus deleting packages doesn't seem to be the problem it's more installing 
> is "too easy".

I *never* expected to hear that said about *anything* associated with
a Unix system.

	<mike
--
Mike Meyer <mwm@mired.org>			http://www.mired.org/home/mwm/
Q: How do you make the gods laugh?		A: Tell them your plans.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15363.14157.861168.682892>