Etherpad-lite: Не удается установить etherpad-lite (сервер Ubuntu)

Созданный на 17 авг. 2018  ·  9Комментарии  ·  Источник: ether/etherpad-lite

Я использую экземпляр Ubuntu, созданный из AWS EC2, и следую инструкциям по установке etherpad, после выполнения bin/run.sh --root произойдет сбой:

Убедитесь, что все зависимости обновлены... Если вы запускаете Etherpad впервые, наберитесь терпения.

[email protected] установить /root/etherpad-lite/src/node_modules/wd
скрипты узла/скрипты браузера сборки

внутренние/модули/cjs/loader.js:550
бросить ошибку;
^

Ошибка: не удается найти модуль '/root/etherpad-lite/src/node_modules/wd/scripts/build-browser-scripts'
в Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
в Function.Module._load (internal/modules/cjs/loader.js:475:25)
в Function.Module.runMain (внутренний/модули/cjs/loader.js:695:10)
при запуске (внутренний/bootstrap/node.js:201:19)
в bootstrapNodeJSCore (внутренний/bootstrap/node.js:516:3)
нпм ОШИБКА! код ELIFECYCLE
нпм ОШИБКА! ошибка 1
нпм ОШИБКА! установка [email protected] : node scripts/build-browser-scripts
нпм ОШИБКА! Выход из состояния 1
нпм ОШИБКА!
нпм ОШИБКА! Ошибка сценария установки [email protected] .
нпм ОШИБКА! Вероятно, это не проблема с npm. Вероятно, выше приведен дополнительный вывод журнала.

нпм ОШИБКА! Полный журнал этого запуска можно найти в:
нпм ОШИБКА! /root/.npm/_logs/2018-08-17T04_46_57_247Z-debug.log

Самый полезный комментарий

Для быстрого исправления я удалил все «devDependencies» из файла package.json.

"devDependencies": {
"мокко": "5.2.0",
"нью-йорк": "^12.0.2",
"супертест": "3.0.0",
«вд»: «1.10.3»
},

Все 9 Комментарий

также испытывают

Я считаю, что установка прошла успешно в Google, но не работает в AWS EC2...

Привет,
это похоже на что-то, связанное с конкретной ОС, возможно, исправлено улучшение документации.

Не могли бы вы предоставить более подробную информацию?

  • Версия Ubuntu (возможно, ссылка на сам образ или доступ к неисправному образу)
  • вывод node --version и npm --version
  • точная процедура установки Etherpad (чтобы воспроизвести шаги)

Мой небольшой анализ со стороны, надеюсь, он поможет (у меня нет доступа к экземплярам AWS):

run.sh выполняет операцию npm install из каталога src . Среди прочего, это должно привести к сбойному модулю [email protected] .
Действительно, на моей машине (рабочий стол Ubuntu 18.04, узел установлен вручную) после запуска run.sh существует каталог src/node_modules/wd . Раздел scripts.install каталога package.json внутри этого каталога вызывает node scripts/build-browser-scripts , который существует как src/node_modules/wd/scripts/build-browser-scripts.js и успешно работает здесь, а в вашем экземпляре происходит необъяснимый сбой.

Что произойдет, если вы сделаете следующее?

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

Спасибо за ответ, вот информация

  • Версия Убунту:
    Distributor ID: Ubuntu
    Description: Ubuntu 16.04.4 LTS
    Release: 16.04
    Codename: xenial
    (ИЗОБРАЖЕНИЕ: ami-ba602bc2)
  • Версия узла: 9.11.2 Версия Npm: 6.4.0
  • Процедура (работайте как root):
    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
  • Когда я набираю следующую команду:
    root@ip-172-31-31-136:~# cd <BASEDIR>/src/node_modules/wd
    bash: BASEDIR: No such file or directory

Привет,

  1. вместо sudo su всегда используйте sudo -i (это сохраняет среду)
  2. <BASEDIR> был заполнителем. В вашем случае его значение будет /root/etherpad-lite

Не могли бы вы повторить попытку на чистой машине, используя пункты 1 и 2?

  1. запуск от имени root - не очень хорошая практика, но это уже другая история :)

спасибо, я попробовал еще раз на чистой машине, но все еще не обнаружил wd в папке node_modules .

Я получаю очень похожую (но не идентичную) ошибку, связанную с node_modules/wd в CentOS 6.

Ошибка в оболочке:

> [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

Содержимое, связанное с ошибкой, из журнала npm:

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

Для быстрого исправления я удалил все «devDependencies» из файла package.json.

"devDependencies": {
"мокко": "5.2.0",
"нью-йорк": "^12.0.2",
"супертест": "3.0.0",
«вд»: «1.10.3»
},

Я _думаю_, что @treysp может быть проблемой прав доступа к каталогу ( EACCES: permission denied, mkdir '/opt/etherpad-lite/src/node_modules/wd/build' : может быть, одна и та же установка была предпринята дважды в одном и том же каталоге с пользователями с разными привилегиями? Или что-то подобное...).

Обходной путь @clayu позволяет обойти проблему, но я все равно думаю, что это хорошая идея, потому что она выявляет слабость в текущей кодовой базе: я не уверен, что разумно просить пользователей Etherpad устанавливать devDependencies, даже если они просто хотят запустить программа.

Для этого стоит изучить лучшую стратегию запуска (которая избавляет от текущих сценариев bash).

Закрытие пока, спасибо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги