Помилка перевірки оновлення npm


14

Насправді я намагався встановити nodejs разом з npm на моєму ubuntu 17.04. я завантажив версію Linux з nodejs.org та створив м'яке посилання для вузла та 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 

Ви sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configяк радили?
Джордж Удосен

Якщо ви використовуєте Docker, перевірте, чи файлова система доступна лише для читання. Це повинно бути записаним.
Константин Ван

Відповіді:


14

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

повідомлення про помилку 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 працює нормально.


Працювали для мене. Хоча, мені довелося оновити npmяк root sudo npm i -g npm. Оновлено npm до 6.0.1
Denialos

3

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

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

Я думаю, це пов’язано з проблемою власника ~/.config/configstore/update-notifier-npm.json.


1

Я повинен був змінити власника

~/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

Будь ласка, не використовуйте надану chownкоманду у повідомленні про помилку. Шлях ~/.configвикористовується багатьма програмами і є стандартним шляхом для зберігання конфігураційної інформації. Не рекомендується змінювати там групові права. Краще змінити лише необхідний шлях, наприклад:

sudo chown -R $USER ~/.config/configstore

Особливий випадок: Докер

Поширений випадок, щоб отримати цю помилку - це використання чогось типу Docker (особливо, монтування власного будинку). Розглянемо можливість встановлення змінних оточуючих середовищ, таких як NPM_CONFIG_CACHEі XDG_CONFIG_HOME. Перший встановлює шлях до кеш-пам'яті, а останній встановлює шлях конфігураційного зберігання. Я б не використовував .configпапку в домашньому каталозі, щоб уникнути проблем із власністю на файл. Але використання кеша допомагає таким службам, як NPM, врятувати пропускну здатність. Намагайтеся уникати надмірних завантажень у кожній збірці та використовуйте щось подібне (але переконайтеся, що ціль подобається/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/" \
  ...

0

Що ж, перше, що ми можемо зробити для вирішення цих питань, це

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

Якщо це допомогло вам знати, що робити.

Примітка: Ця ж процедура може бути застосована і для конфігураційного зберігання в папці .config.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.