web-dev-qa-db-ja.com

sudo:npm:コマンドが見つかりません

最新バージョンのノードにアップグレードしようとしています。 http://davidwalsh.name/upgrade-nodejs の指示に従っています。

しかし私がするとき:

Sudo npm install -g n

私はエラーが出ます:

Sudo: npm: command not found

npmはSudoなしで動作します。私がする時:

whereis node

そうですか:

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

ランニング:

which npm

示しています:

/usr/local/node/bin/npm

私は https://stackoverflow.com/a/5062718/1246159 で解決策を試してみました

しかし、私はまだ同じエラーを受けています。/etc/sudoersファイルも調べたところ、関連する行は次のとおりです。

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

これは私にはよく見えます。どうすればNPMをSudoコマンドで動作させることができますか?

127
Mark

Npmファイルは/usr/local/bin/npmにあります。ない場合は、 website にパッケージとともにnode.jsを再インストールします。これは私の場合はうまくいきました。

85
inga

私がしなければなりませんでした

Sudo apt-get install npm

それは私のために働いた。

118
Velocibadgery

MACユーザーの場合、以下のステップが私にとってはうまくいきました。

$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall 
68
Gao

私は同じ問題を抱えていました。これを修正するためのコマンドは次のとおりです。

  • 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
46

警告(編集)

chmod 777を実行することは本当に汚い解決策です。これらを最初に試してみて、一度に1つずつ試してみてください。

  • $ 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は私が問題を抱えるだろう唯一のインストール部分です

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

だから私は

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

そしてviola、npmはリンクされました

$ npm -v
3.10.10

エクストラ

lib -R 777を使用した場合、ネストしたファイルとディレクトリをデフォルト設定に設定することをお勧めします。

  • $ 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
21
Jacksonkr

私は次のことをしなければなりませんでした:

  1. brew update
  2. brew uninstall node
  3. https://nodejs.org/ja/ にアクセスしてファイルをダウンロードしてください。
  4. ダウンロードしたファイルをインストールする
15
maudulus

CentOSユーザーにとって、これは私のために働きます:

Sudo yum install npm
10
江南消夏

Sudoの許可を得てnpmパッケージをグローバルにインストールするためには、/usr/bin/npmが利用可能であるべきです。他のディレクトリにnpmが存在する場合は、次のようなソフトリンクを作成します。

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

Fedora 25、node8.0.0、npm5.0.0で動作します。

7

Nodeをインストールした後のdebianの場合はenter

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

単に再インストールしてください。

RHEL、CentOS、Fedoraについて

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

それから

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

簡単です!.. nodeとnpmは両方とも魅力的に動作します。

3
Brian Sanchez

私はこの問題を解決しました

apt-get install npm2deb

Nvmを使用してnode/npmをインストールした場合は、どちらかのパッケージを使用する前にnvm環境設定ファイルを実行する必要があります。

これは通常〜/ .nvm/nvm.shにあります。

これを自動的に実行するには、以下を含めます。

source ~/.nvm/nvm.sh

ユーザーの.bash_profileファイルに

そのユーザーでSudoを使用したい場合は、Sudoがユーザー環境を設定するように-iパラメーターを必ず含めてください。例えば

Sudo -iu jenkins npm install grunt-cli
2
Garreth McDaid

私もホームステッドで同じ問題を抱えていて、多くの方法を試しました。私が試した

Sudo apt-get install nodejs

次のようなエラーが表示されます。

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.

最後に試してみた

Sudo apt-get dist-upgrade

それはうまくいった。

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

root@Homestead:/usr/local/bin# node -v
v6.13.0
1
Thowfeek

私は同じ問題を抱えていた、それはノードのインストール中にnpmパッケージマネージャがインストールされていなかったという理由です。これは次の間違いが原因でした。インストールプロセスに「カスタムセットアップ」という手順があります。ここでは、次のいずれかを選択できます。 2)npmパッケージマネージャ3)オンラインドキュメントのショートカット。 4)パスに追加します。そのままnpmパッケージマネージャをインストールするとインストールされず、エラーが発生します。

解決策:これらのオプションが表示されたら、npmパッケージマネージャを選択してください。これは私のために働きました。

1
Saurabh Shetty

CentOS でも同じことが言えます。

which npmは次のようになります。

$ which npm

/usr/local/bin/npm

どこで

$ Sudo which npm

which: no npm in (/sbin:/bin:/usr/sbin:/usr/bin)

Nodeも同じです。

そのため、おそらくrootが/usr/local/binでバイナリをチェックしないという問題があります。

1
user2854314

ノードを完全に削除します。

  brew uninstall --force node

もう一度インストールします。

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

私の解決策は:

Sudo -E env "PATH=$PATH" n stable

私にとってはうまくいきます。

ここで見つけました: https://stackoverflow.com/a/29400598/861615

これは、デフォルトのグローバルパッケージディレクトリを変更したために起こります。

1
xargr

ノードパッケージをダウンロードして/optのような場所に展開した場合は、単に/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
mipasov

rh-*パッケージを使っている人なら誰でも役に立つかもしれませんが、これは私のために働きました:

Sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm
0
Lionel T

Ubuntuで18.04これは私のために働いた:

Sudo apt install nodejs
Sudo apt install npm
0
Nelu

Node.jsをインストールするための指示

  • Arch Linux
  • DebianとUbuntuベースのLinuxディストリビューション
  • エンタープライズLinuxとFedora
  • FreeBSDとOpenBSD
  • Gentoo
  • NetBSD
  • openSUSEとSLE
  • OSX
  • SmartOSとイルモ
  • Void Linux
  • Windows
0
shilovk

Visudoを使用して "secure_path"を編集して、Sudoパスへのnpmバイナリパスの追加

今 "Sudo npm"が機能します

0
mauricio777