На самом деле я пытался установить nodejs вместе с npm на мою Ubuntu 17.04. я скачал версию linux с nodejs.org и создал мягкую ссылку для node и nodejs. после проверки версии nodejs он показывает версию, которую я установил, и я в порядке с ней.
Теперь я попытался сделать то же самое для npm. я пытался создать мягкую ссылку для npm.
sudo ln -sf /mnt/7A46BE1454633621/softwares/programming/frontend/nodejs/lib/node_modules/npm/bin/npm
/usr/bin/npm
Я не знаю, правильная ли ссылка, которую я создал. но после запуска команды npm -v
я вижу версию 5.0.3, которую я пытаюсь установить. версия показана, но прямо под ней я вижу что-то вроде этого.
5.0.3
npm update check failed │
│ Try running with sudo or get access │
│ to the local update config store via │
│ sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config
Моя версия npm - 5.0.3, и у меня возникает та же проблема, когда я использую любую команду npm:
Команда работает нормально, но этот код продолжает появляться без видимой причины. Я обновил с 5.0.3 до 5.2.0 с помощью этих команд:
sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config
npm install -g npm
или npm i -g npm
.
Теперь npm работает нормально.
Ну, первое, что мы можем сделать, чтобы решить эту проблему, это
Если это помогло, ты знаешь, что делать.
Примечание. Эту же процедуру можно применить и для одного хранилища конфигурации в папке .config.
Точно та же самая проблема для меня, но не кажется связанным с версией (я использую npm 5.5.1). Фиксация прав на ~/.config
сделанный приемом для меня:
sudo chown -R $USER:$(id -gn $USER) ~/.config
Я предполагаю, что это связано с некоторой проблемой владельца с ~/.config/configstore/update-notifier-npm.json
.
Я имел, изменяют владельца
~/configstore
и
~/configstore/update-notifier-npm.json
к $USER: $USER.
Мое предположение является тем выполнением npm
с sudo, созданным тот файл. В моей системе, по крайней мере, мы находим это:
$ env | grep -e HOME= -e "^USER="
USER=craig
HOME=/home/craig
$ sudo env | grep -e HOME= -e "^USER="
HOME=/home/craig
USER=root
Итак, если sudo npm
кодируется для создания ~/configstore/update-notifier-npm.json
это собирается сделать это корневой каталог обычного пользователя. Это создает проблему при позже выполнении npm
без sudo
который также хочет читать и возможно записать ~/configstore/update-notifier-npm.json
. По некоторым причинам полномочия 600 на обоих.
Будьте осторожны когда chown
и chmod
- луг все под ~/.config
, там могло бы быть что-то чувствительное.
Не используйте обеспеченный chown
команда в сообщении об ошибке. Путь ~/.config
используется многими приложениями и стандартный путь для того, чтобы хранить информацию конфигурации. Не рекомендуется изменить права группы там. Лучше только измените необходимый путь как:
sudo chown -R $USER ~/.config/configstore
Особый случай: Докер
Общий падеж для получения этой ошибки использует что-то как Докер (особенно путем монтирования собственного дома). Рассмотрите установку переменных среды как NPM_CONFIG_CACHE
и XDG_CONFIG_HOME
. Первый устанавливает Ваш путь кэша, и последний устанавливает Ваш configstore путь. Я не использовал бы .config
папка в корневом каталоге для предотвращения проблем с принадлежностью файла. Но использование кэша помогает сервисам как NPM сохранить bandwith. Старайтесь избегать чрезмерных загрузок на каждой сборке и используйте что-то вроде этого (но проверьте что цель как /tmp
имеет достаточное дисковое пространство):
test -d /tmp/$USER/cache || mkdir -p /tmp/$USER/cache
docker run \
-v /tmp/$USER:/tmp/$USER \
-e "NPM_CONFIG_CACHE=/tmp/$USER/cache/npm" \
-e "XDG_CONFIG_HOME=/tmp/$USER/cache/" \
...