Проверка обновления npm не удалась

На самом деле я пытался установить 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 
14
задан 6 March 2019 в 14:47

5 ответов

Моя версия npm - 5.0.3, и у меня возникает та же проблема, когда я использую любую команду npm:

npm error message

Команда работает нормально, но этот код продолжает появляться без видимой причины. Я обновил с 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 работает нормально.

0
ответ дан 6 March 2019 в 14:47

Ну, первое, что мы можем сделать, чтобы решить эту проблему, это

  1. Убедитесь, что вы отметили опцию в настройках папки, чтобы увидеть скрытые файлы.
  2. Щелкните правой кнопкой мыши по файлу .config и выберите свойства, а затем перейдите на вкладку прав доступа.
  3. В папке разрешений и прав доступа к файлам для группы | владелец | другие отмечают опции чтения, записи и выполнения.
  4. В нижней части нажмите Применить разрешения для вложенных файлов.
  5. Теперь попробуйте перезапустить те же самые команды npm, в которых вы видели эти сообщения, и теперь это должно исчезнуть навсегда.

Если это помогло, ты знаешь, что делать.

Примечание. Эту же процедуру можно применить и для одного хранилища конфигурации в папке .config.

0
ответ дан 6 March 2019 в 14:47

Точно та же самая проблема для меня, но не кажется связанным с версией (я использую npm 5.5.1). Фиксация прав на ~/.config сделанный приемом для меня:

sudo chown -R $USER:$(id -gn $USER) ~/.config

Я предполагаю, что это связано с некоторой проблемой владельца с ~/.config/configstore/update-notifier-npm.json.

3
ответ дан 23 November 2019 в 03:00

Я имел, изменяют владельца

~/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, там могло бы быть что-то чувствительное.

1
ответ дан 23 November 2019 в 03:00

Не используйте обеспеченный 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/" \
  ...
1
ответ дан 23 November 2019 в 03:00

Другие вопросы по тегам:

Похожие вопросы: