> Опция --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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить