Etherpad-lite: Etherpad-lite (Ubuntu Server) kann nicht installiert werden

Erstellt am 17. Aug. 2018  ·  9Kommentare  ·  Quelle: ether/etherpad-lite

Ich verwende eine von AWS EC2 erstellte Ubuntu-Instanz und befolge die Anweisungen zum Installieren von Etherpad. Nach dem Ausführen von bin/run.sh --root schlägt dies fehl:

Stellen Sie sicher, dass alle Abhängigkeiten aktuell sind... Wenn Sie Etherpad zum ersten Mal ausführen, haben Sie bitte etwas Geduld.

[email protected] installiere /root/etherpad-lite/src/node_modules/wd
Knotenskripte/Build-Browser-Skripte

internal/modules/cjs/loader.js:550
Fehler werfen;
^

Fehler: Modul '/root/etherpad-lite/src/node_modules/wd/scripts/build-browser-scripts' kann nicht gefunden werden
bei Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
bei Function.Module._load (internal/modules/cjs/loader.js:475:25)
bei Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
beim Start (intern/bootstrap/node.js:201:19)
bei BootstrapNodeJSCore (intern/bootstrap/node.js:516:3)
npm ERR! Code ELIFECYCLE
npm ERR! Fehler 1
npm ERR! [email protected] installieren: node scripts/build-browser-scripts
npm ERR! Ausgangszustand 1
npm ERR!
npm ERR! Fehler beim [email protected] .
npm ERR! Dies ist wahrscheinlich kein Problem mit npm. Oben befindet sich wahrscheinlich eine zusätzliche Protokollausgabe.

npm ERR! Ein vollständiges Protokoll dieses Laufs finden Sie in:
npm ERR! /root/.npm/_logs/2018-08-17T04_46_57_247Z-debug.log

Hilfreichster Kommentar

Für eine schnelle Lösung habe ich alle „devDependencies“ aus der Datei „package.json“ entfernt.

"devDependencies": {
"mokka": "5.2.0",
"nyc": "^12.0.2",
"supertest": "3.0.0",
"wd": "1.10.3"
},

Alle 9 Kommentare

auch erleben

Ich finde die Installation bei Google erfolgreich, aber bei AWS EC2 funktioniert sie nicht...

Hallo,
Dies scheint etwas mit dem spezifischen Betriebssystem zu tun zu haben, möglicherweise wurde die Verbesserung der Dokumentation behoben.

Könnten Sie bitte weitere Einzelheiten angeben?

  • Ubuntu-Version (möglicherweise ein Link zum Image selbst oder Zugriff auf ein fehlerhaftes Image)
  • Ausgabe von node --version und npm --version
  • genaues Verfahren zur Installation von Etherpad (um die Schritte zu wiederholen)

Meine kleine Analyse von außen, in der Hoffnung, dass sie hilft (ich habe keinen Zugriff auf irgendwelche AWS-Instanzen):

run.sh führt ein npm install innerhalb des Verzeichnisses src aus. Dies sollte unter anderem das fehlerhafte Modul [email protected] einbringen.
Tatsächlich existiert auf meinem Rechner (Ubuntu-Desktop 18.04, Knoten manuell installiert) nach dem Ausführen run.sh das Verzeichnis src/node_modules/wd . Der Abschnitt scripts.install von package.json innerhalb dieses Verzeichnisses ruft node scripts/build-browser-scripts auf, das als src/node_modules/wd/scripts/build-browser-scripts.js existiert und hier erfolgreich ausgeführt wird, anstatt unerklärlicherweise in Ihrer Instanz fehlzuschlagen.

Was passiert, wenn Sie Folgendes tun?

cd <BASEDIR>/src/node_modules/wd
ls - l scripts
npm install

Danke für die Antwort, hier sind die Informationen

  • Ubuntu-Version:
    Distributor ID: Ubuntu
    Description: Ubuntu 16.04.4 LTS
    Release: 16.04
    Codename: xenial
    (BILD: ami-ba602bc2)
  • Knotenversion: 9.11.2 Npm-Version: 6.4.0
  • Vorgehensweise (als root arbeiten):
    sudo su
    cd ~
    apt-get update
    apt install gzip git curl python libssl-dev pkg-config build-essential
    curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
    apt-get install -y nodejs
    git clone https://github.com/ether/etherpad-lite.git
    cd etherpad-lite
    bin/run.sh --root
  • Wenn ich folgenden Befehl eingebe:
    root@ip-172-31-31-136:~# cd <BASEDIR>/src/node_modules/wd
    bash: BASEDIR: No such file or directory

Hallo,

  1. Verwenden Sie anstelle von sudo su immer sudo -i (es schützt die Umgebung)
  2. <BASEDIR> war ein Platzhalter. In Ihrem Fall wäre der Wert /root/etherpad-lite

Könnten Sie es erneut auf einer sauberen Maschine versuchen, indem Sie die Punkte 1 und 2 verwenden?

  1. Als root auszuführen ist keine gute Praxis, aber das ist eine andere Geschichte :)

danke, ich habe es erneut auf einem sauberen Computer versucht, aber ich finde immer noch, dass es kein wd im Ordner node_modules gibt.

Ich erhalte einen sehr ähnlichen (aber nicht identischen) Fehler in Bezug auf node_modules/wd unter CentOS 6

Fehler in der Schale:

> [email protected] install /opt/etherpad-lite/src/node_modules/wd
> node scripts/build-browser-scripts

/opt/etherpad-lite/src/node_modules/mkdirp/index.js:90
                    throw err0;
                    ^

Error: EACCES: permission denied, mkdir '/opt/etherpad-lite/src/node_modules/wd/build'
    at Object.mkdirSync (fs.js:729:3)
    at sync (/opt/etherpad-lite/src/node_modules/mkdirp/index.js:71:13)
    at Object.<anonymous> (/opt/etherpad-lite/src/node_modules/wd/scripts/build-browser-scripts.js:6:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:266:19)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node scripts/build-browser-scripts`
npm ERR! Exit status 1

Fehlerbezogener Inhalt aus dem npm-Protokoll:

1400 silly install [email protected]
1401 info lifecycle [email protected]\~install: [email protected]
1402 verbose lifecycle [email protected]\~install: unsafe-perm in lifecycle false
1403 verbose lifecycle [email protected]\~install: PATH: /usr/lib/node_modules/npm/node_modules/npm$
1404 verbose lifecycle [email protected]\~install: CWD: /opt/etherpad-lite/src/node_modules/wd
1405 silly lifecycle [email protected]\~install: Args: [ '-c', 'node scripts/build-browser-scripts'$
1406 silly lifecycle [email protected]\~install: Returned: code: 1  signal: null
1407 info lifecycle [email protected]\~install: Failed to exec install script
1408 timing action:install Completed in 121ms
1409 verbose unlock done using /root/.npm/_locks/staging-4d108950646ee67b.lock for /opt/et$
1410 timing stage:rollbackFailedOptional Completed in 203ms
1411 timing stage:runTopLevelLifecycles Completed in 7760ms
1412 verbose stack Error: [email protected] install: \`node scripts/build-browser-scripts\`
1412 verbose stack Exit status 1
1412 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules$
1412 verbose stack     at EventEmitter.emit (events.js:182:13)
1412 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules$
1412 verbose stack     at ChildProcess.emit (events.js:182:13)
1412 verbose stack     at maybeClose (internal/child_process.js:961:16)
1412 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:2$
1413 verbose pkgid [email protected]
1414 verbose cwd /opt/etherpad-lite/src
1415 verbose Linux 2.6.32-696.18.7.el6.x86_64
1416 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "--no-save" "--loglevel" "warn"
1417 verbose node v10.9.0
1418 verbose npm  v6.2.0
1419 error code ELIFECYCLE

Für eine schnelle Lösung habe ich alle „devDependencies“ aus der Datei „package.json“ entfernt.

"devDependencies": {
"mokka": "5.2.0",
"nyc": "^12.0.2",
"supertest": "3.0.0",
"wd": "1.10.3"
},

Ich _denke_, dass @treysp ein Problem mit den Verzeichnisberechtigungen sein könnte ( EACCES: permission denied, mkdir '/opt/etherpad-lite/src/node_modules/wd/build' : Vielleicht wurde dieselbe Installation zweimal im selben Verzeichnis mit Benutzern mit unterschiedlichen Rechten versucht? Oder etwas Ähnliches ...).

@clayu Workaround umgeht das Problem, aber ich denke, es ist trotzdem eine gute Idee, weil es eine Schwachstelle in der aktuellen Codebasis aufdeckt: Ich bin mir nicht sicher, ob es ratsam ist, Etherpad-Benutzer zu bitten, die devDependencies zu installieren, selbst wenn sie nur das ausführen möchten Programm.

Aus diesem Grund ist eine bessere Startstrategie (die die aktuellen Bash-Skripte beseitigt) eine Untersuchung wert.

Vorerst geschlossen, danke.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen