Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Jul 2013 12:06:49 -0700
From:      Kevin Oberman <rkoberman@gmail.com>
To:        Anton Yuzhaninov <citrin@citrin.ru>
Cc:        FreeBSD Ports ML <freebsd-ports@freebsd.org>
Subject:   Re: "portmaster -r perl" rebuild almost everything, including apache24, php53 etc.
Message-ID:  <CAN6yY1t4HTz-7MHHkaQyiicMb4zuRC2wrpRu2g9Tf7mH7A3UVw@mail.gmail.com>
In-Reply-To: <kquu3m$bja$1@ger.gmane.org>
References:  <1306476328.20130621232328@serebryakov.spb.ru> <51C5611D.2000807@passap.ru> <kquu3m$bja$1@ger.gmane.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 2, 2013 at 9:11 AM, Anton Yuzhaninov <citrin@citrin.ru> wrote:

> On Sat, 22 Jun 2013 12:32:29, Boris Samorodov wrote:
> BS> 21.06.2013 23:23, Lev Serebryakov =D0=BF=D0=B8=D1=88=D0=B5=D1=82:
> >>   I have old 9-STABEL eserver, which was converted to pkg-ng some time
> >>  ago. This server has perl5.12, apache24, php53, some php modules, etc=
.
> >>  installed via ports.
> >>
> >>   I've tried to upgrade perl5.12 with recommended "portmaster -r perl"
> >>  and it rebuild almost everything, including apache, php, all php
> >>  modules, all apache modules, midnigght commander (mc) and lot more.
> BS>
> BS> Well, for me it's not "all" at amount POV:
> BS> -----
> BS> % pkg info  | wc -l
> BS>      726
> BS> % pkg info -r perl | wc -l
> BS>      234
>
> This is because dependencies stored in package database are recursive.
> Even with pkgng.
>
> With old /var/db/pkg was not easy to recursively calculete dependencies
> when need, and this recursive list was pre-calculeted and stored. I
> don't know why this is not fixed in pkgng.
>
> For example if you have ports:
> A -> B -> C -> D
> in package database stored, that A depends on B+C+D, but should only
> be stored that A depends on B.
>
> This recursive dependencies causes different problems - many extra ports
> to rebuild is only one of this problems.
>
> glib among others depends on perl, so with recursive dependencies all
> ports, that depends on glib will be rebuild by portmaster -r perl with
> no profit from this rebuild.
>
>
portmaster/upgrade -r perl5.xx is safe, but re-installs a huge number of
ports that simply don't need it. Instead, I do the following:
portmaster lang/perl5 p5- net-snmp ImageMagick dvdrip

This will catch almost every perl module. If you don't have net-snmp,
dvdrip,  or ImageMagick installed on your system, leave them off the
command.

Once that is done, go to /usr/local/lib/perl5/site_perl. Then cd to the
directory for the OLD version that you just replaced. (e.g. "cd 5.14.2".)
Check for any remaining regular files (not directories) under this location
"find . -type f" should do the trick. Use pkg_info or pkg info to find out
which port installed the files, if any are found and re-install that port.

portmaster p5-XML-Parser (don't know why, but something odd seems to happen
with that file after a perl update, so you can re-install it AGAIN, just to
be sure.

Yes, it's more complicated and may have some cases where something is
missed, but it seems to work for me.
--=20
R. Kevin Oberman, Network Engineer
E-mail: rkoberman@gmail.com



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