我升级了安装在/ usr / local / lib / perl5中的perl / ……先前旧版本的perl安装在/ usr / lib / perl5 /
现在,当我安装spamassasin定位旧位置,并显示以下错误。
启动spamd:在@INC中找不到Mail / SpamAssassin.pm(@INC包含:/usr/lib/perl5/vendor_perl/5.8.8 /usr/local/lib/perl5/site_perl/5.12.3/i686-linux -thread-multi /usr/local/lib/perl5/site_perl/5.12.3 /usr/local/lib/perl5/5.12.3/i686-linux-thread-multi /usr/local/lib/perl5/5.12.3 )在/ usr / bin / spamd第84行。BEGIN失败 – 编译在/ usr / bin / spamd第84行中止。
我已经尝试将/ usr / bin / perl中的shebang更改为/ usr / local / bin / perl,但是没有成功。
“perl -V”输出。
我的perl5(修订版5版本12颠覆3)configuration总结:
平台:osname = linux,osvers = 2.6.18-238.9.1.el5,archname = i686-linux-thread-multi uname ='linux nexfilter 2.6.18-238.9.1.el5#1 smp tue apr 12 18:10 :56 edt 2011 i686 i686 i386 gnulinux'config_args =' – Dusethreads -es'hint = recommended,useposix = true,d_sigaction = define useithreads = define,usemultiplicity = define useperlio = define,d_sfio = undef,uselargefiles = define,usesocks = undef使用64bitint = undef,use64bitall = undef,uselongdouble = undef usemymalloc = n,bincompat5005 = undef编译器:cc ='cc',ccflags =' – D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I / usr / local / include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS = 64',optimize =' – O2',cppflags =' – D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I / usr / local / include'ccversion ='' ,gccversion ='4.1.2 20080704(Red Hat 4.1.2-50)',gccosandvers ='intsize = 4,longsize = 4,ptrsize = 4,doublesize = 8,byteorder = 1234 d_longlong = define,longlongsize = 8, d_longdbl = define,longdblsize = 12 ivtype ='long',ivsize = 4,nvt ype ='double',nvsize = 8,Off_t ='off_t',lseeksize = 8 alignbytes = 4,prototype =定义连接器和库:ld ='cc',ldflags ='-fstack-protector -L / usr / local / lib'libpth = / usr / local / lib / lib / usr / lib libs = -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc perllibs = -lnsl -ldl -lm -lcrypt -lutil -lpthreaddynamic链接:dlsrc = dl_dlopen.xs,dlext = so,d_dlsymun = undef,ccdlflags = <文件名> '-Wl,-E'cccdlflags =' – fPIC',lddlflags =' – shared -O2 -L / usr / local / lib -fstack-protector'
这个二进制文件的特征(来自libperl):编译时选项:MULTIPLPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREAD USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API在linux下编译2011年5月13日03:43:35 @INC:/ usr / local / lib / perl5 / site_perl / 5.12.3 / i686-linux-thread-multi /usr/local/lib/perl5/site_perl/5.12.3 /usr/local/lib/perl5/5.12.3/i686-linux-thread-multi / usr / local / lib / perl5 / 5.12.3。
快速解决scheme:从旧目录到新目录build立一个符号链接。 这将允许你有几个版本的perl从/ usr / local /任何/ usr / lib / perl5链接。
另一个解决scheme:看起来像你已经重新编译的Perl,它select了/ usr / local的默认前缀。 你可以尝试重新编译一次,但是用–prefix =“/ usr”来configuration脚本。 这将使你的perl进入系统的其他部分期望find它的地方。