Problem upgrading Perl to 5.8.8 on Ubuntu server

  • ChantCd_com
  • Born
  • Born
  • ChantCd_com
  • Posts: 4

Post 3+ Months Ago

I am still having a problem compiling Apache on Ubuntu Server 6.06 LTS.
I can solve THIS problem at least by installing Perl 5.8.8 from source -- but I don't know which directories to use so that it will completely overwrite the old Perl. Do I have to install or move all my existing Perl modules after the upgrade to 5.8.8?

I ask this because when I upgraded to 5.8.8 from source, I discovered that nothing that even TOUCHED Perl worked anymore. I had to wipe the whole machine and start over! I'm to the point in my system-building process where I need to get Apache built, but if I install Perl 5.8.8 and it bombs my system again, I'll be back to square one AGAIN.

I heard about a utility called CPAN.pm which catalogs all your modules, and downloads them again for you easily after an upgrade. Does that mean there's no way to install a new version of Perl and not have to install everything else over again?

Maybe someone could tell me some of the pertinent switches (or directories) for Perl installation. I'm thinking that if I knew enough about Perl installation, I'd be able to tell it to use the right directories, and it would overwrite the old one and there'd be no problems. I mean, I'm only upgrading from 5.8.7 to 5.8.8 -- it can't be that big of a change!

But it's enough of a change to fix my problem (see end of post). I think it's more because I'm compiling it myself, rather than something in the Perl executable itself.

Any ideas? Anyone else had this same problem?

Thanks,

Matthew
matthew at tanbooks dot com

===============================================================
About my Perl version (it came pre-installed with Ubuntu):

(Short version -v)
This is perl, v5.8.7 built for i486-linux-gnu-thread-multi

(Long version -V)
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=linux, osvers=2.6.10, archname=i486-linux-gnu-thread-multi
uname='linux rothera 2.6.10 #1 smp fri may 13 09:24:22 utc 2005 i686 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.7 -Dsitearch=/usr/local/lib/perl/5.8.7 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.7 -Dd_dosuid -des'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.0.3 20051204 (prerelease) (Ubuntu 4.0.2-5ubuntu2)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=/lib/libc-2.3.5.so, so=so, useshrplib=true, libperl=libperl.so.5.8.7
gnulibc_version='2.3.5'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
Locally applied patches:
SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962
Built under linux
Compiled at Dec 16 2005 07:48:39
@INC:
/etc/perl
/usr/local/lib/perl/5.8.7
/usr/local/share/perl/5.8.7
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.8
/usr/share/perl/5.8
/usr/local/lib/site_perl
===============================================================

Here are 5% of the error messages I get (they mostly look like this):

:Table.c:(.text+0x3207): undefined reference to `Perl_Gthr_key_ptr'
:Table.c:(.text+0x3231): undefined reference to `Perl_newXS'
:Table.c:(.text+0x323d): undefined reference to `Perl_Gthr_key_ptr'
:Table.c:(.text+0x324f): undefined reference to `Perl_Tstack_base_ptr'
:Table.c:(.text+0x3263): undefined reference to `Perl_Gthr_key_ptr'
:Table.c:(.text+0x3275): undefined reference to `Perl_Isv_yes_ptr'
:Table.c:(.text+0x3283): undefined reference to `Perl_Gthr_key_ptr'
:Table.c:(.text+0x3295): undefined reference to `Perl_Tstack_sp_ptr'
:Table.c:(.text+0x32a3): undefined reference to `Perl_Gthr_key_ptr'
:Table.c:(.text+0x32b5): undefined reference to `Perl_Tstack_base_ptr'
...
Loader.c:(.text+0x39c): undefined reference to `Perl_mg_set'
:DynaLoader.c:(.text+0x3d9): undefined reference to `Perl_sv_newmortal'
:DynaLoader.c:(.text+0x3ed): undefined reference to `Perl_sv_2iv'
:DynaLoader.c:(.text+0x407): undefined reference to `Perl_croak'
/usr/lib/perl/5.8/auto/DynaLoader/DynaLoader.a(DynaLoader.o): In function `XS_DynaLoader_dl_find_symbol':DynaLoader.c:(.text+0x492): undefined reference to `Perl_sv_newmortal'
:DynaLoader.c:(.text+0x4b7): undefined reference to `Perl_sv_setiv'
:DynaLoader.c:(.text+0x4d6): undefined reference to `Perl_sv_2iv'
:DynaLoader.c:(.text+0x4f8): undefined reference to `Perl_sv_2pv_nolen'
:DynaLoader.c:(.text+0x53d): undefined reference to `Perl_croak'
  • this213
  • Guru
  • Guru
  • User avatar
  • Posts: 1260
  • Loc: ./

Post 3+ Months Ago

You should do yourself a real favor and install Fedora Core 5 instead. I personally don't like Ubuntu ::at all::, but my personal preferences aside, it has no place in the role of a server, even as a development system. Though people seem to love it for common desktop usage (I still can't understand how), anyone I've talked to who does any actual work on their system hates it (or at least, finds it annoying).

Fedora Core also comes with Perl 5.8.8 within its repos, so upgrading to it is as simple as "yum update perl". If you follow the Stanton Finley Guide (which is becoming a Fedora standard) you should be more than alright.

To your problem: You're probably not using the right library prefix with ./configure, Ubuntu likes to put things where they don't belong (or, where nobody else puts them). Check your path to the perl libraries (probably /usr/include, but I don't have a Ubuntu system in front of me to look) - the standard location for these is either /usr/local/lib or /usr/lib (which is where it's looking now).
  • ChantCd_com
  • Born
  • Born
  • ChantCd_com
  • Posts: 4

Post 3+ Months Ago

What about the new update to the CentOS line, 3.8? (I assume 4.3 is still too cutting-edge)

And before I messed with Ubuntu, I was using SuSE 10.0, and then OpenSuSE 10.1 -- they seemed fine, but had a LOT of packages installed with them, which wasn't what I'm after.

I'm looking for a nice bare-bones OS (a server install?) which would be A) quicker and B) less cluttered once it's installed, so I can hope to learn what all the files on my machine are :)

Matthew
  • this213
  • Guru
  • Guru
  • User avatar
  • Posts: 1260
  • Loc: ./

Post 3+ Months Ago

Actually, if that's what you're looking for, I'd go for either newest version of CentOS or Gentoo. I wouldn't bother with CentOS 3.8, things are quite thouroughly tested before they get into CentOS (packages have to be included into RHEL before they get into CentOS). CentOS will give you the ability to install "minimally" wich only includes the packages required to get the system up and running, as well as the package managers (yum, up2date). This option does not include the X Window system either.

Gentoo takes a bit longer to get set up, but you have the ability to create a system with just exactly what you want on it. Also, since it's source based, everything *should* run a little faster being compiled on-system for the given machine.

If you're looking to learn all about Linux, I have a simple 2-step program for you:
1. Install Slackware with X, Gnome and all the goodies you like to use
2. Create an LFS system from your Slackware installation (http://www.linuxfromscratch.org/)

When you finish this, you'll know more about Linux than most people.

Post Information

  • Total Posts in this topic: 4 posts
  • Users browsing this forum: No registered users and 23 guests
  • You cannot post new topics in this forum
  • You cannot reply to topics in this forum
  • You cannot edit your posts in this forum
  • You cannot delete your posts in this forum
  • You cannot post attachments in this forum
 
 

© 1998-2014. Ozzu® is a registered trademark of Unmelted, LLC.