作者:Trotter
邮箱:trotter@kekerde.net
出处:www.gbunix.com
转载请保持文档完整,注明出处。
Linux用习惯了,总是感觉Solaris使用起来不是很舒服。今天就遇到一个问题。由于Solaris自带的tar好像不能识别长文件名。使用过程中有时可能会出现一些问题。于是在www.sunfreeware.com下载了一个tar包。进行安装。
bash-2.03# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/8/tar-1.18-sol8-sparc-local.gz
bash-2.03# gzip -d tar-1.18-sol8-sparc-local.gz
bash-2.03# pkgadd -d tar-1.18-sol8-sparc-local
安装成功。试用
bash-2.03# /usr/local/bin/tar -czvf test.tar.gz www.gbunix.com
ld.so.1: tar: fatal: libintl.so.3: open failed: No such file or directory
提示无法找到libintl.so.3文件,首先查找LD_LIBRARY_PATH的设置信息
bash-2.03# set
返回如下结果
.....................
LD_LIBRARY_PATH=:/usr/local/lib:/usr/lib:/usr/local/ssl/lib:
/usr/openwin/lib:/usr/local/mysql/lib/mysql:/usr/lib/sasl2
.....................
说明/usr/lib/和/usr/local/lib目录已经加入到LD_LIBRARY_PATH。
然后查找/usr/lib/和/usr/local/lib目录下是否包含libintl.so.3文件
发现/usr/local/lib没有任何libintl.so.*的文件信息,在/usr/lib/下包含libintl.so文件
bash-2.03# cd /usr/lib/
bash-2.03# ls libintl.*
libintl.a libintl.so libintl.so.1
尝试着使用文件链接方式解决。
bash-2.03# ln -s libintl.so libintl.so.3
再次试用tar
bash-2.03# /usr/local/bin/tar -czvf test.tar.gz www.gbunix.com
ld.so.1: tar: fatal: relocation error: file /usr/local/bin/tar: symbol libintl_bindtextdomain: referenced symbol not found
Killed
感觉应该是libintl类库的问题。于是尝试在www.sunfreeware.com下载了libintl类库包,进行安装。
bash-2.03# wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/8/libintl-3.4.0-sol8-sparc-local.gz
bash-2.03# gzip -d libintl-3.4.0-sol8-sparc-local.gz
bash-2.03# pkgadd -d libintl-3.4.0-sol8-sparc-local
安装成功,并且在安装过程中看到给/usr/local/lib目录中写入了libintl.a、libintl.la、libintl.so、libintl.so.3、libintl.so.3.4.0文件,感觉应该没有什么问题了。
再次试用tar
bash-2.03# /usr/local/bin/tar -czvf test.tar.gz www.gbunix.com
www.gbunix.com/
www.gbunix.com/logs/
www.gbunix.com/logs/error_log
www.gbunix.com/logs/access_log
www.gbunix.com/data/
www.gbunix.com/www/
www.gbunix.com/www/info.php
www.gbunix.com/www/index.html
www.gbunix.com/logs.tar.gz
bash-2.03#
成功,看来引起tar不能正常使用还是libintl类库版本的问题。解决问题方式,首先根据错误提示查找LD_LIBRARY_PATH中是否包含相关的lib目录,再查找对应目录下是否包含libintl类库问题,最后将问题定位在libintl类库的软件版本上面,解决。

