В письме от пятница, 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. И, он, собственно, и вызывается. Но потом случается непонятно что и происходит бесконечный цикл про права доступа, хотя `id` и возвращает "root". Я даже пробовал объявить в стадии src_install'а переменную USER (которая и в самом деле пуста), но не помогало. Помог только --unsafe... > Или я неправильно понял проблему? Тогда хотелось бы подробностей, > что за система и с какими опциями зовут ./configure, make и т.д.? 1) Gentoo, 2) как-то вот так: ``` _unit_go_configure() { ./configure go --go-path="$(get_golibdir_gopath)" # multislot? }
_unit_nodejs_configure() { ./configure nodejs --node-gyp="/usr/$(get_libdir)/node_modules/npm/bin/ node-gyp-bin/node-gyp" } _unit_perl_configure() { ./configure perl # multislot? } _unit_php_configure() { for impl in $(php_get_slots); do ./configure php --config="/usr/$(get_libdir)/${impl}/bin/php-config" --module="${impl/.}" --lib-path="/usr/lib/${impl}/$(get_libdir)" done } _unit_python_configure() { _unit_python_configure_each() { ./configure python --config="${EPYTHON}-config" --module="$ {EPYTHON/.}" } python_foreach_impl _unit_python_configure_each } _unit_ruby_configure() { _ruby_each_implementation_each() { cd "${WORKDIR}/${MY_P}" ./configure ruby --ruby="${RUBY}" --module="$(basename ${RUBY})" } _ruby_each_implementation _ruby_each_implementation_each } src_configure() { ./configure \ --cc="${CC}" \ --cc-opt="${CFLAGS}" \ --ld-opt="${LDFLAGS}" \ --bindir="/usr/bin" \ --sbindir="/usr/sbin" \ --prefix="/var/lib/${PN}" \ --modules="/usr/lib/${PN}/modules" \ --state="/var/lib/${PN}" \ --pid="/run/${PN}.pid" \ --log="/var/log/${PN}.log" \ --control="unix:/run/${PN}.sock" \ $(usex ipv6 '' "--no-ipv6") \ $(usex unix-sockets '' "--no-unix-sockets") \ $(usex debug "--debug" "") for mod in $UNIT_MODULES; do use "unit_modules_${mod}" && "_unit_${mod}_configure" done } ``` > Очень похоже вот на этот баг: > https://github.com/nodejs/node/issues/22457 Возможно. Но, увы, обновить nodejs пока что никакой возможности (10+ заблокированы дистрибутивом ибо тянут заблокированный openssl-1.1 (который ломает кучу всего). Да и 9.х не хочет пересобираться, ибо хочет старый icu, которого уже нету). Так что приходится жевать то, что было установлено когда-то давно (9.8.0) :) _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru