rsync solaris + ld.so.1: rsync: fatal: libiconv.so.2: open failed:
Solaris / OpenSolarisThis forum is for the discussion of Solaris and OpenSolaris.
General Sun, SunOS and Sparc related questions also go here.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
With the rsync I am getting following error:
ld.so.1: rsync: fatal: libiconv.so.2: open failed: No such file or directory
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.5]
Are you logged as root when you run rsync and experience the issue ?
LD_LIBRARY_PATH is a hack and doesn't apply to root in that specific case as /usr/local/lib isn't a trusted directory anyway.
I tried with root as well as normal system account. same error.
sun067:/# rsync
ld.so.1: rsync: fatal: libiconv.so.2: open failed: No such file or directory
Killed
sun067:/# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
sun067:/# rsync
ld.so.1: rsync: fatal: libiconv.so.2: open failed: No such file or directory
Killed
sun067:/# export LD_LIBRARY_PATH=/usr/local/lib
sun067:/# rsync
ld.so.1: rsync: fatal: libiconv.so.2: open failed: No such file or directory
Killed
busun067:/#
Last edited by xxx_anuj_xxx; 07-01-2009 at 10:09 AM.
Reason: added standard I/O
You can install the rsync package from sunfreeware (along with the dependencies you miss) and either remove SMCrsync, or use the LD_LIBRARY_PATH hack to use first the libraries in /usr/local/lib
As I already wrote, the LD_LIBRARY_PATH hack doesn't work for root.
You might use instead:
Code:
crle -u -l /usr/local/lib -s /usr/local/lib
Beware that a mistake made using the crle command migth make your system unusable.
Please read carefully the crle manual page before using it, especially the part explaining how to revert to a working system after setting a bogus library path:
Code:
LD_NOCONFIG=yes rm /var/ld/ld.config
Edit:
Hmm: it looks like the LD_NOCONFIG feature is only in Solaris Express based releases ...
I have the same problem and need to solve it rather urgently.
I removed the older SMCrsync, then installed prerequisite packages and the latest rsync-3.0.6 as a package.
I used LD_LIBRARY_PATH with and without ld.config created with crle, all to no avail.
By setting LD_DEBUG I can see that the linker does find the libiconv.so.2 when invoking rsync, but still rsync fails with ld.so.1 fatal error complaining about no such file libiconv.so.2:
By the way, this rsync binary is somewhat broken as it demands libiconv which isn't really required under Solaris.
The iconv functions are already included in Solaris libc.
then I am getting an empty file, so I assume my shell is clean, even though actually logging in with ssh does generate many echo messages on the remote machine.
For the actual rsync command I have used 2 approaches:
then I am getting an empty file, so I assume my shell is clean
I assume the test.dat file is local so you aren't really testing the whole chain. A failed command would also produce an empty file. Better to run something like:
and see if the remote hostname shows up in test.dat.
About the main rsync issue, it is quite possible rsync has its dependencies fixed on the local side but not on the other one. The LD_LIBRARY_PATH hack is not an option for the remote command, unless you wrap rsync with a custom script. You really should check you set crle correctly.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.