我在 Solaris 10 上运行。
我从 sunfreeware 下载并安装 perl 。
当我尝试执行CPAN命令时,出现以下错误。
# perl -MCPAN -e shell
Now you need to choose your CPAN mirror sites. You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.
Would you like me to automatically choose the best CPAN mirror
sites for you? (This means connecting to the Internet and could
take a couple minutes) [yes]
Trying to fetch a mirror list from the Internet
LWP not available
LWP not available
Fetching with Net::FTP:
ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY
ld.so.1: perl: fatal: relocation error: file /usr/local/lib/perl5/5.12.3/i86pc-solaris/auto/Socket/Socket.so: symbol inet_aton: referenced symbol not found
Killed
#
ldd 似乎没有问题
# ldd /usr/local/lib/perl5/5.12.3/i86pc-solaris/auto/Socket/Socket.so
libc.so.1 => /lib/libc.so.1
libm.so.2 => /lib/libm.so.2
知道我错过了什么吗?
答案 0 :(得分:1)
为避免手动重新编译所有内容,configure CPAN make_arg
LIBS=-lresolv
和mbuild_arg
--config libs=-lresolv
。 (这会为所有Perl发行版编译运行全局添加库。)然后发出CPAN recompile
命令。我没有测试过这个。首先在备用系统上进行实验,如果出现问题,可以恢复Perl树。
如果您认为只有Socket发行版需要额外的libs参数,那么最好手动重新编译这个参数:
$ cpan
cpan> look Socket
Socket$ perl Makefile.PL LIBS=-lresolv ; make ; make test
Socket$ sudo make install