Назад | Перейти на главную страницу

проблема после обновления perl

Я обновил perl, который устанавливается в / usr / local / lib / perl5 / ...... Ранее старая версия perl была установлена ​​в / usr / lib / perl5 /

Теперь, когда я установил spamassasin, его местоположение для старого местоположения и показало следующую ошибку.

Запуск spamd: не удается найти Mail / SpamAssassin.pm в @INC (@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 - компиляция прервана в строке 84 / usr / bin / spamd.

Я пробовал изменить shebang с / usr / bin / perl на / usr / local / bin / perl, но это не сработало.

Вывод "perl -V".

Резюме моей конфигурации perl5 (ревизия 5, версия 12, subversion 3):

Платформа: 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 вт 12 апр, 18:10 : 56 edt 2011 i686 i686 i386 gnulinux 'config_args =' - Dusethreads -es 'hint = рекомендуется, useposix = true, d_sigaction = define useithreads = define, usemultiplicity = define useperlio = define, d_sfio = undef, uselargefiles = define, usesocks = undef use64bitint = undef, use64bitall = undef, uselongdouble = undef usemymalloc = n, bincompat5005 = undef Компилятор: cc = 'cc', ccflags = '- D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I / us 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 / usc / local / include 'c , 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 = определить, longdblsize = 12 ivtype = 'long', ivsize = 4, nvt ype = 'double', nvsize = 8, Off_t = 'off_t', lseeksize = 8 alignbytes = 4, prototype = define Linker and Libraries: 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 -lpthread -lc libc = / lib / libc-2.5.so, so = so, useshrplib = false, libperl = libperl.a gnulibc_version = '2.5' Динамическое связывание: dlsrc = dl_dlopen.xs, dlext = so, d_dlsymun = undef, ccdlflags = '-Wl, -E' cccdlflags = '- fPIC', lddlflags = '- общий -O2 -L / usr / local / lib -fstack-protector'

Характеристики этого бинарного файла (из libperl): Параметры времени компиляции: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATO на сайте 13/03: сборка на сайте USE_PERLIO, USE_L_RE_ATO, 13 мая, 2011 / Linux, локальный: 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 / библиотека / perl5 / 5.12.3.

Быстрое решение: создайте символическую ссылку из старого каталога в новый. Это позволит вам иметь, возможно, несколько версий perl с символической ссылкой из / usr / local / безотносительно на / usr / lib / perl5.

Другое решение: похоже, вы перекомпилировали perl и выбрали префикс по умолчанию / usr / local. Вы можете попытаться перекомпилировать его еще раз, но с параметром --prefix = "/ usr", указанным для скрипта настройки. Это поместит ваш perl на то место, которое ожидает найти остальная система.