0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

fish で n を使って node をインストールしたときにハマったこと

Posted at

nodeのインストール時に少し詰まったので備忘録として書いておこうと思います。

結論:

fish での環境変数指定では -x オプションを忘れない!

config.fish
set -x N_PREFIX $HOME/.n.      # -x オプションが必要だった
set PATH $N_PREFIX/bin $PATH

n をインストールし、 n lts でインストールに失敗する

n のインストールは Homebrew でインストールしました。

brew install n

n ではインストール先が /usr/local/bin になっていますが、これだと権限でエラーになります。なのでインストール先を以下のように指定し、パスも通しました。

config.fish
set N_PREFIX $HOME/.n
set PATH $N_PREFIX/bin $PATH

これでインストールはできるようになったはずなので安定版をインストールしてみます。

n lts

でもエラーになります。

  installing : node-v16.15.0
       mkdir : /usr/local/n/versions/node/16.15.0
mkdir: /usr/local/n: Permission denied

  Error: sudo required (or change ownership, or define N_PREFIX)

なんで・・・?

$N_PREFIX が設定できていないのかなと思いましたが、ちゃんとセットできているようです。

exec fish
echo $N_PREFIX
/Users/branch10480/.n

正解はこれ!

環境変数のセット時に -x オプションを付ける ということが重要でした。

これで n lts の実行時に $N_PREFIX が適用されるようになります。

config.fish
set -x N_PREFIX $HOME/.n.      # -x オプションが必要だった
set PATH $N_PREFIX/bin $PATH

-x オプションとは?

-x-export オプションを指定することで子プロセスにも伝播されるようになるとのことです。これでやっと環境変数として使えるようになります。

今回これを指定するのを忘れていました。


同じようなところで詰まっている方の参考になれば幸いです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?