Сначала я попробовал выполнить пошаговое строительство MongoDB на моем vps с FreeBSD 8.2 на нем. Я столкнулся с проблемой на последнем этапе его создания:
vm3578# scons .
scons: Reading SConscript files ...
scons version: 2.0.1
python version: 2 6 6 'final' 0
Checking whether the C++ compiler worksyes
Checking for C library stdc++... yes
Checking for C++ header file boost/filesystem/operations.hpp... yes
Checking for C library boost_system-mt... no
Checking for C library boost_system... yes
Checking for C library boost_thread-mt... no
Checking for C library boost_thread... yes
Checking for C library boost_filesystem-mt... no
Checking for C library boost_filesystem... yes
Checking for C library boost_program_options-mt... no
Checking for C library boost_program_options... no
can't find or link against library ['boost_program_options-mt', 'boost_program_options'] in ['/usr/local/lib']
see config.log for more information
Но вот эта библиотека есть:
vm3578# ls /usr/local/lib
X11 libdb41.so.1 libpcreposix.so.0
apr-util-1 libdb41_cxx.a libpgport.a
apr.exp libdb41_cxx.so libpgtypes.a
aprutil.exp libdb41_cxx.so.1 libpgtypes.so
bindtextdomain.so libdb4_cxx.a libpgtypes.so.3
boost_program_options libdb4_cxx.so libplc4.a
boost_program_options.so libdb4_cxx.so.0 libplc4.so
charset.alias libdb_cxx-4.2.so libplc4.so.1
compat libdb_cxx-4.2.so.2 libplds4.a
db42 libdb_cxx-4.7.so libplds4.so
db47 libdb_cxx-4.7.so.0 libplds4.so.1
default.sfx libdbus-1.a libpng.a
dovecot libdbus-1.la libpng.so
gcc44 libdbus-1.so libpng.so.6
gettext libdbus-1.so.3 libpq.a
gio libecpg.a libpq.so
icu libecpg.so libpq.so.5
libICE.a libecpg.so.6 libpthread-stubs.a
libICE.la libecpg_compat.a libpthread-stubs.la
libICE.so libecpg_compat.so libpthread-stubs.so
libICE.so.6 libecpg_compat.so.3 libpthread-stubs.so.0
libMG.so libexecinfo.a libpython2.6.a
libMG.so.2 libexecinfo.so libpython2.6.so
libMGPM.so libexecinfo.so.1 libpython2.6.so.1
libMGPM.so.1 libexpat.a libruby-static.a
libSM.a libexpat.la libruby18-static.a
libSM.la libexpat.so libruby18.so
libSM.so libexpat.so.6 libruby18.so.18
libSM.so.6 libexslt.a libsasl2.a
libX11-xcb.a libexslt.la libsasl2.la
libX11-xcb.la libexslt.so libsasl2.so
libX11-xcb.so libexslt.so.8 libsasl2.so.2
libX11-xcb.so.1 libfam.a libsicudata.a
libX11.a libfam.la libsicui18n.a
libX11.la libfam.so libsicuio.a
libX11.so libfam.so.0 libsicule.a
libX11.so.6 libfcgi++.a libsiculx.a
libXau.a libfcgi++.la libsicutest.a
libXau.la libfcgi++.so libsicutu.a
libXau.so libfcgi++.so.0 libsicuuc.a
libXau.so.0 libfcgi.a libslang.a
libXau.so.6 libfcgi.la libslang.so
libXaw.so libfcgi.so libslang.so.2
libXaw.so.6 libfcgi.so.0 libslang.so.2.2.3
libXaw.so.7 libfreetype.a libslang.so.2.2.4
libXaw6.a libfreetype.la libsnappy.a
libXaw6.la libfreetype.so libsnappy.la
libXaw6.so libfreetype.so.9 libsnappy.so
libXaw6.so.6 libgamin-1.a libsnappy.so.2
libXaw7.a libgamin-1.la libsqlite3.a
libXaw7.la libgamin-1.so libsqlite3.la
libXaw7.so libgamin-1.so.1 libsqlite3.so
libXaw7.so.7 libgamin_shared.a libsqlite3.so.8
libXdmcp.a libgcrypt.a libt1.a
libXdmcp.la libgcrypt.la libt1.la
libXdmcp.so libgcrypt.so libt1.so
libXdmcp.so.6 libgcrypt.so.17 libt1.so.5
libXext.a libgcrypt.so.18 libt1x.a
libXext.la libgdbm.a libt1x.la
libXext.so libgdbm.la libt1x.so
libXext.so.6 libgdbm.so libt1x.so.5
libXmu.a libgdbm.so.3 libtcl85.a
libXmu.la libgettextlib-0.18.1.so libtcl85.so
libXmu.so libgettextlib.la libtcl85.so.1
libXmu.so.6 libgettextlib.so libtclstub85.a
libXmuu.a libgettextpo.a libxcb-composite.a
libXmuu.la libgettextpo.la libxcb-composite.la
libXmuu.so libgettextpo.so libxcb-composite.so
libXmuu.so.1 libgettextpo.so.5 libxcb-composite.so.0
libXp.a libgettextsrc-0.18.1.so libxcb-damage.a
libXp.la libgettextsrc.la libxcb-damage.la
libXp.so libgettextsrc.so libxcb-damage.so
libXp.so.6 libgio-2.0.a libxcb-damage.so.0
libXpm.a libgio-2.0.la libxcb-dpms.a
libXpm.la libgio-2.0.so libxcb-dpms.la
libXpm.so libgio-2.0.so.0 libxcb-dpms.so
libXpm.so.4 libglib-2.0.a libxcb-dpms.so.0
libXt.a libglib-2.0.la libxcb-dri2.a
libXt.la libglib-2.0.so libxcb-dri2.la
libXt.so libglib-2.0.so.0 libxcb-dri2.so
libXt.so.6 libgmodule-2.0.a libxcb-dri2.so.0
libapr-1.a libgmodule-2.0.la libxcb-glx.a
libapr-1.la libgmodule-2.0.so libxcb-glx.la
libapr-1.so libgmodule-2.0.so.0 libxcb-glx.so
libapr-1.so.4 libgmp.a libxcb-glx.so.0
libaprutil-1.a libgmp.la libxcb-randr.a
libaprutil-1.la libgmp.so libxcb-randr.la
libaprutil-1.so libgmp.so.10 libxcb-randr.so
libaprutil-1.so.3 libgmpxx.a libxcb-randr.so.1
libasprintf.a libgmpxx.la libxcb-record.a
libasprintf.la libgmpxx.so libxcb-record.la
libasprintf.so libgmpxx.so.6 libxcb-record.so
libasprintf.so.0 libgobject-2.0.a libxcb-record.so.0
libbfd.a libgobject-2.0.la libxcb-render.a
libbfd.la libgobject-2.0.so libxcb-render.la
libboost_date_time.a libgobject-2.0.so.0 libxcb-render.so
libboost_date_time.so libgpg-error.a libxcb-render.so.0
libboost_date_time.so.4 libgpg-error.la libxcb-res.a
libboost_filesystem.a libgpg-error.so libxcb-res.la
libboost_filesystem.so libgpg-error.so.0 libxcb-res.so
libboost_filesystem.so.4 libgthread-2.0.a libxcb-res.so.0
libboost_graph.a libgthread-2.0.la libxcb-screensaver.a
libboost_graph.so libgthread-2.0.so libxcb-screensaver.la
libboost_graph.so.4 libgthread-2.0.so.0 libxcb-screensaver.so
libboost_iostreams.a libiberty.a libxcb-screensaver.so.0
libboost_iostreams.so libiconv.a libxcb-shape.a
libboost_iostreams.so.4 libiconv.la libxcb-shape.la
libboost_math_c99.a libiconv.so libxcb-shape.so
libboost_math_c99.so libiconv.so.3 libxcb-shape.so.0
libboost_math_c99.so.4 libicudata.so libxcb-shm.a
libboost_math_c99f.a libicudata.so.48 libxcb-shm.la
libboost_math_c99f.so libicudata.so.48.1.1 libxcb-shm.so
libboost_math_c99f.so.4 libicui18n.so libxcb-shm.so.0
libboost_math_tr1.a libicui18n.so.48 libxcb-sync.a
libboost_math_tr1.so libicui18n.so.48.1.1 libxcb-sync.la
libboost_math_tr1.so.4 libicuio.so libxcb-sync.so
libboost_math_tr1f.a libicuio.so.48 libxcb-sync.so.0
libboost_math_tr1f.so libicuio.so.48.1.1 libxcb-xevie.a
libboost_math_tr1f.so.4 libicule.so libxcb-xevie.la
libboost_prg_exec_monitor.a libicule.so.48 libxcb-xevie.so
libboost_prg_exec_monitor.so libicule.so.48.1.1 libxcb-xevie.so.0
libboost_prg_exec_monitor.so.4 libiculx.so libxcb-xf86dri.a
libboost_program_options.a libiculx.so.48 libxcb-xf86dri.la
libboost_program_options.so libiculx.so.48.1.1 libxcb-xf86dri.so
libboost_program_options.so.4 libicutest.so libxcb-xf86dri.so.0
libboost_python.a libicutest.so.48 libxcb-xfixes.a
libboost_python.so libicutest.so.48.1.1 libxcb-xfixes.la
libboost_python.so.4 libicutu.so libxcb-xfixes.so
libboost_random.a libicutu.so.48 libxcb-xfixes.so.0
libboost_random.so libicutu.so.48.1.1 libxcb-xinerama.a
libboost_regex.a libicuuc.so libxcb-xinerama.la
libboost_regex.so libicuuc.so.48 libxcb-xinerama.so
libboost_regex.so.4 libicuuc.so.48.1.1 libxcb-xinerama.so.0
libboost_serialization.a libidn.a libxcb-xinput.a
libboost_serialization.so libidn.la libxcb-xinput.la
libboost_serialization.so.4 libidn.so.17 libxcb-xinput.so
libboost_signals.a libintl.a libxcb-xinput.so.0
libboost_signals.so libintl.la libxcb-xprint.a
libboost_signals.so.4 libintl.so libxcb-xprint.la
libboost_system.a libintl.so.9 libxcb-xprint.so
libboost_system.so libjpeg.a libxcb-xprint.so.0
libboost_system.so.4 libjpeg.la libxcb-xtest.a
libboost_test_exec_monitor.a libjpeg.so libxcb-xtest.la
libboost_thread.a libjpeg.so.11 libxcb-xtest.so
libboost_thread.so libjs.so libxcb-xtest.so.0
libboost_thread.so.4 libjs.so.1 libxcb-xv.a
libboost_unit_test_framework.a libltdl.a libxcb-xv.la
libboost_unit_test_framework.so libltdl.la libxcb-xv.so
libboost_unit_test_framework.so.4 libltdl.so libxcb-xv.so.0
libboost_wave.a libltdl.so.7 libxcb-xvmc.a
libboost_wave.so liblzma.a libxcb-xvmc.la
libboost_wave.so.4 liblzma.la libxcb-xvmc.so
libboost_wserialization.a liblzma.so libxcb-xvmc.so.0
libboost_wserialization.so liblzma.so.0 libxcb.a
libboost_wserialization.so.4 libmcrypt libxcb.la
libbz2.a libmcrypt.a libxcb.so
libbz2.so libmcrypt.la libxcb.so.2
libbz2.so.1 libmcrypt.so libxml2.a
libc-client4.a libmcrypt.so.8 libxml2.la
libc-client4.so libmhash.a libxml2.so
libc-client4.so.9 libmhash.so libxml2.so.5
libcharset.a libmhash.so.2 libxslt-plugins
libcharset.la libmpfr.a libxslt.a
libcharset.so libmpfr.la libxslt.la
libcharset.so.1 libmpfr.so libxslt.so
libcheck.a libmpfr.so.4 libxslt.so.2
libcheck.la libnspr4.a mysql
libcheck.so libnspr4.so perl5
libcheck.so.0 libnspr4.so.1 php
libcurl.a libopcodes.a postgresql
libcurl.la libopcodes.la proftpd
libcurl.so libpcre.a python2.6
libcurl.so.6 libpcre.la ruby
libdb-4.2.so libpcre.so rvm
libdb-4.2.so.2 libpcre.so.0 sasl2
libdb-4.7.so libpcrecpp.a scons-2.0.1
libdb-4.7.so.0 libpcrecpp.la slang
libdb4.a libpcrecpp.so tcl8
libdb4.so libpcrecpp.so.0 tcl8.5
libdb4.so.0 libpcreposix.a xemacs
libdb41.a libpcreposix.la zsh
libdb41.so libpcreposix.so
boost_program_options и boost_program_options.so - это символы, с помощью которых я пытался решить проблему. Итак, есть ли способ связать их?
Установка из портов сталкивается с другой проблемой, когда она ломается после make install
:
sinksource.o client/gridfs.o tools/tool.o tools/dump.o -L/usr/local/lib -lpcrecpp -ljs -lstdc++ -lboost_system -lboost_thread -lboost_filesystem -lboost_program_options-mt -lexecinfo -lexecinfo -lexecinfo
/usr/local/bin/ld: db/matcher.o: undefined reference to symbol 'pcre_config'
/usr/local/bin/ld: note: 'pcre_config' is defined in DSO /usr/local/lib/libpcre.so.0 so try adding it to the linker command line
/usr/local/lib/libpcre.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
scons: *** [mongodump] Error 1
scons: building terminated because of errors.
*** Error code 2
Stop in /usr/ports/databases/mongodb.
*** Error code 1
Stop in /usr/ports/databases/mongodb.
Есть идеи, как добавить pcre_config в командную строку компоновщика?
Также я пробовал pkg_add -r mongodb
установка прошла успешно, все зависимости установлены, но когда я пытаюсь запустить mongod
команда для его запуска, она просто терпит неудачу без какой-либо обратной трассировки:
~ mongod
mongod --help for help and startup options
Sun Jan 15 21:52:33 terminate() called, printing stack:
Sun Jan 15 21:52:33 Got signal: 6 (Abort trap: 6).
Sun Jan 15 21:52:33 Backtrace:
Какие-либо предложения?
Стоит попробовать установить из портов (/ usr / ports / databases / mongodb) - есть патч для бра там.
MongoDB (2.0.2) у меня работает без проблем на 8.2
Могу прислать вам скомпилированные библиотеки, если хотите :)