On 11/28/12 12:57 PM, Jean-Louis Martineau wrote:
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
It is apparently explicitly looking for that version: "find object=libamserver-2.5.1p3.so" (from ldd
-s). So, if I move the old libraries, the ldd fails. It isn't just looking for libamserver.so and
finding one that links to 2.5.1p3.
If I remove all the old libraries, how far back in the build do I have to go? All the way back to
the beginning? What other pieces of Amanda 2.5.1p3 do I have to hide for 3.3.2 to build correctly?
Following is the beginning of the ldd -s:
marlin:/usr/local/etc/amanda/daily$ ldd -s
/usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so | head -30
find object=libamglue-3.3.2.so; required by
/usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so
search path=/usr/local/lib/amanda (LD_LIBRARY_PATH)
trying path=/usr/local/lib/amanda/libamglue-3.3.2.so
libamglue-3.3.2.so => /usr/local/lib/amanda/libamglue-3.3.2.so
find object=libamserver-2.5.1p3.so; required by
/usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so
search path=/usr/local/lib/amanda (LD_LIBRARY_PATH)
trying path=/usr/local/lib/amanda/libamserver-2.5.1p3.so
search
path=/usr/local/lib/amanda:/usr/local/lib:/usr/local/samba/lib:/usr/sfw/lib:/usr/lib:/usr/ccs/lib:/usr/ucblib
(RPATH from file /usr/local/lib/perl5/site_perl/5.16.2/auto/Amanda/Logfile/libLogfile.so)
trying path=/usr/local/lib/amanda/libamserver-2.5.1p3.so
trying path=/usr/local/lib/libamserver-2.5.1p3.so
trying path=/usr/local/samba/lib/libamserver-2.5.1p3.so
trying path=/usr/sfw/lib/libamserver-2.5.1p3.so
trying path=/usr/lib/libamserver-2.5.1p3.so
trying path=/usr/ccs/lib/libamserver-2.5.1p3.so
trying path=/usr/ucblib/libamserver-2.5.1p3.so
search
path=/lib:/usr/lib:/opt/coolstack/lib:/usr/local/gcc/lib/gcc/sparc-sun-solaris2.10/4.2.0:/usr/local/lib
(configuration default - /var/ld/ld.config)
trying path=/lib/libamserver-2.5.1p3.so
trying path=/usr/lib/libamserver-2.5.1p3.so
trying path=/opt/coolstack/lib/libamserver-2.5.1p3.so
trying
path=/usr/local/gcc/lib/gcc/sparc-sun-solaris2.10/4.2.0/libamserver-2.5.1p3.so
trying path=/usr/local/lib/libamserver-2.5.1p3.so
libamserver-2.5.1p3.so => (file not found)
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.
--
---------------
Chris Hoogendyk
-
O__ ---- Systems Administrator
c/ /'_ --- Biology & Geology Departments
(*) \(*) -- 140 Morrill Science Center
~~~~~~~~~~ - University of Massachusetts, Amherst
<[email protected]>
---------------
Erdös 4