sudo: npm: komut bulunamadı


202

Düğümün en son sürümüne yükseltmeye çalışıyorum. Http://davidwalsh.name/upgrade-nodejs adresindeki talimatları takip ediyorum

Ama yaptığım zaman:

sudo npm install -g n

Hatayı alıyorum:

sudo: npm: command not found

npm sudo olmadan çalışır. Ben yaparken:

whereis node

Anlıyorum:

node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node

Koşu:

which npm

Gösteriler:

/usr/local/node/bin/npm

Çözümü https://stackoverflow.com/a/5062718/1246159 adresinde denedim.

Ama yine de aynı hatayı alıyorum. Ayrıca / etc / sudoers dosyasına baktım ve ilgili satır:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Bana iyi geliyor. NPM'nin sudo komutuyla çalışmasını nasıl sağlayabilirim?


4
Bu çalışıyor mu? sudo /usr/bin/npm install -g n
robertklep

2
Düğümü yeniden yüklemeyi deneyebilir misiniz? Npm'yi sildiğiniz anlaşılıyor.
Jeff Sloyer

1
Sen eklemiş olabilir /usr/local/node/binadresinden Müşteri $PATH, ancak npmyüklü olması gerekmektedir /usr/local/bin. İlk dizin, secure_pathneden sudoonu bulamadığını açıklayan değil.
robertklep

1
nvmUbuntu burada - @robertklep yorum ile kullanarak , denedim sudo /home/${user}/.nvm/version/node/${version}/bin/npm installve çalıştı.
Stav Pan Geffen

2
Aşağıdaki paketten yeniden yükleyerek sorunumu çözdü. nodejs.org/tr/download
Marghoob Suleman

Yanıtlar:


125

Npm dosyası olmalıdır /usr/local/bin/npm. Orada değilse, node.js'yi web sitesindeki paketle tekrar yükleyin . Bu benim durumumda işe yaradı.


Teşekkürler. Düğümü os'un yüklü olmadığı diğer veri sürücülerine yüklerseniz, bu yolu bulamazsınız.
Hardik Darji

1
homebrew ile mac os durumunda .. iki adım yapmak için (1) hangi düğüm (2) hangi npm / usr / local / bin (burada homebrew yükler / semboller düğüm + npm) olmalıdır ... çözmek için .. deneyin (1) demlemek doktor (2) demlemek yeniden düğüm hala sorunları veriyorsa .. yolunuzu kontrol (echo $ PATH). çeşitli düğüm kurulumlarına işaret eden birden fazla kutu konumuna sahip olmalısınız ... bu durumda ... temizleme (daha temiz hale getirme gibi) ~ / .bashrc / ~ / .bash_profile, yani / usr / local / bin orada rastgele bir düğüm kurulumuna işaret eden başka bir tane olmadan yüklendi.
Jimmy MG Lim

3
Bu kısmi bir çözümdür. Sorun, düğümü el ile yüklediğinizde oluşur. Yüklü her bir ikili dosyayı / usr / bin veya / usr / local / bin'e bağlamalısınız. Kök bashrc'de yolun ayarlanması sudo sırasında okunmadığı için çalışmaz, bu nedenle paketi yüklemediğiniz sürece bu tek yol gibi görünür.
shrimpwagon

@ shrimpwagon'un dediği gibi, manuel talimatların alt kısmında "sudo ln -s / usr / local / lib / nodejs / node- $ VERSION- $ DISTRO / bin / node / usr / bin / node sudo ln -s / usr / local / lib / nodejs / node- $ VERSION- $ DISTRO / bin / npm / usr / bin / npm sudo ln -s / usr / local / lib / nodejs / node- $ VERSION- $ DISTRO / bin / npx / usr / bin / npx "
James Nelson

170

yapmak zorundaydım

sudo apt-get install npm

bu benim için çalıştı.


6
Neyi ifade etmek istediğinizi anlamak zor.
küçük güneş ışığı

4
Bu güncel değil. Benim için işe yarayan , burada bulduğum şu komutlardı: github.com/nodesource/distributions#debinstall # Ubuntu curl -sL kullanma deb.nodesource.com/setup_5.x | sudo -E bash - sudo apt-get install -y düğümler # Debian'ı kök kökü olarak kullanma -sL deb.nodesource.com/setup_5.x | bash - apt-get install -y düğümler
Hamed

4
@tinysunlight Neyin belirsiz olduğundan emin değilim. Op, npm komutunun eksik olduğunu söylüyor. Bu komut npm komutunu yükler.
Velocibadgery

7
Bu soruya doğru cevap değildir, çünkü npmzaten yüklü olan op'dan açıkça anlaşılır, ancak sudo ile çağrıldığında ulaşılamaz. Bu çözümle zaten mevcut olan npm'yi yeniden yüklersiniz. Bu, nedeni bulmaktan ziyade semptomlarla mücadele ediyor. Bunun bazı insanlar için kırılmış şeyleri düzeltebileceğini biliyorum, ama bu yanıltıcı, böyle duruyor.
Dominic

4
Ubuntu 18.10 üzerinde NVM kullanarak düğümü kurduğumda, sudo npm'yi komut olarak tanımıyor. sudo apt-get install npmbenim için çalıştı.
AlienKevin

91

MAC kullanıcıları için aşağıdaki adımlar benim için çalıştı.

$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall 

5
brew uninstall nodeBenim için çalışmaya yoktu, ama ben ile taşınan brew install nodeve brew postinstallve sorun giderildi. Teşekkürler
Trevor

2
brew postinstallTam olarak ne yapar ?
Oliver D

Homebrew 2.2.14 sürümü brew postinstallgereksiz
Arslan Khan

64

Aynı sorunu yaşadım; düzeltmek için komutlar şunlardır:

  • sudo ln -s /usr/local/bin/node /usr/bin/node
  • sudo ln -s /usr/local/lib/node /usr/lib/node
  • sudo ln -s /usr/local/bin/npm /usr/bin/npm
  • sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

2
CentOS 7
hirikarate

4
Benim için çalıştı Ubuntu 16.04.1 LTS. NVM'yi kullanarak ilk yol NVM'nin yüklü düğüm ve npm (yol bir sürüm içerir %HOME%/.nvm/versions/node/v7.4.0/bin/npm) oldu. Yoldaki sürümün nasıl değişeceğinden NVM kullanarak her güncelleme yaptığımda bu cevaba başvurmam gerekeceği talihsiz
kas

1
Bu benim için de çözüldü! Başlangıçta Stack Overflow: EC2'de gönderildi: sudo node komutu bulunamadı, ancak sudo'suz node ok
Dominic

2
@kas sudo ln -s $(whereis node) /usr/bin/node Ve benzeri. bash profilinizde.
Aravind Voggu

AWS ec2 örneğinde benim için çalıştı.
Chirag Purohit

26

UYARI (düzenle)

A yapmak chmod 777oldukça radikal bir çözümdür. Bunları önce birer birer deneyin ve biri çalıştığında durun:

  • $ sudo chmod -R 777 /usr/local/lib/node_modules/npm
  • $ sudo chmod -R 777 /usr/local/lib/node_modules
  • $ sudo chmod g+w /usr/local/lib
  • $ sudo chmod g+rwx /usr/local/lib

$ brew postinstall node bir sorun alacağım tek yükleme parçası

Permission denied - /usr/local/lib/node_modules/npm/.github

Yani ben

// !! READ EDIT ABOVE BEFORE RUNNING THIS CODE !!
$ sudo chmod -R 777 /usr/local/lib
$ brew postinstall node

ve viyola, npm artık bağlı

$ npm -v
3.10.10

Ekstra

Lib'de kullandıysanız -R 777, iç içe geçmiş dosyaları ve dizinleri varsayılan bir ayara getirmeniz önerilir:

  • $ find /usr/local/lib -type f -print -exec chmod 644 {} \;
  • $ find /usr/local/lib -type d -print -exec chmod 755 {} \;
  • $ chmod /usr/local/lib 755

3
@ Jacksonson ..... Tüm yerel / lib klasörünü chmoding 777'yi tavsiye ettiniz mi?
sfratini

chmodBu dizin ne olmalı?
tim_xyz

1
@tim_xyz drwxr-xr-xlib için varsayılanlardır. Bununla birlikte -R, klasörü geri ayarlarken özyinelemeli özelliği KULLANMAYIN .
Jacksonkr

Teşekkürler! sudo chmod -R 777 / usr / local / lib / node_modules benim için çalıştı
Hisagr


8

CentOS kullanıcıları için, bu benim için çalışıyor:

sudo yum install npm

1
Bu yaklaşımla ilgili sorun, örneğin Fedora'da, dnf / yum depolarında çok eski
ACV

2
CentOS 7'de önce EPEL repo'yu etkinleştirmeniz gerekiyor:yum install epel-release; yum install npm
Hudolejev

8

Npm paketlerini sudo izni ile global olarak kurmak /usr/bin/npmiçin mevcut olmalıdır. Eğer npmdiğer bazı dizin var gibi yumuşak bir bağlantı oluşturun:

sudo ln -s /usr/local/bin/npm /usr/bin/npm

Fedora 25, düğüm8.0.0 ve npm5.0.0'da çalışır


6

MacOS'ta bu benim için çalıştı:

brew reinstall node

1
Maalesef, sorunun etiketlendiğini fark ettim unix, ancak "macos npm komutu bulunamadı" için en iyi Google arama sonucu olduğu için hala yararlı olabilir
friederbluemle

5

Düğüm kurduktan sonra debian için enter

curl -k -O -L https://npmjs.org/install.sh    
ln -s /usr/bin/nodejs /usr/bin/node  
sh install.sh

5

Düğüm / npm'yi nvm ile kurduysanız, her iki paketi de kullanabilmeniz için nvm ortam yapılandırma dosyasının çalıştırılması gerekir.

Bu genellikle ~ / .nvm / nvm.sh dizininde bulunur.

Bunu otomatik olarak çalıştırmak için şunları ekleyin:

source ~/.nvm/nvm.sh

kullanıcınızın .bash_profile dosyasında

Daha sonra bu kullanıcıyla sudo kullanmak istiyorsanız, sudo'nun kullanıcı ortamını ayarlaması için -i parametresini eklediğinizden emin olun. Örneğin

sudo -iu jenkins npm install grunt-cli

4

basitçe yeniden yükleyin.

RHEL, CentOS ve Fedora'da

sudo yum remove nodejs npm
sudo dnf remove nodejs npm   [On Fedora 22+ versions]

sonra

yum -y install nodejs npm
dnf -y install nodejs npm   [On Fedora 22+ versions]

kolay! .. hem düğüm hem de npm artık bir cazibe gibi çalışıyor!


3

Bu sorunu çözdüm

apt-get install npm2deb

1
bu cevap nedir npm2deb 3. bir parti
Beau Bouchard

1
3. taraftaki kaynaklardan doğrudan npm'den daha fazla ödün verilebileceği için tamamen "güvenilir" değildir. npm2deb hakkında hiçbir şey bilmiyorum ama şirketinizde kullanmak istersen düşünün, muhtemelen denetim hakkında sıkı olurdu
Kyle Calica-St

Herkes için açıktır.
Игорь Демянюк

2

Benim için çalış Paketleri global olarak yüklerken EACCES izin hatalarını çözme

İzin hatası olasılığını en aza indirmek için, npm'yi farklı bir dizin kullanacak şekilde yapılandırabilirsiniz. Bu örnekte, ana dizininizde gizli dizin oluşturacak ve kullanacaksınız.

Bilgisayarını yedekle. Komut satırında, ana dizininizde genel yüklemeler için bir dizin oluşturun:

 mkdir ~/.npm-global

Npm'yi yeni dizin yolunu kullanacak şekilde yapılandırın:

 npm config set prefix '~/.npm-global'

Tercih ettiğiniz metin düzenleyicisinde bir ~ / .profile dosyası açın veya oluşturun ve şu satırı ekleyin:

 export PATH=~/.npm-global/bin:$PATH

Komut satırında sistem değişkenlerinizi güncelleyin:

 source ~/.profile

Yeni yapılandırmanızı test etmek için sudo kullanmadan global olarak bir paket yükleyin:

 npm install -g jshint

Bu harika çalıştı ve çok rahatsız oldu!
Sumomo

1

Ben aynı sorunu vardı, bunun nedeni npm paket yöneticisi düğüm yüklenirken yüklü değildi. Bu, aşağıdaki hatadan kaynaklandı: Yükleme işleminde "Özel Kurulum" adlı bir adım var, burada aşağıdakilerden birini seçme seçeneğiniz var: 1) Node.js çalışma zamanı (Bu varsayılan olarak seçilidir). 2) npm paket yöneticisi 3) Çevrimiçi dokümantasyon kısayolları. 4) Yola Ekle. Eğer npm olduğu gibi devam ederseniz paket yöneticisi kurulmaz ve bu nedenle hatayı alırsınız.

Çözüm: Bu seçenekleri aldığınızda npm paket yöneticisini seçin. Bu benim için çalıştı.


1

Düğüm paketini indirdiyseniz ve böyle bir yere /optçıkarttıysanız, içinde sembolik bir bağlantı oluşturabilirsiniz /usr/local/bin.

/usr/local/bin/npm -> /opt/node-v4.6.0-linux-x64/bin/npm
/usr/local/bin/node -> /opt/node-v4.6.0-linux-x64/bin/node

1

Aynı sorunu Homestead'de de yaşadım ve birçok yol denedim. İle denedim

sudo apt-get install düğümleri

Aşağıdaki hatayı alıyorum:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
       Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
       Depends: node-ansi-color-table but it is not going to be installed
       Depends: node-archy but it is not going to be installed
       Depends: node-block-stream but it is not going to be installed
       Depends: node-fstream (>= 0.1.22) but it is not going to be installed
       Depends: node-fstream-ignore but it is not going to be installed
       Depends: node-github-url-from-git but it is not going to be installed
       Depends: node-glob (>= 3.1.21) but it is not going to be installed
       Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
       Depends: node-inherits but it is not going to be installed
       Depends: node-ini (>= 1.1.0) but it is not going to be installed
       Depends: node-lockfile but it is not going to be installed
       Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
       Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
       Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
       Depends: node-gyp (>= 0.10.9) but it is not going to be installed
       Depends: node-nopt (>= 3.0.1) but it is not going to be installed
       Depends: node-npmlog but it is not going to be installed
       Depends: node-once but it is not going to be installed
       Depends: node-osenv but it is not going to be installed
       Depends: node-read but it is not going to be installed
       Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
       Depends: node-request (>= 2.25.0) but it is not going to be installed
       Depends: node-retry but it is not going to be installed
       Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
       Depends: node-semver (>= 2.1.0) but it is not going to be installed
       Depends: node-sha but it is not going to be installed
       Depends: node-slide but it is not going to be installed
       Depends: node-tar (>= 0.1.18) but it is not going to be installed
       Depends: node-underscore but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Sonunda denedim

sudo apt-get dist-upgrade

İyi çalıştı.

root@homestead:/usr/local/bin# npm -v
3.10.10

root@homestead:/usr/local/bin# node -v
v6.13.0


0

Visudo kullanarak ve "secure_path" düzenini kullanarak sudo yoluna npm ikili yolu eklendi

Şimdi "sudo npm" çalışıyor


0

Düğümü tamamen kaldırın:

  brew uninstall --force node

Tekrar yükle:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules'

0

rh-*Paketleri kullanan herkes için yararlı olabilirse, bu benim için çalıştı:

sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm

0

Node.js üzerinde bulunan .tar dosyasını kullanarak node.js'yi yüklediğimden, düğüm dizininin konumunu şu konuma koymak zorunda kaldım:

~ / .Bashrc

komutunu kullanarak normal kullanıcıdan kökü değiştirerek:

sudo -i

daha sonra aşağıdaki gibi .bashrc dosyasına ayıkladı düğüm yolunu eklemek zorunda kaldı: resim açıklamasını buraya girin

daha sonra kullanarak .bashrc

. ~ / .Bashrc

sonra orada

npm: command not found

uzağa gitti



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.