On 11/28/2012 12:23 PM, Chris Hoogendyk wrote:
On 11/28/12 12:01 PM, Jean-Louis Martineau wrote:
On 11/28/2012 11:46 AM, Chris Hoogendyk wrote:
OK. I needed to do it anyway, so I bit the bullet and downloaded and
built Perl 5.16.2. I then rebuilt Amanda (starting with a make
clean) with the same environment and gcc 3.4.6. It seemed to build
alright, but then I had the same sequence of errors.
You must rerun the configure too
Yup. Did that.
# make clean
# ./my-configure
# make
# make install
"my-configure" consists of:
#!/bin/ksh
./configure --with-user=amanda \
--with-group=amanda \
--with-gnutar=/usr/local/etc/amanda/tools/gtar \
--with-ssh-security
The Amanda build process failed to issue a chmod on the directories
containing the .so files for the Amanda perl modules. Because our
systems run with restrictive umasks, the amanda user was thus unable
to access those directories that had been created by the install.
After fixing that, I came to the same relocation error (but now with
a different Perl compiled with the same compiler as Amanda). For
amcheck:
Can't load
'/usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so'
for module Amanda::Logfile: ld.so.1: perl5.16.2: fatal: relocation
error: file
/usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so:
symbol amanda_log_trace_log: referenced symbol not found at
/usr/local/lib/perl5/5.16.2/sun4-solaris-thread-multi/DynaLoader.pm
line 190.
at /usr/local/lib/perl5/site_perl/5.16.2/Amanda/Logfile.pm line 12.
Compilation failed in require at
/usr/local/libexec/amanda/amcheck-device line 26.
BEGIN failed--compilation aborted at
/usr/local/libexec/amanda/amcheck-device line 26.
run: ldd
/usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so
Do it find the correct amanda library?
marlin:/usr/local/etc/amanda/daily$ ldd
/usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so
libamglue-3.3.2.so => /usr/local/lib/amanda/libamglue-3.3.2.so
libamserver-2.5.1p3.so => /usr/local/lib/libamserver-2.5.1p3.so
libamdevice-3.3.2.so =>
/usr/local/lib/amanda/libamdevice-3.3.2.so
libamxfer-3.3.2.so => /usr/local/lib/amanda/libamxfer-3.3.2.so
libndmlib-3.3.2.so => /usr/local/lib/amanda/libndmlib-3.3.2.so
libamanda-3.3.2.so => /usr/local/lib/amanda/libamanda-3.3.2.so
libdl.so.1 => /usr/lib/libdl.so.1
libcurl.so.4 => /usr/local/lib/libcurl.so.4
libidn.so.11 => /usr/local/lib/libidn.so.11
libldap-2.4.so.2 => /usr/local/lib/libldap-2.4.so.2
liblber-2.4.so.2 => /usr/local/lib/liblber-2.4.so.2
libgen.so.1 => /usr/lib/libgen.so.1
libsasl2.so.2 => /usr/local/lib/libsasl2.so.2
libssl.so.0.9.7 => /usr/sfw/lib/libssl.so.0.9.7
libcrypto.so.0.9.7 => /usr/sfw/lib/libcrypto.so.0.9.7
libz.so => /usr/local/lib/libz.so
libm.so.2 => /usr/lib/libm.so.2
libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0
libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0
libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0
libpthread.so.1 => /usr/lib/libpthread.so.1
libthread.so.1 => /usr/lib/libthread.so.1
librt.so.1 => /usr/lib/librt.so.1
libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libresolv.so.2 => /usr/lib/libresolv.so.2
libintl.so.8 => /usr/local/lib/libintl.so.8
libiconv.so.2 => /usr/local/lib/libiconv.so.2
libsec.so.1 => /usr/lib/libsec.so.1
libc.so.1 => /usr/lib/libc.so.1
libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1
libreadline.so.5 => /opt/coolstack/lib/libreadline.so.5
libcurses.so.1 => /usr/lib/libcurses.so.1
libamanda-2.5.1p3.so => /usr/local/lib/libamanda-2.5.1p3.so
libaio.so.1 => /lib/libaio.so.1
libmd.so.1 => /lib/libmd.so.1
libmp.so.2 => /lib/libmp.so.2
libscf.so.1 => /lib/libscf.so.1
libavl.so.1 => /lib/libavl.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libssl_extra.so.0.9.7 => /usr/sfw/lib/libssl_extra.so.0.9.7
libcrypto_extra.so.0.9.7 => /usr/sfw/lib/libcrypto_extra.so.0.9.7
/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1
/platform/SUNW,SPARC-Enterprise-T5220/lib/libmd_psr.so.1
marlin:/usr/local/etc/amanda/daily$
So, Why is it poking at 2.5.1p3 stuff?
It is searching for libamserver.so and probably find one in /usr/local/lib.
Can you remove the old version?
You can try adding /usr/local/lib/amanda at the beginning of LD_LIBRARY_PATH
Jean-Louis
jean-Louis
On 11/26/12 1:27 PM, Jean-Louis Martineau wrote:
Chris,
You must use the same compiler and compiler flags as used for
compiling perl.
Jean-Louis
On 11/26/2012 01:07 PM, Chris Hoogendyk wrote:
I'm having some issues with an install. I have a T5220 running
Solaris 10 that has been an Amanda 2.5.1p3 client for some time.
The storage distribution has escalated to the point where I wanted
to make this into an Amanda server, and figured I should update it
in the process. So, I downloaded Amanda 3.3.2 and proceeded. One
added complication is that I am still running coolstack (including
perl) on this server, although I have updated gcc (to 3.4.6) so
that it is no longer gccfss.
At first, it seemed the build and install went through without
much trouble. I figured I was ready to go ahead with the
transition and started work on getting it going; which, of course,
broke the 2.5.1p3 connections. Now, until I get it running, I have
a server with lots of storage not getting backed up.
The first thing I ran into qualifies as an outright installer bug,
I think. When I tried to run amcheck or amdump, I got an error
traceback indicating that it couldn't find the libDebug.so
associated with the module debug.pm. After chasing it down, I
discovered that the directory containing the .so's was 750,
root:other. So, the install script created the directory and put
things there, but failed to set the access privileges. On systems
with restrictive umasks that will fail. There were at least two
directories involved in the install of perl modules that were not
readable by user amanda.
Once those were fixed, I started seeing
for amcheck:
Can't load
'/opt/coolstack/lib/perl5/site_perl/5.8.8/auto/Amanda/Logfile/libLogfile.so'
for module Amanda::Logfile: ld.so.1: perl: fatal: relocation
error: file
/opt/coolstack/lib/perl5/site_perl/5.8.8/auto/Amanda/Logfile/libLogfile.so:
symbol amanda_log_trace_log: referenced symbol not found at
/opt/coolstack/lib/perl5/5.8.8/sun4-solaris-thread-multi/DynaLoader.pm
line 230.
at /opt/coolstack/lib/perl5/site_perl/5.8.8/Amanda/Logfile.pm
line 12
Compilation failed in require at
/usr/local/libexec/amanda/amcheck-device line 26.
BEGIN failed--compilation aborted at
/usr/local/libexec/amanda/amcheck-device line 26.
and for amdump:
Can't load
'/opt/coolstack/lib/perl5/site_perl/5.8.8/auto/Amanda/Logfile/libLogfile.so'
for module Amanda::Logfile: ld.so.1: perl: fatal: relocation
error: file
/opt/coolstack/lib/perl5/site_perl/5.8.8/auto/Amanda/Logfile/libLogfile.so:
symbol amanda_log_trace_log: referenced symbol not found at
/opt/coolstack/lib/perl5/5.8.8/sun4-solaris-thread-multi/DynaLoader.pm
line 230.
at /opt/coolstack/lib/perl5/site_perl/5.8.8/Amanda/Logfile.pm
line 12
Compilation failed in require at /usr/local/sbin/amdump line 29.
BEGIN failed--compilation aborted at /usr/local/sbin/amdump line 29.
I'm not quite sure where to start here. One sysadmin is arguing
that I have to rebuild perl from source and stop using coolstack
altogether. That gets somewhat complicated, because we have a
history with lots of applications dependent on perl and lots of
perl modules installed to get various of those applications
running. I suppose the proper path would be to build into a
version directory and have the default /usr/local/bin/perl
continue to link to coolstack for compatibility, but build Amanda
against the new version, and then start converting other apps.
I'm hoping there is a simpler approach that I'm missing.
Of course, this is a critical server. I can't have services not
working. It hurts to have backups not working, but I can survive
that if I can get them running again before they are needed. In
other words, asap.