スーパーユーザーとしてnpm
を実行すると、信頼できないコードがスーパーユーザーとして実行され、システム全体が混乱する可能性があります。特権を持たないユーザーとしてnpm
を実行すると、そのコードをより少ない権限で実行する危険性があり、システム全体を混乱させることはありません - 自分のファイルだけで(これは見た目によっては悪いこともあります) 。
私が頻繁にやりたいことは、自分のコンピュータならば、システム上でグローバルにではなくホームディレクトリにNodeをインストールすることです。そうすれば、npm
の場合はsudo
またはsu
、ノード自体の場合はmake install
で実行する必要はありません。
さまざまなスイッチを使用してソースからコンパイルしたノードをたくさん実行します。使用する規約は、バージョン付きのディレクトリにノードをインストールすることです(グローバルには/opt
ですが、その後はsudo
が必要です)。ホームディレクトリは~/opt
です。
wget https://nodejs.org/dist/v7.1.0/node-v7.1.0.tar.gz
tar xzvf node-v7.1.0.tar.gz
cd node-v7.1.0
./configure --prefix=$HOME/opt/node-v7.1.0
make && make test && make install
その後、私は~/opt/node-v7.1.0
にシンボリックリンク~/opt/node
ポインティングを作成して、私が持っている:私の.profile
または.bashrc
で
PATH="$HOME/opt/node/bin:$PATH"
を
私はこのようにそれを行います。
このようにして、Nodeをインストールしたりnpmを実行するためにスーパーユーザーとして実行する必要はありません。
ボーナスとして、シンボリックリンクを変更するだけで、デフォルトのノードバージョンをすばやく切り替えることができます。また、PATHを変更するか、~/opt/node-v7.0.0/bin/node
などのフルパスでノードを実行すると、いつでも他のバージョンを実行できます。
私は私の他の回答で、より詳細にそのインストール・プロセスを説明した:
この回答があるので、私はここではあまり詳細には触れたくありませんスーパーユーザーとしてnpm
を実行するのは良い考えではありません。このインストールプロセスは、スーパーユーザーとしてnpm
を実行する必要がない1つの解決策に過ぎません。
スーパーユーザーとして実行されないようにnpmアクセス許可を設定するその他のオプションについては、npm docsのFixing npm permissions(RyanZimのコメントの中のコメントのおかげで)に説明されています。
出典
2016-11-10 10:47:19
rsp
スーパーユーザー権限で実行/読み書きすることができるので、sthがnpmプロセスを利用すると、SUとして実行/読み書きできます。 –