8

非ASCII文字をMongoDBデータベースに追加すると、すべてのdb.find()が失敗し、「非ASCII文字が検出されました」と通知されます。

SpiderMonkeyの問題です。UTF-8サポートを使用して再構築する必要があります。http://www.mongodb.org/display/DOCS/Building+Spider+Monkeyのようにやってみました

しかし、それは機能しません(すべてのステップを完了した後、SpiderMonkeyはインストールされません)。

Ubuntu11.04を持っています。誰かがそこでそれを機能させる方法を教えています

GoogleV8でMongoDBを動作させる方法の作業指示も役立ちます。

4

2 に答える 2

14

私はUbuntuServer11.04でMongoDBを使用しており、次の手順を使用して新しいOSをインストールした後にインストールしました:http ://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages すべてが箱から出して正常に動作しています。MongoDBを最初から構築することは重要ですか?

于 2011-06-08T14:46:54.800 に答える
5

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に移動した場合はライブラリ自体)へのシンボリックリンクが上書きされる可能性があることに注意してください。理想的な解決策は、依存関係の問題を永久に解決するために独自のパッケージを構築することです。

于 2011-12-06T16:44:17.353 に答える