Ich habe das nodejs-Paket auf Fedora 16 folgendermaßen installiert:
# yum install nodejs
Aber es stürzte beim Start ab, wenn es ohne Argumente ausgeführt wurde:
$ nodejs
nodejs: ../src/handle_wrap.cc:65: static v8::Handle<v8::Value>
node::HandleWrap::Unref(const v8::Arguments&): Assertion
`args.Holder()->InternalFieldCount() > 0' failed.
Aborted (core dumped)
Und auch mit einer leeren Datei:
$ nodejs /dev/null
nodejs: symbol lookup error: nodejs: undefined symbol:
_ZN2v82V837AdjustAmountOfExternalAllocatedMemoryEi
Wie kann ich Node.js unter Fedora mit yum installieren und es beim Start nicht zum Absturz bringen?
Ich bin gerade auf einem System auf dieses Problem gestoßen, während ein anderes System, das identisch sein sollte, das Problem nicht hatte.
Während der Untersuchung bemerkte ich,
yum resolvedep v8
dass dies1:v8-3.13.7.5-1.el6.x86_64
auf beiden Systemenyum info v8
zutrifft , zeigte jedoch nicht, dass v8 auf dem funktionierenden System installiert ist.Ich bin ahnungslos
yum remove v8
auf das kaputte System gelaufen , das entfernt1:v8-3.13.7.5-1.el6.x86_64
undnodejs-0.6.18-1.el6.x86_64
.Dann habe ich
yum install nodejs
die installiert nurnodejs-0.6.18-1.el6.x86_64
, und jetzt das NodeJS funktioniert gut.quelle
Der zweite Fehler ist ein guter Hinweis darauf, dass das Problem kein Codefehler in Node.js ist, sondern ein binäres Inkompatibilitätsproblem zwischen C ++ - Komponenten. Das Symbol in C ++ ist
v8::V8::AdjustAmountOfExternalAllocatedMemory(int)
. Probieren wir also eine andere Version von v8 aus:Auf meinem Fedora 16-System dauerte dies v8 von 3.10 auf 3.6. Und jetzt funktioniert nodejs!
quelle
Ich denke John hat Recht mit diesem Problem, aber seine Lösung hat bei mir nicht funktioniert.
Ich habe hier die richtige Antwort für mich gefunden
von diesem Beitrag:
Der einfachste Weg, dies zu beheben, besteht darin, v8 und seine Abhängigkeiten zu entfernen und sie nur mit dem nodejs-stable-Repository neu zu installieren:
quelle
yum upgrade
v8 ausführen, wird erneut auf eine neuere Version aktualisiert. Wissen Sie, ob es eine Möglichkeit gibt, yum zu zwingen, v8 nur vom nodejs-stable-Repo aus zu aktualisieren?