On Thursday, 15 November 2018 23:46:33 MSK Vadim A. Misbakh-Soloviov wrote: > В письме от пятница, 16 ноября 2018 г. 3:32:03 +07 пользователь Валентин > Бартенев написал: > > А make install делается из под рута? > да > Но в sandbox (который пресекает попытки вылезти куда не следует) и, возможно, > с fakeroot (завтра поконкретнее подебажу, используется ли он именно на этой > стадии). > > Если не была задана опция --local, > > то npm будет пытаеться установить модуль в систему глобально, а для этого > > нужны соответсвующие привилегии. Если нужно поместить модуль в отдельную > > директорию, то следует указать опцию --local, либо использовать > > make node-local-install с соответсвующим DESTDIR. > Опция --local задана не была, но была задана переменная DESTDIR, а, согласно > содержимому auto/modules/nodejs этого, вроде как, достаточно для того чтобы > вызывался node-local-install. И, он, собственно, и вызывается. Но потом [..]
Опция --local устанавливает NXT_NODE_LOCAL. --local=*) NXT_NODE_LOCAL="$value" ;; иначе тот пустой: NXT_NODE_LOCAL=${NXT_NODE_LOCAL=} а далее проверка и если он пустой, то будет использоваться node-install и только если не пустой, то node-local-install: if [ -n "$NXT_NODE_LOCAL" ]; then NXT_NODE_INSTALL=local-install else NXT_NODE_INSTALL=install fi install: ${NXT_NODE}-$NXT_NODE_INSTALL ну и судя по тому, что было приведено в предыдущем письме, npm install вызывается с флагом -g, а это установка в глобальную директорию npm в системе. > случается непонятно что и происходит бесконечный цикл про права доступа, хотя > `id` и возвращает "root". Я даже пробовал объявить в стадии src_install'а > переменную USER (которая и в самом деле пуста), но не помогало. Помог только > --unsafe... sandbox скорее всего мешает npm поставить в свою глобальную директорию модулей в системе и от этого все приключения. Подозреваю, что сам npm при этом на DESTDIR не смотрит или делает как-то странно. > > Или я неправильно понял проблему? Тогда хотелось бы подробностей, > > что за система и с какими опциями зовут ./configure, make и т.д.? > 1) Gentoo, > 2) как-то вот так: Ok, посмотрю на это повнимательнее. Последний раз, когда я пытался поставить в Gentoo, то обнаружил из коробки сломанный npm: % npm -v fs.js:1657 binding.lstat(baseLong); ^ Error: ENOENT: no such file or directory, lstat '/lib64/node_modules' at Object.realpathSync (fs.js:1657:15) at toRealPath (module.js:164:13) at Function.Module._findPath (module.js:213:22) at Function.Module._resolveFilename (module.js:546:25) at Function.Module._load (module.js:475:25) at Function.Module.runMain (module.js:694:10) at startup (bootstrap_node.js:204:16) at bootstrap_node.js:625:3 и сходу не смог это побороть. -- Валентин Бартенев _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru