Linux

編譯錯誤安裝指定

  • September 10, 2012

我正在嘗試從github上的原始碼安裝 Nominatim 。PostgreSQL 9.1 和 PostGIS 2 已經使用yum. 系統正在執行帶有 cPanel 的 CentOS 6.3。

git clone --recursive https://github.com/twain47/Nominatim.git
cd Nominatim
./autogen.sh

**問題:**這是發生錯誤的時候,如下所示。任何建議/想法如何解決?謝謝!!!

autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I osm2pgsql/m4 --output=aclocal.m4t
/usr/share/automake-1.11/Automake/ChannelDefs.pm line 23:

This Perl hasn't been configured and built properly for the threads
module to work.  (The 'useithreads' configuration option hasn't been used.)

Having threads support requires all of Perl and all of the XS modules in
the Perl installation to be rebuilt, it is not just a question of adding
the threads module.  (In other words, threaded and non-threaded Perls
are binary incompatible.)

If you want to the use the threads module, please contact the people
who built your Perl.

Cannot continue, aborting.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.8.8/i686-linux/threads.pm line 28.
Compilation failed in require at /usr/share/automake-1.11/Automake/ChannelDefs.pm line 23.
BEGIN failed--compilation aborted at /usr/share/automake-1.11/Automake/ChannelDefs.pm line 26.
Compilation failed in require at /usr/share/automake-1.11/Automake/Configure_ac.pm line 26.
BEGIN failed--compilation aborted at /usr/share/automake-1.11/Automake/Configure_ac.pm line 26.
Compilation failed in require at /usr/bin/aclocal line 39.
BEGIN failed--compilation aborted at /usr/bin/aclocal line 39.
autoreconf: aclocal failed with exit status: 255

的輸出perl -V

Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
 Platform:
   osname=linux, osvers=2.6.18-028stab094.3, archname=i686-linux
   uname='linux host.padtrackr.com 2.6.18-028stab094.3 #1 smp thu sep 22 12:47:37 msd 2011 i686 i686 i386 gnulinux '
   config_args='-ds -e -Dprefix=/usr/local -Doptimize=-Os -Duseshrplib -Dusemymalloc=y'
   hint=recommended, useposix=true, d_sigaction=define
   usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
   useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
   use64bitint=undef use64bitall=undef uselongdouble=undef
   usemymalloc=y, bincompat5005=undef
 Compiler:
   cc='cc', ccflags ='-fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
   optimize='-Os',
   cppflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm'
   ccversion='', gccversion='4.4.4 20100726 (Red Hat 4.4.4-13)', 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, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
   alignbytes=4, prototype=define
 Linker and Libraries:
   ld='cc', ldflags =' -L/usr/local/lib'
   libpth=/usr/local/lib /lib /usr/lib
   libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
   perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
   libc=/lib/libc-2.12.so, so=so, useshrplib=true, libperl=libperl.so
   gnulibc_version='2.12'
 Dynamic Linking:
   dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/local/lib/perl5/5.8.8/i686-linux/CORE'
   cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
 Compile-time options: MYMALLOC PERL_MALLOC_WRAP USE_LARGE_FILES
                       USE_PERLIO
 Built under linux
 Compiled at Dec  4 2011 16:39:22
 %ENV:
   PERL5LIB="/home/dev/perl5/lib/perl5/i686-linux:/home/dev/perl5/lib/perl5"
   PERL_LOCAL_LIB_ROOT="/home/dev/perl5"
   PERL_MB_OPT="--install_base /home/dev/perl5"
   PERL_MM_OPT="INSTALL_BASE=/home/dev/perl5"
 @INC:
   /home/dev/perl5/lib/perl5/i686-linux
   /home/dev/perl5/lib/perl5
   /usr/local/lib/perl5/5.8.8/i686-linux
   /usr/local/lib/perl5/5.8.8
   /usr/local/lib/perl5/site_perl/5.8.8/i686-linux
   /usr/local/lib/perl5/site_perl/5.8.8
   /usr/local/lib/perl5/site_perl
   .

那不是 CentOS 附帶的 perl 版本。

從輸出來看,您似乎安裝了第二個版本的 perl,/usr/local並且是由 God-only-knows-who 建構的。它似乎也是一個非常簡約的 perl 版本。

正如我之前提到的,你真的應該從一個沒有被任何破損 cPanel 損壞的 CentOS 盒子重新開始。只要您使用它,您將繼續遇到難以解決的問題。

無論如何,嘗試/usr/local/bin從您PATH的程序中刪除然後建構程序。這應該確保本地安裝的 Perl 不會執行,而是使用系統 Perl(正常工作)。

引用自:https://serverfault.com/questions/425843