2016-02-07 26 views
11

npmを実行しているときにsudoを使用しなければならないエラーを修正しようとしました。私は盲目的にノードをアンインストールするリンクをたどったので、コードはこれからでしたgistノードはすでにインストールされていますが、それはちょうどリンクされていません

このコマンドを実行した後、私はbrew:brew install nodeでそれをインストールしようとしました。どちらが私に次のエラーを与えた:

Error: The `brew link` step did not complete successfully 
The formula built, but is not symlinked into /usr/local 
Could not symlink share/doc/node/gdbinit 
/usr/local/share/doc/node is not writable. 

You can try again using: 
    brew link node 

brew link nodeを実行しようとすると、私が得た:私はbrew install npmを書くとき

Linking /usr/local/Cellar/node/5.4.0... 
Error: Could not symlink share/systemtap/tapset/node.stp 
/usr/local/share/systemtap/tapset is not writable. 

はその後、私が取得:

Warning: node-5.4.0 already installed, it's just not linked 

私はnpm -v Iを書きます取得:

env: node: No such file or directory 

これを解決する方法のアイデアはありますか?

+0

その要点は、ホームブリューではなく、pkgインストーラ用に設計されています。 'brew remove node'でノードを削除してから、再インストールしてみてください。 –

+0

@ AlexanderO'Mara私は最初にpkgインストーラでインストールしてから、brewで試しました。 'brew remove node'を実行しても動作しませんでした。 brewを再度インストールすると、リンクエラーが発生する – Ela

+0

'brew doctor'を実行して、どのような警告が表示されるかを確認してください。権限のようなサウンドが変更されている可能性があります。 hombrewが削除できない場合は、 '/ usr/local/Cellar/node /'フォルダを手動で削除してみます。 –

答えて

26

最初にsudo chown -R $USER /usr/localを実行し、それに続いてbrew link nodeを実行してこれを解決することができました。今私はノードが正しくインストールされています。

+0

これを実行した後、 'sudo chown -R root/usr/local'で所有権をrootに戻すべきではありませんか?そのディレクトリがユーザの下に残されてはならないようです – dougmacklin

2

brew link jqでしたが、/usr/local/lib is not writableを参照しても同じ問題が発生しました。私のマシンの1つでは、私はElaの提案を適用できませんでした。 私はsudo chmod 776 /usr/local/libをしてからbrew link jqして成功し、それをsudo chmod 755 /usr/local/libに戻しました。

5
  1. にsudoのchown -R $ USERは/ usr/local
  2. 醸造リンク--overwriteノード
0

それを修正するには、次のコードを使用します。 (これは、上記のソリューションの組み合わせがあるが、これは動作します!)

  1. sudo chmod 776 /usr/local/lib
  2. brew link --overwrite node

    Outputs: Linking /usr/local/Cellar/node/9.6.1... 49 symlinks created

  3. sudo chmod 755 /usr/local/lib
0

変更は/ usr/local許可ユーザーに:

sudo chown -R $USER /usr/local 

は、次に醸造インストール後に実行します。

brew postinstall node 

は今、あなたは完了です。確認するには:

npm -v 

余分なステップを:医師がそれを見つけた場合に実行醸造医師を目的

brew doctor 

を洗浄するためにあなたは、いくつかの余分な古いものを剪定する必要がある場合があります。

関連する問題