[csw-users] rsync throws libintl error on fresh install
James Lee
james at opencsw.org
Thu Apr 2 11:04:56 CEST 2009
On 02/04/09, 06:09:02, David "N." Blank-Edelman <dnb at ccs.neu.edu> wrote
regarding [csw-users] rsync throws libintl error on fresh install:
> # /opt/csw/bin/rsync
> ld.so.1: rsync: fatal: libintl.so.8: open failed: No such file or
> directory
...
> # ldd /opt/csw/bin/rsync
> libc.so.1 => /usr/lib/libc.so.1
> libdl.so.1 => /usr/lib/libdl.so.1
> /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
...
> # file /opt/csw/bin/rsync
> /opt/csw/bin/rsync: ELF 32-bit MSB executable, SPARC, version 1,
> dynamically linked (uses shared libs), stripped
rsync is isaexec which invokes an arch specific file, so no point
in directly perusing /opt/csw/bin/rsync.
$ diff /opt/csw/bin/rsync /opt/csw/bin/isaexec
ls -l /opt/csw/bin/rsync /opt/csw/bin/isaexec
-r-xr-xr-x 41 root bin 5256 Jan 5 2000
/opt/csw/bin/isaexec
-r-xr-xr-x 41 root bin 5256 Jan 5 2000 /opt/csw/bin/rsync
$ cksum /opt/csw/bin/rsync /opt/csw/bin/isaexec
762992779 5256 /opt/csw/bin/rsync
762992779 5256 /opt/csw/bin/isaexec
$ file /opt/csw/bin/*/rsync
/opt/csw/bin/sparc/rsync: ELF 32-bit MSB executable SPARC Version 1,
dynamically linked, stripped
/opt/csw/bin/sparcv8/rsync: ELF 32-bit MSB executable SPARC Version 1,
dynamically linked, stripped
/opt/csw/bin/sparcv9/rsync: ELF 64-bit MSB executable SPARCV9 Version 1,
dynamically linked, not stripped
Run isalist and the first match in the list will be the one being used,
or
run truss rsync and see what files are opened.
Run ldd on the actual executable which on a 280R I expect to be
/opt/csw/bin/sparcv9/rsync.
My output (test system, Solaris 8 on U60)
$ ldd /opt/csw/bin/sparcv9/rsync
libpopt.so.0 => /opt/csw/lib/sparcv9/libpopt.so.0
libsec.so.1 => /usr/lib/64/libsec.so.1
libiconv.so.2 => /opt/csw/lib/sparcv9/libiconv.so.2
libsocket.so.1 => /usr/lib/64/libsocket.so.1
libnsl.so.1 => /usr/lib/64/libnsl.so.1
libc.so.1 => /usr/lib/64/libc.so.1
libintl.so.8 => /opt/csw/lib/64/libintl.so.8
libdl.so.1 => /usr/lib/64/libdl.so.1
libmp.so.2 => /usr/lib/64/libmp.so.2
/usr/platform/SUNW,Ultra-60/lib/sparcv9/libc_psr.so.1
But are probably looking the wrong place as rsync doesn't directly
use libintl.
$ dump -Lv /opt/csw/bin/sparcv9/rsync | grep NEEDED
[1] NEEDED libpopt.so.0
[2] NEEDED libsec.so.1
[3] NEEDED libiconv.so.2
[4] NEEDED libsocket.so.1
[5] NEEDED libnsl.so.1
[6] NEEDED libc.so.1
So to find what is asking for libintl run ldd with -s
$ ldd -s /opt/csw/bin/sparcv9/rsync
(long output omitted)
So test libpopt.so.0
I can't see a fault myself, sorry I've not done my tests with
maximum rigour, but I hope the isaexec bit is the key to
unlocking this problem.
James.
More information about the users
mailing list