|Subject:||Re: ports question|
|From:||Crist J . Clark (cjcl...@reflexnet.net)|
|Date:||Oct 30, 2000 12:11:18 am|
On Mon, Oct 30, 2000 at 01:40:55AM -0600, Mike Meyer wrote:
Crist J . Clark writes:
On Sun, Oct 29, 2000 at 01:00:56PM -0600, Mike Meyer wrote:
Correct me if I'm wrong, but I thought that when installing a port it would also update any dependencies. For example, I want to install xfce from the port, but it failed apparently on esound. So I then went to install esound by itself by it failed with the message that libtool is out of date. So I used pkg_delete on the old libtool and then installed the new libtool port, and now xfce installs just fine because esound also installs fine. I thought stuff like this got updated by installing from the port? This is the first time this sort of problem has happened to me, and I have installed many of the ports just to see what some of these programs are.
Well, "updating" a port isn't something the ports system deals with every well. It tries to *install* the dependencies if it can't find them. Libtool seems to break under these conditions, but it's the only thing I've run into that does.
IMHO, this is the correct behavior.
While I may agree with you, libtool isn't doing it right. It fails to build with strange messages, without telling you what's really wrong.
Hmmm, the message seems pretty straight forward to me,
Your libtool installation is out of date. Please remove and reinstall /usr/ports/devel/libtool.
The code is in /usr/ports/Mk/bsd.port.mk.
Other ports have simply installed multiple versions of the port.
Not really, other ports have _overwritten_ earlier versions of the port without changing the package database. That, IMHO, is bad. I'd rather be warned to remove the old and install the new than just clobber the old with new.
No, "installed" is the correct word. The installed packages datebase is updated - both versions are listed in the database. It's very likely that installing an update version of one package will overwrite files in an older version, possibly even all of them.
I never meant that "install" was incorrect. What I meant to correct was the idea that you will have "multiple versions" of the port installed. In most cases, you will overwrite most of the files from the previous version(s). You will have an intact entry in /var/db/pkg, but the information in it is now corrupted in the sense that the files it lists may now belong to the newer install, i.e. DO NOT pkg_delete an old version after you have installed the new version, delete the old one first. I've always hated when that happens.
This is not restricted to ports that are updates of each other; two unrelated ports may install a binary with the same name.
Yeah, I 'spose that could happen. Never seen it happen yet.
Just to confuse matters, some ports are designed so that having multiple versions around works correctly, with the last one installed being the "default" one.
Huh. I've seen it work unintentionally when a port changes drastically between versions.
As a final twist, if you remove an old version of a port and install a new one, you may break packages that are dependent on the old one unless you reinstall them after installing the new one.
Installing the new version without removing the old can break stuff too. Sometimes maintaining legacy support while adding bleeding edge software can be a pain, no?
All of which was summarized in my original answer as "'updating' a port isn't something the ports system deals with very well.".
True. But I was just pointing out that I like the fact the effort was put in to do some intelligent checks on the use libtool port. I think that type of setup, warning the user and letting him determine how he would like to proceed, is better than ports blindly installing and quite probably overwriting previous versions.
-- Crist J. Clark cjcl...@alum.mit.edu
To Unsubscribe: send mail to majo...@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message