
■質問
・今、どういう状況になっているのでしょうか?
・npmは、現在のユーザ環境にのみインストールされていて、sudo環境にはインストールされていないということでしょうか?
・sudo環境は、一般ユーザ環境の上に位置しているので、一般ユーザ環境でインストールされているものは必ずsudo環境で使用できると思っていたのですが、違うのでしょうか?
・sudo環境はroot環境とは異なる?
■コマンド履歴
$ npm -v
→バージョン表示される
$ sudo npm install -g ★★
→sudo: npm: コマンドが見つかりません
$ sudo npm -v
→sudo: npm: コマンドが見つかりません
■環境
・Cent OS
No.3ベストアンサー
- 回答日時:
結論から言えば re97 さんの言うように PATHが通っていないからです。
/etc/sudoers ファイルの下記の部分に
Defaults env_keep += "PATH"
および
/usr/local/bin
を
下記のように追加してください。
# Adding HOME to env_keep may enable a user to run unrestricted
#commands via sudo.
#
#Defaults env_keep += "HOME"
# この行を追加
Defaults env_keep += "PATH"
# npmのディレクトリ /usr/local/bin を追加する
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
---
追加した環境での sudo 実行結果は添付画像のようになります。

No.2
- 回答日時:
>$ which npm
>~/.nodebrew/current/bin/npm
>・パスが通っていないということでしょうか?
>・$ npm -v でバージョン表示されるので、パスは通っていると思うのですが…
whichコマンドで結果は返ってきていますし、コマンド名だけで起動できているのですからPATHは通っていますよ。
「そのアカウントの環境では」ですが。
>・nodebrewが、sudo環境にインストールされていないってことでしょうか?
プロンプトが「$」ですから、おそらく一般ユーザでしょう。
そしてwhichの結果が「~」から始まっていますので、そのユーザのホームディレクトリ以下に入っています。
なので、管理者アカウントにとっては「そんなモン知らん」状態です。
# ついでにPATHは通っていないでしょう。
>・sudoって、一般ユーザの上位という位置づけではない?
権限は上位でしょうが、環境まで上位であるというワケではないかと。
PATHも下位ユーザ(一般ユーザ)のホームディレクトリ以下まで通っていることはまずありませんしね。
# suコマンドでオプションなしで昇格すればPATHなどは引き継がれますよ。
# その変わりシステムコマンドの入っているディレクトリへのPATHは入りませんが。
## 「suでrootになったのにfdiskコマンドが無いってどういうことだ~!!」とかね。
管理者アカウントのPATHが一般ユーザのホームディレクトリ以下まで含むと…なかなか楽しいですよ。
例えば、~/bin/ls にddコマンドでsdaを0で埋めるスクリプトなんか置いてみたりすると、管理者ユーザがlsでファイル一覧確認するとハッピーになれるかも知れないとか。
# 競合会社にとってはウハウハですね。うまくすれば乗っ取り時のログも消えてさらにオイシイ。
というワケで、npmコマンドが使えるのはソレをインストールしたユーザだけです。
管理者(root)でインストールしていない以上は仕方ないかと。
CentOSなのですからRPMパッケージとかで導入するべきだったと思われますけどね。
公式のリポジトリにパッケージがあったかは不明ですが。
http://qiita.com/you21979@github/items/4efd9fc43 …
とか見ると…epelリポジトリ導入していればそっちから入れられたかと思われます。
# バージョンが最新かどうかは不明。また、コンフリクトする可能性もないとは言えない。
回答ありがとうございました。
>権限は上位でしょうが、環境まで上位であるというワケではないかと
・基本的なことかもしれませんが、今回の回答を読んで初めて知りました
>PATHも下位ユーザ(一般ユーザ)のホームディレクトリ以下まで通っていることはまずありませんしね
・物凄く勘違いしていました
・大変勉強になりましたー
No.1
- 回答日時:
>・sudo環境は、一般ユーザ環境の上に位置しているので、一般ユーザ環境でインストールされているものは必ずsudo環境で使用できると思っていたのですが、違うのでしょうか?
どこにインストールされているか…次第じゃないですかね。
ホームディレクトリの下にbinディレクトリを作って、そこに入っていたら無理ですし。
which npm
でどう表示されます?
この回答への補足
回答ありがとうございました。
$ which npm
~/.nodebrew/current/bin/npm
・パスが通っていないということでしょうか?
・$ npm -v でバージョン表示されるので、パスは通っていると思うのですが…
・nodebrewが、sudo環境にインストールされていないってことでしょうか?
>ホームディレクトリの下にbinディレクトリを作って、そこに入っていたら無理
・初めて知りました
・sudoって、一般ユーザの上位という位置づけではない?
・ここら辺りのsudo挙動を分かりやすく解説してるページって、どこかにないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linuxのsudoについて
-
sudoが通らない
-
vi使用後、「vimiinfoが保存...
-
Linuxでのメールサーバ構築完・...
-
スクリプトのエラー「unexpecte...
-
ファイル名についている「-」と...
-
ファイル名一覧の印刷
-
IPアドレスだとPingが通るのに...
-
SONYの音楽ソフト「x-アプリ」...
-
Dirコマンドでフォルダ内ファイ...
-
TOPコマンドで表示するCPU使用...
-
pingは正常なのにtracerouteで...
-
ファイルが消せない、移動でき...
-
エクセルの表にヘンな枠が・・・
-
テキストファイルから最終行の抽出
-
LinuxでUSBをマウントできない
-
Linux のシェルスクリプトの強...
-
バッチファイル内の各コマンド...
-
シェルスクリプトでエラーが出ます
-
net use /d の強制実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vi使用後、「vimiinfoが保存...
-
<自分が所有者のファイルの所...
-
TeraTermで操作する際の設定に...
-
[CentOS7] ユーザー(root,管理...
-
scpコマンドの-pオプションにつ...
-
ユーザをwheelグループに追加す...
-
CUIでの、$(ドルマーク)の使...
-
sudo: npm: コマンドが見つかり...
-
chownで所有権の変更ってrootし...
-
Linuxのsudoについて
-
Linuxのファイルの行き先について
-
root権限でも『Permission deni...
-
Linuxがパスワードを認識しなく...
-
sudoが通らない
-
Qt CreatorでMacのディスクの権...
-
MacにUAC機能がないのは
-
suコマンド入力後バグが起きます。
-
別ユーザでのコマンド実行(root...
-
Ubuntuで、suとsudoの違いが分...
-
ubuntuのchmodでルートディレク...
おすすめ情報