MongoDB не понимает UTF-8

Если я добавлю символы, отличные от ASCII, в базу данных MongoDB, то все БД.найти () сбой, сообщающий "не обнаружен символ ascii".

это проблема SpiderMonkey, я должен восстановить его с поддержкой UTF-8. Я пытался сделать это как в http://www.mongodb.org/display/DOCS/Building + паук + обезьяна

но он не работает (SpiderMonkey не устанавливается после того, как я завершил все шаги).

У меня Ubuntu 11.04. У кого-нибудь есть инструкция по заставьте его работать здесь?

рабочая инструкция как сделать работу MongoDB с Google V8 также может помочь.

2 ответов


Я использую MongoDB на Ubuntu Server 11.04, установил его после установки новой ОС с помощью этой инструкции:http://www.mongodb.org/display/DOCS/Ubuntu + и + Debian + пакеты Все работает отлично из коробки. Для вас важно построить MongoDB с нуля?


использование опубликованных пакетов 10gen отлично работает, но если вы действительно хотите скомпилировать SpiderMonkey из источника с поддержкой UFT-8:

curl -O ftp://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
tar xvzf js185-1.0.0.tar.gz
cd js-1.8.5/js/src
export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
export CXXFLAGS="-DJS_C_STRINGS_ARE_UTF8"

а затем следуйте инструкциям из https://developer.mozilla.org/En/SpiderMonkey/Build_Documentation

autoconf-2.13
./configure
make
make install
cp js /usr/local/bin/

Это будет установлено в /usr/local /lib, однако пакет mongodb ищет его в/usr / lib (где установлен пакет spidermonkey). Таким образом, мы связываем все файлы, установленные в /usr / local / lib from / usr / lib

ln -s /usr/local/lib/libmozjs185.so /usr/lib/libmozjs185.so
ln -s /usr/local/lib/libmozjs185.so.1.0 /usr/lib/libmozjs185.so.1.0
ln -s /usr/local/lib/libmozjs185.so.1.0.0 /usr/lib/libmozjs185.so.1.0.0
ln -s /usr/local/lib/libmozjs185-1.0.a /usr/lib/libmozjs185-1.0.a

конечно, вы можете просто переместить их в /usr/lib вместо symlinking, но я хотел сохранить библиотеки с поддержкой utf от местоположения по умолчанию, чтобы предотвратить конфликты с пакетом spidermonkey по умолчанию. Без установленного пакета libmozjs apt жалуется, что зависимости для mongodb не удовлетворены, поэтому я оставил его установленным.

имейте в виду, что если пакет spidermonkey будет обновлен, он может перезаписать ссылки на наш новые библиотеки (или сами библиотеки, если вы переместили их в /usr/local / lib). Идеальным решением было бы создать свой собственный пакет для решения проблем зависимости навсегда.