Re: Релиз Unit 1.6
Vadim A. Misbakh-Soloviov
nginx на mva.name
Пт Ноя 16 05:32:33 UTC 2018
> Опция --local устанавливает NXT_NODE_LOCAL.
Хм... Значит текст в node-local-check обманывает :)
> echo "error: to make ${NXT_NODE}-local-install you need **either**";
> either
:)
> ну и судя по тому, что было приведено в предыдущем письме, npm install
> вызывается с флагом -g, а это установка в глобальную директорию npm в
> системе.
Что-то, да, я как-то и не приметил -g, прошу пардону :)
> sandbox скорее всего мешает npm поставить в свою глобальную директорию
> модулей в системе и от этого все приключения.
На самом деле, нет. Если бы мешал sandbox, то вываливались бы сообщения об
access violation от него самого, а их нет (к тому же, в `.../image/...` он
ставить разрешает. Он не разрешает ставить в систему игнорируя DESTDIR. А
установка, когда появляется бесконечный цикл, идёт как раз в директорию с
учётом DESTDIR).
> Подозреваю, что сам npm при этом на DESTDIR не смотрит или делает как-то
> странно.
Судя по всему, таки не игнорирует (или она ему как-то иначе передаётся).
Потому что:
```
gyp WARN EACCES user "undefined" does not have permission to access the dev
dir "/var/tmp/portage/www-servers/nginx-unit-9999/image/usr/lib64/
node_modules/unit-http/.node-gyp/9.8.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/var/tmp/
portage/www-servers/nginx-unit-9999/image/usr/lib64/node_modules/unit-
http/.node-gyp"
gyp WARN EACCES user "nobody" does not have permission to access the dev dir
"/var/tmp/portage/www-servers/nginx-unit-9999/image/usr/lib64/node_modules/
unit-http/.node-gyp/9.8.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/var/tmp/
portage/www-servers/nginx-unit-9999/image/usr/lib64/node_modules/unit-
http/.node-gyp"
```
При этом, `/var/tmp/portage/www-servers/nginx-unit-9999/image/` - это как раз
и есть DESTDIR.
> Ok, посмотрю на это повнимательнее.
>
> Последний раз, когда я пытался поставить в Gentoo, то обнаружил
> из коробки сломанный npm:
>
>
> % npm -v
Ну, у меня npm, вроде и рабочий, не смотря на "старую" версию nodejs'а в
системе (9.8.0) и описанные выше проблемы (10+ версии замаскированы из-за
зависимости от openssl-1.1, а 9.х привередничает про icu) :)
К слову, для лучшей воспроизводимости - немного обнаглею и попрошу ставить из
моего оверлея (у меня там более фичастый unit, в отличие от того, что в
главном репозитории, да и там - последний 1.5).
Его можно добавить либо layman'ом, либо eselect-repository (в зависимости от
новизны системы и того, что из них используется для управления репозиториями).
Соответственно,
> layman -a mva
или
> eselect repository enable mva
После чего
> USE="unit_modules_nodejs" sudo emerge -va nginx-unit::mva
Кстати, я сейчас попробовал подобавлять `--local`... Получил такое вот:
```
gyp WARN EACCES user "root" does not have permission to access the dev dir "/
var/tmp/portage/www-servers/nginx-unit-9999/homedir/.node-gyp/9.8.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/var/tmp/
portage/www-servers/nginx-unit-9999/image/usr/lib64/node_modules/unit-
http/.node-gyp"
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make
rule.
CXX(target) Release/obj.target/unit-http/unit.o
cc1plus: error: /var/tmp/portage/www-servers/nginx-unit-9999/work/nginx-
unit-9999/src: Permission denied
make[1]: *** [unit-http.target.mk:96: Release/obj.target/unit-http/unit.o]
Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib64/node_modules/npm/
node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack at ChildProcess.emit (events.js:180:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/
child_process.js:209:12)
gyp ERR! System Linux 4.18.10
gyp ERR! command "/usr/bin/node" "/usr/lib64/node_modules/npm/node_modules/
node-gyp/bin/node-gyp.js" "configure" "build"
gyp ERR! cwd /var/tmp/portage/www-servers/nginx-unit-9999/image/usr/lib64/
node_modules/unit-http
gyp ERR! node -v v9.8.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! unit-http на 1.0.0 install: `node-gyp configure build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the unit-http на 1.0.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional
logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /var/tmp/portage/www-servers/nginx-unit-9999/homedir/.npm/_logs/
2018-11-16T05_31_22_466Z-debug.log
make: *** [build/Makefile:1831: node-local-install] Error 1
```
Даже при выключенном fakeroot...
Что-то странное...
Подробная информация о списке рассылки nginx-ru