джип ОШИБСЯ! ошибка стека: EACCES: отказано в разрешении, mkdir ‘/usr/локальный/lib/node_modules/без сервера/node_modules/быстрый/.node-gyp’

#serverless-framework #serverless #aws-codebuild

Вопрос:

У меня есть проект AWS CodeBuild, который пытается установить бессерверную платформу, но возвращает ошибку в названии, однако в нем говорится, что платформа успешно установлена. Насколько я понимаю, при этом не удается установить модуль snappy. Почему это так и как я могу это решить?

Команда, которую я запускаю в своем buildspec.yaml, выглядит так:

 npm install -g serverless
 

И мой пользователь:

 /root
 

введите описание изображения здесь

Ответ №1:

в первой строке ошибки:

gyp WARN EACCES current user ("nobody")...

кажется node-gyp , пытается использовать другого пользователя вместо root ,

мы можем найти проблему, обсуждаемую в репозитории пакетов:

самыми последними решениями, по-видимому, являются:

 npm_config_user=root npm install -g ...
 

чтобы принудительно/настроить пользователя среды для использования в процессе установки npm

Комментарии:

1. Спасибо @oieduardorabelo. В итоге я использовал пряжу, которая не давала мне никаких ошибок. Я попытаюсь проверить и это тоже в какой-то момент.

2. Для получения воспроизводимых результатов я не советую устанавливать serverless@latest их в вашей спецификации сборки. Кстати, некоторые респонденты в вопросе node-gyp предлагают добавить --unsafe команду установки.