upgrading ports with a lot of dependencies

Matthew Seaman matthew at FreeBSD.org
Sun Aug 26 07:06:41 UTC 2012


On 26/08/2012 06:40, Jim Pazarena wrote:
> My question is a general one, with the following specific example.
> 
> I wanted to re-compile the latest phpmyadmin
> but when I tried that, I get a "you must have the latest php5" (5.4.6)

The phpMyAdmin port only imposes the restriction that you must be
running at least version 5 of php.  It should work fine with any of
lang/php5, lang/php53 or lang/php52.

However, if you already had lang/php5 installed from a few months ago,
that would predate the switch of that port from php 5.3.x to 5.4.x.
This change did necessitate recompiling and reinstalling anything php
dependent.

Except that there is an alternative: you could switch to using
lang/php53 instead.  Unfortunately there are no instructions on how to
do that without reinstalling everything in /usr/ports/UPDATING: it
involves rewriting dependency information stored in /var/db/pkg and
other somewhat risque manipulation of port metadata.  Unless you know
exactly what you're doing, a full-blown upgrade of php is more likely to
give you a good result.

> when I try php5
> I get a dependency of devel/pkgconf
> 
> when I compile pkgconf, it conflicts with devel/pkg-config

Now, this one is covered in UPDATING -- the 20120726 entry to be
precise.  Follow the instructions there, and you can avoid
mass-reinstallation of everything that uses pkg-config / pkgconf (which
is basically just about everything.)


> Upon investigation it looks like pkg-config is replaced with pkgconf
> however attempting to remove it show dozens of dependencies preventing
> the removal.
> 
> I find this series of challenges frequently as installs move along
> in age, and usually wind up re-loading the entire server to beat the
> challenge.
> 
> There must be an easier way. Advice would be greatly appreciated.

It's a lot easier if you update your system more frequently.  Meaning
each update will be smaller and you're less likely to run into a stack
of problems all needing to be solved at once.  Fortnightly or monthly
updates should be sufficient.

Also, get in the habit of reading /usr/ports/UPDATING -- it tells you
about most of the gotchas, and more importantly, how to deal with them
without having to nuke-and-repave.

Finally, yes, this is an area where FreeBSD ends up consuming lots of
time and CPU power.  You might consider trying out pkgng
(http://wiki.freebsd.org/pkgng), which is being developed as a solution
to this and other problems.  pkgng is just coming up to release-1.0: the
code is in pretty good shape, but the infrastructure to support general
use isn't in place yet.  To get round that, try out poudriere as a way
of building pkgs off-line and maintaining your own pkgng repository.
pkgng makes upgrading even large numbers of ports very much faster.

	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.
PGP: http://www.infracaninophile.co.uk/pgpkey


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 264 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20120826/a4c46ae2/signature.pgp


More information about the freebsd-ports mailing list