PDA

View Full Version : [Solved] Problem upgrading (perl)


myha
February 2nd, 2009, 11:47
Hi,

I have come upon some problems with upgrading my system... It seems like the problem is in perl modules - I have installed some through cpan and some manually.

[root@server ~]# portupgrade -ai
---> Session started at: Mon, 02 Feb 2009 11:42:42 +0100
---> Skipping 'bsdpan-Time-Format-1.09' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 1 ignored, 0 skipped and 0 failed
---> Skipping 'bsdpan-Net-Traceroute-PurePerl-0.10' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 2 ignored, 0 skipped and 0 failed
---> Skipping 'bsdpan-B-Debug-1.11' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 3 ignored, 0 skipped and 0 failed
---> Skipping 'textproc/p5-XML-NamespaceSupport' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 4 ignored, 0 skipped and 0 failed
---> Skipping 'devel/p5-Test-Harness' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 5 ignored, 0 skipped and 0 failed
---> Skipping 'bsdpan-Pod-Perldoc-3.15' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 6 ignored, 0 skipped and 0 failed
---> Skipping 'textproc/p5-Pod-Simple' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 7 ignored, 0 skipped and 0 failed
---> Skipping 'bsdpan-autodie-1.998' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 8 ignored, 0 skipped and 0 failed
---> Skipping 'textproc/p5-Text-Balanced' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 9 ignored, 0 skipped and 0 failed
---> Skipping 'bsdpan-libwww-perl-5.823' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 10 ignored, 0 skipped and 0 failed
---> Skipping 'devel/p5-Devel-Symdump' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 11 ignored, 0 skipped and 0 failed
---> Skipping 'lang/p5-Switch' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 12 ignored, 0 skipped and 0 failed
---> Skipping 'devel/p5-Time-HiRes' because it is held by user (specify -f to force)
---> ** Upgrade tasks 13: 0 done, 13 ignored, 0 skipped and 0 failed
---> Listing the results (+:done / -:ignored / *:skipped / !:failed)
- (bsdpan-Time-Format-1.09)
- (bsdpan-Net-Traceroute-PurePerl-0.10)
- (bsdpan-B-Debug-1.11)
- textproc/p5-XML-NamespaceSupport (bsdpan-XML-NamespaceSupport-1.09)
- devel/p5-Test-Harness (bsdpan-Test-Harness-3.14)
- (bsdpan-Pod-Perldoc-3.15)
- textproc/p5-Pod-Simple (bsdpan-Pod-Simple-3.07)
- (bsdpan-autodie-1.998)
- textproc/p5-Text-Balanced (bsdpan-Text-Balanced-undef)
- (bsdpan-libwww-perl-5.823)
- devel/p5-Devel-Symdump (bsdpan-Devel-Symdump-2.08)
- lang/p5-Switch (bsdpan-Switch-2.14)
- devel/p5-Time-HiRes (bsdpan-Time-HiRes-1.9719)
---> Packages processed: 0 done, 13 ignored, 0 skipped and 0 failed
---> Session ended at: Mon, 02 Feb 2009 11:42:57 +0100 (consumed 00:00:14)
[root@server ~]#

[root@server ~]# cpan
Can't locate AutoLoader.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local
/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 /root) at /usr/local/lib/perl5/5.8.9/mach/Sys
/Hostname.pm line 8.
Compilation failed in require at /usr/local/lib/perl5/5.8.9/CPAN.pm line 39.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.8.9/CPAN.pm line 39.
Compilation failed in require at /usr/local/bin/cpan line 175.
BEGIN failed--compilation aborted at /usr/local/bin/cpan line 175.
[root@server ~]#

hydra
February 2nd, 2009, 11:56
Have you considered installing them from ports ?

DutchDaemon
February 2nd, 2009, 12:04
I was just about to suggest that, but I can't find equivalents for most of the bsdpan modules in the ports tree. I think they must have changed name over time, or they were included in other (meta)ports.

I'd suggest trying a portupgrade -f on each and every of the skipped packages first, one by one. This should solve the non-bsdpan stuff.

After that, consider a pkg_delete -f on the remaing modules, followed by a pkgdb -F to restore lost dependencies.

As a last resort (i.e. if that doesn't produce a result), you could try a portupgrade -rRf perl-5.8.9 to rebuild the entire Perl infrastructure from scratch.

myha
February 2nd, 2009, 13:07
Hi,

well I tried to do portupgrade -fa but it failes with some errors... Also If I try to isntall it through portupgrade nothing happens, manuall build fails:

[root@server /usr/ports/lang/p5-Switch]# portupgrade -f p5-Switch
[root@server /usr/ports/lang/p5-Switch]#
[root@server /usr/ports/lang/p5-Switch]# make deinstall
===> Deinstalling for lang/p5-Switch
[root@server /usr/ports/lang/p5-Switch]# make install
===> p5-Switch-2.14_1 depends on package: p5-Filter>0 - not found
===> Verifying install for p5-Filter>0 in /usr/ports/devel/p5-Filter
===> Building for p5-Filter-1.34
Can't locate AutoSplit.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local
/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at /usr/local/lib/perl5/5.8.9/ExtUtils/Install.pm
line 6.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.8.9/ExtUtils/Install.pm line 6.
Compilation failed in require.
BEGIN failed--compilation aborted.
*** Error code 2

Stop in /usr/ports/devel/p5-Filter/work/Filter-1.34.
*** Error code 1

Stop in /usr/ports/devel/p5-Filter.
*** Error code 1

Stop in /usr/ports/lang/p5-Switch.
[root@server /usr/ports/lang/p5-Switch]#

Otherwise I would like to remove all modules installed via cpan and reinstall them from ports as soon as I manage to solve this. :)

DutchDaemon
February 2nd, 2009, 13:23
First try perl-after-upgrade, followed by portupgrade -f p5*. Then see if you can do what I suggested earlier. Your current perl infrastructure is out of sync with its modules. That has to be fixed first.

myha
February 2nd, 2009, 14:23
Hi,

well I removed all bsdpan-* modules (through pkg_delete) that were duplicated and were causing problems, I had to recompile the perl and then I ran portupgrade -f p5*. Now everything seems fine...

Thanks for support,
brm

kasse
February 2nd, 2009, 14:39
I also have a question relating to problems upgrading perl.
After upgrading the ports tree I run portmaster perl and I get the following apparently endless loop


===>>> Waiting on fetch & checksum for lang/perl5.8 <<<===
BSDPAN-5.8.9.tar.bz2 8171 B 20 kBps
=> defined-or-5.8.9.bz2 doesn't seem to exist in /usr/ports/distfiles/perl.
=> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/skv/.
defined-or-5.8.9.bz2 35 kB 40 kBps
=> MD5 Checksum OK for perl/perl-5.8.9.tar.bz2.
=> SHA256 Checksum OK for perl/perl-5.8.9.tar.bz2.
=> MD5 Checksum OK for perl/BSDPAN-5.8.9.tar.bz2.
=> SHA256 Checksum OK for perl/BSDPAN-5.8.9.tar.bz2.
=> MD5 Checksum OK for perl/defined-or-5.8.9.bz2.
=> SHA256 Checksum OK for perl/defined-or-5.8.9.bz2.


this same text is repeated and repeated down the screen. I have tried to remove the distfiles and redo portmaster but nothing changes.

DutchDaemon
February 2nd, 2009, 15:04
Though I normally use portupgrade, 'portmaster perl' produced no errors here. In other words: it started to build after the checksums were found to be OK. What does a 'make clean && make' in /usr/ports/lang/perl5.8 produce? If there are no errors (and you're running perl-5.8.x already), try 'make deinstall clean && make reinstall clean' from there. If that works, do 'perl-after-upgrade' and a forced upgrade of all p5* ports.

DutchDaemon
February 2nd, 2009, 15:06
Hi,

well I removed all bsdpan-* modules (through pkg_delete) that were duplicated and were causing problems, I had to recompile the perl and then I ran portupgrade -f p5*. Now everything seems fine...

Thanks for support,
brm

Don't forget to run a pkgdb -F to make sure that any missing CPAN Perl modules are replaced by their ports counterparts.

kasse
February 2nd, 2009, 16:09
Though I normally use portupgrade, 'portmaster perl' produced no errors here. In other words: it started to build after the checksums were found to be OK. What does a 'make clean && make' in /usr/ports/lang/perl5.8 produce? If there are no errors (and you're running perl-5.8.x already), try 'make deinstall clean && make reinstall clean' from there. If that works, do 'perl-after-upgrade' and a forced upgrade of all p5* ports.

Thank you for your help, it seems like you have had to answer quite a few threads about perl upgrades lately. I am sorry that I had to be another person asking again, but I was worried about reinstalling perl outside of the comfort with portmaster. (Though I had no problems upgrading perl with portmaster on another almost identical computer, just to double check)

Anyhow.
So far it worked with no problems up to, and including, perl-after-upgrade.
Following the guide http://people.freebsd.org/~tobez/pau.html it says that you should use "pkgdb -F", from what I understand "pkgdb" is part of portupgrade. As I am using portmaster could I use "portmaster --check-depends" instead or should I install portupgrade?

kasse
February 2nd, 2009, 16:15
oops(I'm sorry that I cannot find where to edit my posts)
from pkgdb(1):

Actually, pkgdb and pkg_which are the same command, and are equivalent.

DutchDaemon
February 2nd, 2009, 16:20
These files are one and the same binary (their inodes match):

ls -ali /usr/local/sbin/pkg_which /usr/local/sbin/pkgdb

DutchDaemon
February 2nd, 2009, 16:36
And yes, I guess portmaster --check-depends does the same thing as pkgdb -F as far as checking (severed) dependencies goes. I don't know whether portmaster presents you with a dialog to fix these dependencies on the fly, like pkgdb does.

kasse
February 2nd, 2009, 17:21
Thanks I believe it is working now. It seems like you are the real "portmaster"!
I am sorry that this turned into another perl&portupgrade thread, but I thought portmaster was safer and less prone to fail.

DutchDaemon
February 2nd, 2009, 17:29
You're welcome. Hope this thread benefits all who ran/run into Perl upgrade woes.

Ravage
June 18th, 2009, 20:33
Can't get past this error... not compiling
Any ideas? Using 7.0-CURRENT FreeBSD


`Makefile' is up to date.
`DynaLoader.xs' is up to date.
rm -f libperl.so
cc -o libperl.so -shared -L/usr/local/lib gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o perl.o run.o
pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o
numeric.o mathoms.o locale.o pp_pack.o pp_sort.o DynaLoader.o -lm -lcrypt -lutil
cc: DynaLoader.o: No such file or directory
*** Error code 1
touch uni.data
1 error
*** Error code 1

Stop in /usr/ports/lang/perl5.10.
*** Error code 1

Stop in /usr/ports/lang/perl5.10.

SirDice
June 18th, 2009, 20:35
Using 7.0-CURRENT FreeBSD
This is either a very old system, or you actually meant 8.0-CURRENT.

I see you're installing perl 5.10. Is 5.8 still installed?

Ravage
June 18th, 2009, 20:39
result is always same trying portupgrading 5.9 or to 5.10
yea system is a lil old, but can't upgrade it, cause i'm out of country, if something breaks then... ehemmm

SirDice
June 18th, 2009, 21:18
7.0-CURRENT went RELEASE quite a some time ago (feb. 2008), -STABLE is currently at 7.2 and -CURRENT is 8.0. Also there's no Perl 5.9. Please post the correct versions.

When trying to install perl, try removing the old one first.

Ravage
June 18th, 2009, 21:56
oh my bad...
trying to portupgrade perl-5.8.9_2 to perl-5.8.9_3 or 5.10


cc -o libperl.so -shared -L/usr/local/lib gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o perl.o run.o
pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o
numeric.o mathoms.o locale.o pp_pack.o pp_sort.o DynaLoader.o -lm -lcrypt -lutil
cc: DynaLoader.o: No such file or directory
*** Error code 1
touch uni.data
1 error
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20090618-87599-1oo2c6y-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=perl-
5.8.9_2 UPGRADE_PORT_VER=5.8.9_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! lang/perl5.8 (perl-5.8.9_2) (unknown build error)

SirDice
June 19th, 2009, 06:36
The failure is somewhere before that. Please post the entire output.

DutchDaemon
June 19th, 2009, 10:54
Also post the output of pkg_info | grep perl-. It's getting unclear which version you have installed. Have you tried a straight upgrade, e.g. portupgrade/portmaster -o?

Ravage
June 20th, 2009, 09:47
updated to 7.2-RELEASE and rebuilt all ports... now everything ok... lucky me :D

reily_tump
July 27th, 2009, 23:25
oh my bad...
trying to portupgrade perl-5.8.9_2 to perl-5.8.9_3 or 5.10


cc -o libperl.so -shared -L/usr/local/lib gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o perl.o run.o
pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o
numeric.o mathoms.o locale.o pp_pack.o pp_sort.o DynaLoader.o -lm -lcrypt -lutil
cc: DynaLoader.o: No such file or directory
*** Error code 1
touch uni.data
1 error
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20090618-87599-1oo2c6y-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=perl-
5.8.9_2 UPGRADE_PORT_VER=5.8.9_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! lang/perl5.8 (perl-5.8.9_2) (unknown build error)


same problem here. on a 7.0 system.

cc -o libperl.so -shared -L/usr/local/lib malloc.o gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o
perl.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o
perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o DynaLoader.o -lm -lcrypt -lutil
cc: DynaLoader.o: No such file or directory
*** Error code 1
1 error
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.28631.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=perl-5.8.9_2 UPGRADE_PORT_VER=5.8.9_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! lang/perl5.8 (perl-5.8.9_2) (unknown build error)


any solutions so far?