10genで公開されたパッケージの使用は問題なく機能しますが、実際にUFT-8をサポートするソースからSpiderMonkeyをコンパイルする場合は次のようになります。
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/libから/usr/ local/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対応のライブラリをデフォルトの場所から遠ざけたいと思いました。libmozjsパッケージがインストールされていない場合、aptはmongodbの依存関係が満たされていないことを訴えるので、インストールしたままにしておきます。
spidermonkeyパッケージがアップグレードされると、新しいライブラリ(または/ usr / local / libに移動した場合はライブラリ自体)へのシンボリックリンクが上書きされる可能性があることに注意してください。理想的な解決策は、依存関係の問題を永久に解決するために独自のパッケージを構築することです。