Linux
編譯錯誤安裝指定
我正在嘗試從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(正常工作)。