1

基本的に公式の Node.js ドキュメントから取得した、次の MWE をコンパイルしようとしています。

#include<v8.h>
#include<node.h>

using namespace v8;

Handle<Value> Method (const Arguments& _args) {
    HandleScope Scp;
    return Scp.Close (String::New ("world"));
}

void Initialize (Handle<Object> _target) {
    _target->Set (
        String.NewSymbol ("hello"),
        FunctionTemplate::New (Method)->GetFunction ()
    );
}

NODE_MODULE ("Hello", Initialize)

対応するbinding.gypファイルは次のとおりです。

{
    "targets": [
        {
            "target_name": "hello",
            "sources": ["hello.cpp"]
        }
    ]
}

を実行しようとするとnode-gyp configure、次のエラーが表示されます。

$ node-gyp configure
info it worked if it ends with ok
info downloading http://nodejs.org/dist/v0.6.18/node-v0.6.18.tar.gz
ERR! Error: EXDEV, link '/usr/lib/nodejs/node-gyp/legacy/tools/gyp/pylib/gyp/easy_xml.pyc'
ERR! not ok
$

Fedora 17 の 64 ビット バージョンを実行していますuname -a

Linux localhost.localdomain 3.5.5-2.fc17.x86_64 #1 SMP Wed Oct 3 13:20:37 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

システム情報は次のとおりです。

$ rpm -q nodejs
nodejs-0.6.18-1.fc17.x86_64
$ rpm -q node-gyp
node-gyp-0.4.1-2.fc17.noarch

よろしくお願いします。

4

1 に答える 1

2

64ビットFC16システムでこのような問題(およびEXDEVではなく関連するEPERM)を、システムのインストール場所(ルートファイルシステム上)から〜/にファイルをハードリンクしようとしている古いバージョンのnode-gypまで追跡しました。 .node-gypキャッシュ(別のファイルシステム上)。

この問題は、それ以降のnode-gypリリースで修正されました。

私にとっての解決策は、0.6RPMのtchol.orgRPMリポジトリを介して配布された「古代の」ノードとnode-gypから、独自のnpmとnode-gypをバンドルし、ここにバグがリストされていません。

于 2012-10-25T17:40:33.513 に答える