npm güncelleme kontrolü başarısız oldu


14

Aslında benim ubuntu 17.04 npm ile birlikte nodejs yüklemeye çalışıyordu. i nodejs.org linux sürümünü indirdi ve düğüm ve nodejs için yumuşak bağlantı oluşturdu. nodejs sürümünü kontrol üzerine yüklü sürümünü gösterir ve ben onunla iyiyim.

şimdi npm için aynısını yapmaya çalıştım. npm için yumuşak bağlantı oluşturmaya çalıştım.

 sudo ln -sf /mnt/7A46BE1454633621/softwares/programming/frontend/nodejs/lib/node_modules/npm/bin/npm 
    /usr/bin/npm

oluşturduğum bağlantının doğru olup olmadığını bilmiyorum. ama npm -vkomutu çalıştırdıktan sonra yüklemeye çalıştığım sürüm 5.0.3'ü görüyorum. sürümü gösterilir ama hemen altında böyle bir şey görüyorum.

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 

Tavsiye ettiğin sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configgibi mi?
George Udosen

Docker kullanıyorsanız , dosya sisteminin salt okunur olup olmadığını iki kez kontrol edin. Yazılabilir olmalıdır.
Константин Ван

Yanıtlar:


14

Benim npm sürüm 5.0.3 ve herhangi bir npm komutunu kullandığımda aynı sorun var:

npm hata mesajı

Komut iyi çalışıyor, ancak bu kod görünür bir nedenden dolayı görünmeye devam ediyor. Bu komutlarla 5.0.3'ten 5.2.0'a güncelledim:

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

npm install -g npmveya npm i -g npm.

Şimdi npm iyi çalışıyor.


Benim için çalıştı. Rağmen, npmkök olarak güncellemek zorunda kaldı sudo npm i -g npm. Npm'yi 6.0.1'e güncelledi
Denialos

3

Benim için aynı sorunu, ancak sürümü ile ilgili görünmüyor (npm 5.5.1 kullanıyorum). Hakları düzeltmek ~/.configbenim için hile yaptı:

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

Bu bazı sahibi sorunu ile ilgili sanırım ~/.config/configstore/update-notifier-npm.json.


1

Sahibini değiştirmiştim

~/configstore

ve

~/configstore/update-notifier-npm.json

- USER: $ USER.

Benim tahminime göre npmsudo ile çalışan bu dosyayı yarattı. Sistemimde en azından şunu buluyoruz:

$ env | grep  -e HOME= -e "^USER="
USER=craig
HOME=/home/craig

$ sudo env | grep  -e HOME= -e "^USER="
HOME=/home/craig
USER=root

Yani eğer sudo npmyaratılacak ~/configstore/update-notifier-npm.jsonşekilde kodlanırsa , sıradan kullanıcının ana dizini olacaktır. Bu, daha sonra npmolmadan sudookumak ve belki de yazmak isteyen bir sorun yaratır ~/configstore/update-notifier-npm.json. Nedense her ikisinde de izin 600'dür.

Dikkatli olun chownve chmodher şey altından -Ing ~/.config, hassas bir şey söz konusu olabilir.


1

Lütfen hata mesajında verilen chownkomutu kullanmayın . Yol ~/.configbirçok uygulama tarafından kullanılır ve yapılandırma bilgilerini depolamak için standart bir yoldur. Burada grup haklarının değiştirilmesi önerilmez. Daha iyisi sadece gerekli yolu değiştirin:

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

Özel durum: Docker

Bu hatayı almak için yaygın bir durum, Docker gibi bir şey kullanmaktır (özellikle kendi evinizi monte ederek). NPM_CONFIG_CACHEVe gibi ortam değişkenlerini ayarlamayı düşünün XDG_CONFIG_HOME. Birincisi önbellek yolunuzu, sonuncusu da yapılandırma deponuzu ayarlamaktır. .configDosya sahipliğiyle ilgili sorunları önlemek için ana dizindeki klasörü kullanmam . Ancak önbellek kullanmak, NPM gibi hizmetlerin bant genişliğinden tasarruf etmesine yardımcı olur. Her derlemede aşırı indirmelerden kaçının ve böyle bir şey kullanın (ancak hedefin /tmpyeterli disk alanına sahip olup olmadığını kontrol edin ):

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

Bu sorunları çözmek için yapabileceğimiz ilk şey

  1. Gizli dosyaları görmek için klasör ayarında bir seçeneği işaretlediğinizden emin olun.
  2. .Config dosyasına sağ tıklayın ve özellikleri seçin ve ardından izinler sekmesine tıklayın.
  3. Grup için klasör izinleri ve dosya izinleri | sahibi | diğerleri ise okuma, yazma ve yürütme seçeneklerini işaretler.
  4. Altta, ekli dosyalara izinleri uygula'ya tıklayın.
  5. Şimdi bu mesajları gördüğünüz npm komutlarını tekrar çalıştırmayı deneyin ve şimdi sonsuza kadar gitmiş olmalı.

Eğer bu size yardımcı olduysa ne yapacağınızı bileceksiniz

Not: Aynı yordam yalnızca .config klasöründe configstore için de uygulanabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.