Я использую экземпляр 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
также испытывают
Я считаю, что установка прошла успешно в Google, но не работает в AWS EC2...
Привет,
это похоже на что-то, связанное с конкретной ОС, возможно, исправлено улучшение документации.
Не могли бы вы предоставить более подробную информацию?
node --version
и npm --version
Мой небольшой анализ со стороны, надеюсь, он поможет (у меня нет доступа к экземплярам 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
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
Привет,
sudo su
всегда используйте sudo -i
(это сохраняет среду)<BASEDIR>
был заполнителем. В вашем случае его значение будет /root/etherpad-lite
Не могли бы вы повторить попытку на чистой машине, используя пункты 1 и 2?
спасибо, я попробовал еще раз на чистой машине, но все еще не обнаружил 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).
Закрытие пока, спасибо.
Самый полезный комментарий
Для быстрого исправления я удалил все «devDependencies» из файла package.json.
"devDependencies": {
"мокко": "5.2.0",
"нью-йорк": "^12.0.2",
"супертест": "3.0.0",
«вд»: «1.10.3»
},