Использование 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 из / 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 вместо символьных ссылок, но я хотел, чтобы библиотеки с поддержкой utf находились вдали от места по умолчанию, чтобы избежать конфликтов с пакетом spidermonkey по умолчанию. Без установленного пакета libmozjs apt жалуется, что зависимости для mongodb не удовлетворяются, поэтому я оставил его установленным.
Имейте в виду, что если пакет spidermonkey будет обновлен, он может перезаписать символические ссылки на наши новые библиотеки (или сами библиотеки, если вы переместили их в / usr / local / lib). Идеальным решением было бы создать собственный пакет для решения проблем зависимости навсегда.