Date: Tue, 9 Jul 2013 11:24:08 -0700 (PDT) From: "Chris H" <bsd-lists@1command.com> To: "Fabian Wenk" <fabian@wenks.ch> Cc: freebsd-stable@freebsd.org Subject: Re: perl upgrade woes -- how to best reconcile? Message-ID: <44f72b29a68d30c276b13ee4a2730cc9.authenticated@ultimatedns.net> In-Reply-To: <51DBEB9F.7020803@wenks.ch> References: <b6972e29972ccc387362375cac01efa8.authenticated@ultimatedns.net> <51DBEB9F.7020803@wenks.ch>
next in thread | previous in thread | raw e-mail | index | archive | help
Greetings Fabian, and thank you for your reply. > Hello Chris > > On 09.07.2013 11:18, Chris H wrote: >> How do I best sort this all out. I _really_ miss the perl_after_upgrade script, that >> used to accompany this process. > > I also had some challenges with this perl upgrade, but I used > portupgrade. In the end I created a custom script based on the > output from 'portupgrade -nrf perl' which did the following: > > #!/usr/local/bin/bash > set -e > portupgrade -f lang/perl5.12 > portupgrade -f converters/p5-MIME-Base64 > portupgrade -f devel/p5-Test-Harness > portupgrade -f devel/p5-Locale-Maketext-Simple > [...] > > This script does abort, when a single command fails, so you see > what fails and you can fix it. Eventually you will need to check > dependencies and rebuild one of the ports now, which is later in > the script. When the failed port did build, then remove the > already done ports from the script and restart it. > > At the end I also did check the folders in /usr/local/lib/perl5/ > for left overs in the folders from the old perl version. I then > used pkg_which to find out to which port the belongs and did also > a portupgrade -f for this port too. Thanks for that. I also considered cobbling a script to reconcile things, but in the end, felt simply un-installing Perl and the some 200 modules would be both faster, and less prone to failure. > > In the end everything was fine, but it took a little more effort, > as I had around 235 ports to rebuild. But as long as you stay > with e.g. perl 5.12.x, it is easier then before with the > perl_after_upgrade script for minor updates. I ran into problems in my first attempt to use portmaster(8), issuing portmaster -a. It failed on a number of ports, and I was forced to run it several times. I had some difficulty with it given that not all the options are quite clear -- "-s", for example. One can only infer it's action(s) from the context it used within the man(1) page, it doesn't literally explain it's intent. In the end, I was forced to perform many "make reinstall" jobs, which left the dependency records _way_ out-of-whack -- pkg_info: pkg_info: corrupted record (pkgdep line without argument), ignoring. Forcing me to resolve the issue by cobbling && running the following: grep "^@pkgdep" /var/db/pkg/*/+CONTENTS | awk '{ if (NF != 2) { print $1 } }' | cut -d':' -f1 I redirected the output to a file, where I then "cat | sort -u" to another file, which left me with a list of the ports to reconcile. performing a "portmaster --check-depends" resolved the problem. I guess the only _sure-fire_ way to resolve my issue, is to catalog all of my installed Perl modules, and remove Perl 5.12, and the modules. re-install Perl 5.12.5, and cobble a script to install all the modules I currently have installed. My perl5 tree currently looks like: /usr/local/lib/perl5/5.12/man/ man3/ whatis /usr/local/lib/perl5/5.12.4/ man3/ whatis What a mess! In the end, I guess the moral of the story is; don't upgrade. I've been on BSD since the late 70's, and as such, am no stranger to the upgrade path. But recent experience seems to show, things aren't getting any easier (or necessarily better). :( > > The next big challenge then will be the upgrade to e.g. 5.14.x or > 5.16.x. I don't think I'm even willing to go there, after this mess. Thanks again, for taking the time to respond. --chris > > > bye > Fabian > _______________________________________________ > freebsd-stable@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44f72b29a68d30c276b13ee4a2730cc9.authenticated>