モッピー!ポイ活応援ポイントサイト
未分類

solana開発でanchorがnpmでインストールできなくて早速詰まった

node.jsのサイトからではなくnvmから入手すると良いとのこと。

ローカルにインストールされてしまうのでアクセス権を得られないことがエラーの原因

https://github.com/nvm-sh/nvm

solanadevの仮想環境にnvmを入れて、

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

nvmでnodeをインストールして、

nvm install 17.2.0

それでnpmが使えるようになった。

スクリプトのインストールと更新

nvmをインストールまたは更新するには、インストールスクリプトを実行する必要があります。これを行うには、スクリプトを手動でダウンロードして実行するか、次のcURLまたはWgetコマンドを使用します。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

上記のコマンドのいずれかを実行すると、スクリプトがダウンロードされて実行されます。スクリプトは、NVMにリポジトリを複製し~/.nvm、正しいプロファイルファイル(以下にスニペットからソース行を追加しようと~/.bash_profile~/.zshrc~/.profile、または~/.bashrc)。

エクスポートNVM_DIR = " $( [ -z  " $ {XDG_CONFIG_HOME-} " ] && のprintf%S " $ {HOME} /.nvm "  ||  printfの%S " $ {XDG_CONFIG_HOME} / NVM " " 
[ -s  " $ NVM_DIR /nvm.sh " ] &&  \。 " $ NVM_DIR /nvm.sh "  #この負荷NVM

その他の注意事項

  • 環境変数$XDG_CONFIG_HOMEが存在する場合は、nvmそこにファイルが配置されます。

  • --no-use上記のスクリプトの最後に追加して(… nvm.sh --no-use)、nvm手動useで使用するまで使用を延期できます。

  • あなたは使用してインストールソース、ディレクトリ、プロファイル、およびバージョンをカスタマイズすることができNVM_SOURCENVM_DIRPROFILE、およびNODE_VERSION変数を。例:curl ... | NVM_DIR="path/to/nvm"。のNVM_DIR末尾にスラッシュが含まれていないことを確認してください。

  • インストーラが使用することができgitcurlまたはwgetダウンロードしてnvm利用できる方、。

Linuxでのトラブルシューティング

Linuxでは、インストールスクリプトを実行した後、入力後にnvm: command not foundターミナルからフィードバックが表示されない場合はcommand -v nvm、現在のターミナルを閉じて新しいターミナルを開き、確認を再試行してください。または、コマンドラインでさまざまなシェルに対して次のコマンドを実行することもできます。

bashsource ~/.bashrc

zshsource ~/.zshrc

ksh. ~/.profile

これらはnvmコマンドを取得する必要があります。

macOSでのトラブルシューティング

OS X 10.9以降/usr/bin/git、Xcodeコマンドラインツールによって事前設定されています。つまり、Gitがインストールされているかどうかを正しく検出できません。インストールスクリプトを実行する前に、Xcodeコマンドラインツールを手動でインストールする必要があります。そうしないと、失敗します。(#1782を参照)

nvm: command not foundインストールスクリプトを実行した後に取得した場合は、次のいずれかが原因である可能性があります。

  • macOS 10.15以降、デフォルトのシェルはでzshあり、nvmは.zshrc更新を探しますが、デフォルトでは何もインストールされていません。で作成しtouch ~/.zshrc、インストールスクリプトを再度実行します。

  • 以前のデフォルトシェルであるbashを使用する場合.bash_profile、コマンドが設定されているファイルがシステムにない可能性があります。で作成しtouch ~/.bash_profile、インストールスクリプトを再度実行します。次に、を実行source ~/.bash_profileしてnvmコマンドを取得します。

  • 以前にを使用しましたがbashzshインストールしました。これらの行を手動で追加し~/.zshrcて実行する必要があります. ~/.zshrc

  • ターミナルインスタンスを再起動するか、を実行する必要がある場合があります. ~/.nvm/nvm.sh。ターミナルを再起動するか、新しいタブ/ウィンドウを開くか、sourceコマンドを実行すると、コマンドと新しい構成がロードされます。

  • 上記が役に立たなかった場合は、ターミナルインスタンスを再起動する必要があるかもしれません。ターミナルで新しいタブ/ウィンドウを開いて、再試行してください。

上記で問題が解決しない場合は、次のことを試してください。

  • bashを使用している場合は、.bash_profile(または~/.profile)が~/.bashrc適切にソースを提供していない可能性があります。これを追加source ~/<your_profile_file>するか、以下の次の手順に従って修正できます。

  • 追加してみてくださいインストールセクションからスニペットを正しいNVMディレクトリと負荷があなたの通常のプロファイル(に、NVM見つけ、~/.bash_profile~/.zshrc~/.profile、または~/.bashrc)。

  • この問題と考えられる回避策の詳細について、こちらを参照してください

M1チップを搭載したMacの場合、ノードはv16.0.0以降でarm64 archdarwinパッケージの提供を開始しました。以前のバージョンでは、利用可能なdarwin_x64パッケージのみがあり、darwin_arm64はありませんでした。を使用してノードをインストールする際に問題が発生した場合はnvm、v16以降に更新することをお勧めします。

Ansible

次のタスクを使用できます。

-名前nvm
  シェル> 
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
  argscreates" {{ansible_env.HOME}} /。nvm / nvm.sh "

インストールの確認

nvmがインストールされていることを確認するには、次の手順を実行します。

コマンド-vnvm

nvmインストールが成功した場合に出力されます。は実行可能なバイナリではなく、ソースシェル関数であるため、機能しwhich nvmないことに注意してくださいnvm

注: Linuxでは、インストールスクリプトを実行した後、入力後にnvm: command not foundターミナルからフィードバックが表示されない場合はcommand -v nvm、現在のターミナルを閉じて新しいターミナルを開き、確認を再試行してください。

重要な注意事項

事前にパッケージ化されたバイナリが利用できないシステムを実行している場合、つまりソースコードからnodejsまたはio.jsをインストールする場合は、システムにC ++コンパイラがインストールされていることを確認する必要があります。OS Xの場合、Xcodeが機能し、Debian / UbuntuベースのGNU / Linuxの場合、build-essentialおよびlibssl-devパッケージが機能します。

注: nvm場合によってはWindowsもサポートします。WSLのバージョンに応じて、WSL(Windows Subsystem for Linux)を介して動作するはずです。また、GitBash(MSYS)またはCygwinでも機能するはずです。それ以外の場合、Windowsの場合、サポートも開発もされていないいくつかの選択肢があります。

注: Fishnvmサポートしていません(#303を参照)。私たちによってサポートも開発もされていない代替案が存在します:

  • 低音を使用すると、魚の殻でBash用に作成されたユーティリティを使用できます
  • fast-nvm-fishはバージョン番号(エイリアスではない)でのみ機能しますが、シェルの起動を大幅に遅くすることはありません
  • plugin- Oh My Fish用のnvmプラグイン。これにより、nvmとその補完がfishshellで利用可能になります。
  • FNM –漁師の魚のためのベースのバージョン管理
  • fish-nvm-魚のnvmの周りのラッパーで、実際に使用されるまでnvmのソーシングを遅らせます。

注: FreeBSDにはまだ公式のビルド済みバイナリがなく、ソースからビルドするにはパッチが必要な場合があるため、FreeBSDにはまだいくつかの問題があります。発行チケットを参照してください。

注: OS Xでは、Xcodeがインストールされておらず、最大4.3GBのファイルをダウンロードしたくない場合は、をインストールできますCommand Line Tools。その方法については、このブログ投稿を確認してください。

注: OS Xで、「システム」ノードがインストールされている/インストールされていて、モジュールをグローバルにインストールする場合は、次の点に注意してください。

  • を使用nvmする場合は、を使用しsudoてモジュールをグローバルにインストールする必要はありませんnpm -g。そのためsudo npm install -g grunt、を実行する代わりに、を実行してください。npm install -g grunt
  • ~/.npmrcファイルがある場合は、prefix設定が含まれていないことを確認してください(と互換性がありませんnvm
  • 以前の「システム」ノードのインストールを維持することはできますが(すべきではありませんか?)nvm、ユーザーアカウント(nvmのインストールに使用されたアカウント)でのみ使用できます。他のユーザーが/usr/local/lib/node_modules/*VSを使用しているため、これによりバージョンの不一致が発生する可能性があります。~/.nvm/versions/node/vX.X.X/lib/node_modules/*

自作のインストールはサポートされていません。自作インストールnvmで問題が発生した場合は、問題をbrew uninstall提出する前に、それを実行し、以下の手順を使用してインストールしてください。

注:使用しているzsh場合はnvm、zshプラグインとして簡単にインストールできます。インストールzsh-nvmして実行nvm upgradeし、アップグレードします。

注: v1.7より前のGitバージョンnvmでは、httpsプロトコルを介してGitHubからソースを複製する問題が発生する可能性があります。また、v1.6より前のgitの動作も異なり、v1.17.10より前のgitはタグを複製できないため、最低限必要なものがあります。 gitバージョンはv1.7.10です。ここで説明した問題に関心がある場合は、GitHubのHTTPSクローン作成エラーの記事を参照してください。

Gitインストール

gitインストールしている場合(git v1.7.10 +が必要):

  1. このリポジトリをユーザープロファイルのルートに複製します
  • cd ~/ どこからでも git clone https://github.com/nvm-sh/nvm.git .nvm
  1. cd ~/.nvm と最新バージョンをチェックしてください git checkout v0.39.0
  2. nvmシェルから調達してアクティブ化します。. ./nvm.sh

今すぐあなたにこれらの行を追加し~/.bashrc~/.profileまたは~/.zshrcそれは自動的にログイン時にソースの持っているファイル:(あなたが上記のファイルの複数に追加する必要があります)

export NVM_DIR = " $ HOME /.nvm " 
[ -s  " $ NVM_DIR /nvm.sh " ] &&  \。 " $ NVM_DIR /nvm.sh "   #この負荷がNVMは
[ -s  " $ NVM_DIR / bash_completion " ] &&  \。 " $ NVM_DIR / bash_completion "   #これはnvmbash_completionをロードします

手動インストール

完全に手動でインストールするには、次の行を実行して、最初にnvmリポジトリのクローンを作成して$HOME/.nvmから、ロードしますnvm

export NVM_DIR = " $ HOME /.nvm "  &&(
  git clone https://github.com/nvm-sh/nvm.git " $ NVM_DIR "
   cd  " $ NVM_DIR " 
  git checkout ` git describe --abbrev = 0 --tags --match " v [0-9] * "  $( git rev-list --tags --max-count = 1  `&&  \。 " $ NVM_DIR /nvm.sh "

今すぐあなたにこれらの行を追加し~/.bashrc~/.profileまたは~/.zshrcそれは自動的にログイン時にソースの持っているファイル:(あなたが上記のファイルの複数に追加する必要があります)

export NVM_DIR = " $ HOME /.nvm " 
[ -s  " $ NVM_DIR /nvm.sh " ] &&  \。 " $ NVM_DIR /nvm.sh "  #この負荷がNVMは
[ -s  " $ NVM_DIR / bash_completion " ] &&  \。 " $ NVM_DIR / bash_completion "   #これはnvmbash_completionをロードします

手動アップグレード

手動アップグレードの場合git(git v1.7.10 +が必要):

  1. に変更します $NVM_DIR
  2. 最新の変更をプルダウンします
  3. 最新バージョンをチェックしてください
  4. 新しいバージョンをアクティブ化する
cd  " $ NVM_DIR "
  git fetch --tags origin
  git checkout ` git describe --abbrev = 0 --tags --match " v [0-9] * "  $( git rev-list --tags --max-count = 1  `&&  \。 " $ NVM_DIR /nvm.sh "

使用法

nodeの最新リリースをダウンロード、コンパイル、およびインストールするには、次のようにします。

nvm install node # "node"は最新バージョンのエイリアスです

特定のバージョンのノードをインストールするには:

nvm install 14.7.0 #または16.3.0、12.22.1など

インストールされた最初のバージョンがデフォルトになります。新しいシェルは、デフォルトバージョンのノード(例nvm alias default)で開始されます。

以下を使用して、利用可能なバージョンを一覧表示できますls-remote

nvmls-リモート

そして、新しいシェルでは、インストールされているバージョンを使用します。

nvm使用ノード

または、実行することもできます。

nvm run node --version

または、目的のバージョンのノードを使用して、サブシェルで任意のコマンドを実行できます。

nvm exec 4.2 node --version

また、実行可能ファイルがインストールされた場所へのパスを取得することもできます。

12.22のnvm

「14.7」または「16.3」または「12.22.1」のようなバージョンポインタの代わりに、あなたが次のような特別なデフォルトのエイリアスを使用することができnvm installnvm usenvm runnvm execnvm which、など:

  • node:これは最新バージョンのをインストールします node
  • iojs:これは最新バージョンのをインストールします io.js
  • stable:このエイリアスは非推奨であり、実際にはnode v0.12それ以前にのみ適用されます。現在、これはのエイリアスですnode
  • unstable:このエイリアスはnode v0.11-1.0以降の最後の「不安定な」ノードリリースを指します。すべてのノードバージョンは安定しています。(SemVerでは、バージョンは安定性ではなく破損を伝えます)。

長期サポート

ノードには長期サポート(LTS)のスケジュールがあり.nvmrcます。たとえばlts/*、最新のLTSの表記、およびlts/argon「アルゴン」行からのLTSリリースの表記を使用して、エイリアスおよびファイルでLTSバージョンを参照できます。さらに、次のコマンドはLTS引数をサポートします。

  • nvm install --ltsnvm install --lts=argonnvm install 'lts/*'/nvm install lts/argon
  • nvm uninstall --ltsnvm uninstall --lts=argonnvm uninstall 'lts/*'/nvm uninstall lts/argon
  • nvm use --ltsnvm use --lts=argonnvm use 'lts/*'/nvm use lts/argon
  • nvm exec --ltsnvm exec --lts=argonnvm exec 'lts/*'/nvm exec lts/argon
  • nvm run --ltsnvm run --lts=argonnvm run 'lts/*'/nvm run lts/argon
  • nvm ls-remote --ltsnvm ls-remote --lts=argon nvm ls-remote 'lts/*'/nvm ls-remote lts/argon
  • nvm version-remote --ltsnvm version-remote --lts=argonnvm version-remote 'lts/*'/nvm version-remote lts/argon

のローカルコピーがhttps://nodejs.orgnvm接続するたびに、使用可能なすべてのLTS回線に適切なローカルエイリアスが再作成されます。これらのエイリアス(の下に保存されている)は、によって管理されており、これらのファイルを変更、削除、または作成しないでください。変更が取り消されることを期待し、これらのファイルをいじると、サポートされない可能性のあるバグが発生することを期待してください。$NVM_DIR/alias/ltsnvm

ノードの最新のLTSバージョンを取得し、既存のインストール済みパッケージを移行するには、次を使用します。

NVMインストール' LTS / * 'から--reinstall-のパッケージを-=現在の

インストール中のグローバルパッケージの移行

新しいバージョンのNode.jsをインストールし、npmパッケージを以前のバージョンから移行する場合:

nvmインストールノード--reinstall-packages-from = node

これは、最初に「nvm version node」を使用して、パッケージの移行元の現在のバージョンを識別します。次に、リモートサーバーからインストールする新しいバージョンを解決してインストールします。最後に、「nvmreinstall-packages」を実行して、以前のバージョンのNodeから新しいバージョンにnpmパッケージを再インストールします。

次のように、ノードの特定のバージョンからnpmパッケージをインストールして移行することもできます。

nvm install 6 --reinstall-packages-from = 5
nvm install v4.2 --reinstall-packages-from = iojs

パッケージを明示的に再インストールしてもnpmバージョンは更新されないことに注意してください。これは、npmが新しいノードバージョンの壊れたバージョンに誤ってアップグレードされないようにするためです。

npmを同時に更新するには--latest-npm、次のようにフラグを追加します。

NVMインストール' LTS / * ' =デフォルト--latest-NPMから--reinstall-のパッケージを、

または、いつでも次のコマンドを実行して、現在のノードバージョンでサポートされている最新のnpmバージョンを取得できます。

nvm install-latest-npm

すでに「NPMのNode.jsをサポートしていません」の効果にエラーを得ている場合、あなたは(前のノードのバージョンに(1)元に戻す必要がありますnvm lsnvm use <your latest _working_ version from the ls>、(2)(新しく作成されたノードのバージョンを削除しますnvm uninstall <your _broken_ version of node from the ls>) 、次に(3)フラグを使用nvm installして再実行します--latest-npm

インストール中のファイルからのデフォルトのグローバルパッケージ

新しいバージョンをインストールするたびにインストールするデフォルトパッケージのリストがある場合は、それもサポートしています$NVM_DIR/default-packages。パッケージ名を1行に1つずつファイルに追加するだけです。コマンドラインで、npmがパッケージ引数として受け入れるものなら何でも追加できます。

# $ NVM_DIR / default-パッケージ

rimraf
object-inspect@1.0.2
stevemao /左パッド

io.js

io.jsをインストールする場合

nvm install iojs

新しいバージョンのio.jsをインストールし、npmパッケージを以前のバージョンから移行する場合:

nvm install iojs --reinstall-packages-from = iojs

ノード内のnpmパッケージの移行について説明したのと同じガイドラインがio.jsに適用されます。

ノードのシステムバージョン

システムにインストールされたバージョンのノードを使用する場合は、特別なデフォルトのエイリアス「system」を使用できます。

nvm使用システム
nvm run system --version

バージョンの一覧表示

インストールされているバージョンを確認する場合:

nvm ls

インストールできるバージョンを確認したい場合:

nvmls-リモート

カスタムカラーの設定

バージョンとエイリアスの情報を表示するために使用される5つの色を設定できます。これらの色はデフォルトの色を置き換えます。初期色は次のとおりです。gbyre

カラーコード:

r/R = red / bold red

g/G = green / bold green

b/B = blue / bold blue

c/C = cyan / bold cyan

m/M = magenta / bold magenta

y/Y = yellow / bold yellow

k/K = black / bold black

e/W = light grey / white
nvm set-colors rgBcm

永続的なカスタムカラー

シェルを終了した後もカスタムカラーを保持する場合は、シェルプロファイルでNVM_COLORS変数をエクスポートします。たとえば、シアン、マゼンタ、グリーン、ボールドレッド、ボールドイエローを使用する場合は、次の行を追加します。

エクスポートNVM_COLORS = ' cmgRY '

カラー出力の抑制

nvm help (or -h or --help)nvm lsnvm ls-remoteおよびnvm alias通常色付き出力を生成します。--no-colorsオプションを使用して(または環境変数を設定することにより)色を無効にできますTERM=dumb

nvm ls--no-colors
nvmヘルプ--no-colors
TERM = dumb nvm ls

パスの復元

PATHを復元するには、次の手順を無効にします。

nvmを非アクティブ化

デフォルトのノードバージョンを設定する

新しいシェルで使用されるデフォルトのノードバージョンを設定するには、エイリアス「default」を使用します。

nvmエイリアスのデフォルトノード

ノードバイナリのミラーを使用する

ノードバイナリのミラーを使用するには、次のように設定し$NVM_NODEJS_ORG_MIRRORます。

NVM_NODEJS_ORG_MIRROR = https://nodejs.org/distをエクスポートします
nvmインストールノード

NVM_NODEJS_ORG_MIRROR = https://nodejs.org/dist nvm install 4.2

io.jsバイナリのミラーを使用するには、次のように設定し$NVM_IOJS_ORG_MIRRORます。

NVM_IOJS_ORG_MIRROR = https://iojs.org/distをエクスポートします
nvm install iojs-v1.0.3

NVM_IOJS_ORG_MIRROR = https://iojs.org/dist nvm install iojs-v1.0.3

nvm useデフォルトでは、「現在の」シンボリックリンクは作成されません。$NVM_SYMLINK_CURRENTこの動作を有効にするには、「true」に設定します。これは、IDEで役立つ場合があります。nvmこの環境変数を有効にして複数のシェルタブで使用すると、競合状態が発生する可能性があることに注意してください。

.nvmrc

プロジェクトのルートディレクトリ(または任意の親ディレクトリ)に.nvmrc、ノードのバージョン番号(またはnvm理解できるその他の文字列。詳細nvm --helpを参照)を含むファイルを作成できます。その後、nvm usenvm installnvm execnvm run、及びnvm whichで指定されたバージョンを使用します.nvmrcバージョンは、コマンドラインで供給されていない場合は、ファイルを。

たとえば、nvmをデフォルトで最新の5.9リリース、最新のLTSバージョン、または現在のディレクトリの最新のノードバージョンにするには、次のようにします。

$ echo  " 5.9 "  > .nvmrc

$ echo  " lts / * "  > .nvmrc #デフォルトで最新のLTSバージョンに設定

$ echo  " node "  > .nvmrc #デフォルトで最新バージョンに設定

[注:これらの例は、POSIX準拠のシェルバージョンを想定していechoます。Windowscmd開発環境を使用している場合、たとえば.nvmrcファイルがリモートLinuxデプロイメントの構成に使用されている場合は、"がコピーされて無効なファイルになることに注意してください。それらを削除します。]

次に、nvmを実行すると:

$ nvmの使用
見出さ' /path/to/project/.nvmrc 'バージョンと< 5。9>
次にノードv5.9.1(NPM v3.7.3)を用い

nvm useet。al。.nvmrcファイルを探して現在のディレクトリから上向きにディレクトリ構造をトラバースします。言い換えれば、実行中などnvm use。al。が付いているディレクトリのサブディレクトリでは.nvmrc、それ.nvmrcが使用されます。

.nvmrcファイルの内容は、(で説明されているように)後に改行が続く必要があります。末尾のスペースは使用できません。末尾の改行が必要です。<version>nvm --help

より深いシェル統合

を使用avnしてシェルに深く統合し、nvmディレクトリを変更するときに自動的に呼び出すことができます。avnされていないでサポートされているnvmメンテナ。チームに問題を報告してavnください。

より軽量なソリューションを好む場合は、以下のレシピがnvmユーザーによって提供されています。それらはメンテナによってサポートされていませんnvm。ただし、他の例についてはプルリクエストを受け付けています。

bash

自動的に呼び出す nvm use

あなたの最後に以下を入れてください$HOME/.bashrc

cdnvm(){
    コマンド cd  " $ @ " ; 
    nvm_path = $( nvm_find_up .nvmrc | tr -d ' \ n '

    # .nvmrcファイルがない場合は、デフォルトのnvmバージョンを使用します
    if [[ $ nvm_path  =  * [^ [:space:]] * ]] ;  それから

        default_versionを宣言します; 
        default_version = $( nvm version default  ;

        #デフォルトバージョンがない場合は、 `node`に設定します
        #これは、マシン上の最新バージョンを使用します
        if [[ $ default_version  ==  " N / A " ]] ;  次に、 
            nvmエイリアスのデフォルトノード
            default_version = $( nvm version default  ; 
        fi

        #現在のバージョンがデフォルトバージョンでない場合は、デフォルトバージョンを使用するように設定します
        if [[ $( nvm current  !=  " $ default_version " ]] ;  次に、 
            nvmはデフォルトを使用します; 
        fi

    elif [[ -s  $ nvm_path /.nvmrc &&  -r  $ nvm_path /.nvmrc]] ;  次に、
         nvm_version宣言します
        nvm_version = $(< " $ nvm_path " /.nvmrc 

        宣言locally_resolved_nvm_version
         # `nvm ls`はローカルで利用可能なすべてのバージョンをチェックします
        #複数の一致するバージョンがある場合は、最新のものを取得します
        # `-> `と` * `の文字とスペースを削除します
        # ` locally_resolved_nvm_version`は `N / Aになります`ローカルバージョンが見つからない場合
        locally_resolved_nvm_version = $( nvm ls --no-colors " $ nvm_version "  | tail -1 | tr -d ' \-> * '  | tr -d ' [:space:] '

        #まだインストールされていない場合は、インストールします
        # `nvm install`は、新しくインストールされたバージョンを暗黙的に使用します
        if [[ " $ locally_resolved_nvm_version "  ==  " N / A " ]] ;  次に、 
            nvm install " $ nvm_version " ; 
        elif [[ $( nvm current  !=  " $ locally_resolved_nvm_version " ]] ;  次に、 
            nvmは" $ nvm_version "を使用します; 
        fi 
    fi
}
エイリアスcd = ' cdnvm '
 cd  " $ PWD "

このエイリアスは、.nvmrcファイルを検出するために、現在のディレクトリから「上」を検索します。見つかった場合は、そのバージョンに切り替わります。そうでない場合は、デフォルトバージョンが使用されます。

zsh

ファイルのnvm useあるディレクトリで自動的に呼び出す.nvmrc

これをに入れて、nvmに次のノードを指示する文字列を含むファイルを含むディレクトリに入るたびに自動的$HOME/.zshrcに呼び出しnvm useます 。.nvmrcuse

# NVM初期化した後にこれを置きます!
autoload -U add-zsh-hook
load-nvmrc(){
   local node_version = " $( nvm version  "
   local nvmrc_path = " $( nvm_find_nvmrc  "

  if [ -n  " $ nvmrc_path " ] ;  次に、
    ローカルnvmrc_node_version = $( nvm version " $( cat " $ {nvmrc_path} " "

    if [ " $ nvmrc_node_version "  =  " N / A " ] ;  それから
      nvmインストール
    elif [ " $ nvmrc_node_version " !=  " $ node_version " ] ;  それから
      nvmの使用
    fi 
  elif [ " $ node_version " !=  " $( nvm version default  " ] ;  次に、
     nvmのデフォルトバージョンに戻す」とエコーし ます
    nvmはデフォルトを使用します
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

ファイルのnvm useあるディレクトリで自動的に呼び出す.nvmrc

これには、低音がインストールされている必要があります。

#〜/ .config / fish / features / nvm.fish 
function nvm
  低音ソース〜/ .nvm / nvm。sh  --no-use  ' ; ' nvm $ argv 
end

#〜/ .config / fish / features / nvm_find_nvmrc.fish 
function nvm_find_nvmrc
  低音ソース〜/ .nvm / nvm。sh  --no-use  ' ; ' nvm_find_nvmrc
 end

#〜/ .config / fish / features / load_nvm.fish 
function load_nvm --on-variable = " PWD "
   set  -l default_node_version(nvm version default)
   set  -l node_version(nvm version)
   set  -l nvmrc_path(nvm_find_nvmrc)
   if  test  -n  " $ nvmrc_path "
     set  -l nvmrc_node_version(nvm version( cat  $ nvmrc_path))
     if  test  " $ nvmrc_node_version " = " N / A " 
      nvm install(cat  $ nvmrc_pathelse  if  test nvmrc_node_version!= node_version
      nvm use $ nvmrc_node_version 
    end 
  else  if  test  " $ node_version "!= " $ default_node_version "
     echo  "デフォルトのノードバージョンに戻す"
    nvmはデフォルトを使用します
  エンド
エンド

#〜/ .config / fish / config.fish 
#初期化時に呼び出す必要があります。そうしないと、ディレクトリ切り替えをリッスンできません
load_nvm

テストの実行

テストはUrchinで書かれています。次のようにUrchin(およびその他の依存関係)をインストールします。

npm install

遅いテストと速いテストがあります。遅いテストは、ノードのインストールや正しいバージョンが使用されていることの確認などを行います。高速テストはこれを偽造して、エイリアスやアンインストールなどをテストします。nvm gitリポジトリのルートから、次のような高速テストを実行します。

npm run test/fast

次のような低速テストを実行します。

npm run test/slow

次のようにすべてのテストを実行します。

npm test

注意:テストの実行中にnvmを実行することは避けてください。

環境変数

nvmは、次の環境変数を公開します。

  • NVM_DIR –nvmのインストールディレクトリ。
  • NVM_BIN -ここで、ノードのアクティブバージョンのノード、npm、およびグローバルパッケージがインストールされます。
  • NVM_INC -ノードのインクルードファイルディレクトリ(ノードのC / C ++アドオンを構築するのに便利です)。
  • NVM_CD_FLAGS -zshとの互換性を維持するために使用されます。
  • NVM_RC_VERSION -使用されている場合は、.nvmrcファイルのバージョン。

また、NVM修正PATH、及び、存在する場合、MANPATHおよびNODE_PATHバージョンを変更する場合。

Bashの完了

有効にするには、ソースを作成する必要がありますbash_completion

[[ -r  $ NVM_DIR / bash_completion]] &&  \。 $ NVM_DIR / bash_completion

上記のソーシングラインを、プロファイルのnvmのソーシングラインのすぐ下に配置します(.bashrc.bash_profile)。

使用法

nvm:

$ nvm Tab

alias               deactivate          install             list-remote         reinstall-packages  uninstall           version
cache               exec                install-latest-npm  ls                  run                 unload              version-remote
current             help                list                ls-remote           unalias             use                 which

nvmエイリアス:

$ nvmエイリアス Tab

default      iojs         lts/*        lts/argon    lts/boron    lts/carbon   lts/dubnium  lts/erbium   node         stable       unstable

$ nvmエイリアスmy_alias Tab

v10.22.0       v12.18.3      v14.8.0

nvmの使用:

$ nvmの使用 Tab

my_alias        default        v10.22.0       v12.18.3      v14.8.0

nvmアンインストール:

$ nvmアンインストール Tab

my_alias        default        v10.22.0       v12.18.3      v14.8.0

互換性の問題

nvmデフォルト以外の設定が設定されている場合、いくつかの問題が発生します。(#606を参照)次の問題が発生することがわかっています。

内部~/.npmrc

prefix = ' some / path '

環境変数:

$ NPM_CONFIG_PREFIX 
$ PREFIX

シェル設定:

set -e

AlpineLinuxへのnvmのインストール

最高のパフォーマンス(およびその他の最適化)を提供するために、nvmは、実行時にノード(およびnpm)用にコンパイル済みのバイナリをダウンロードしてインストールしますnvm install X。Nodeプロジェクトは、メインストリーム/従来のLinuxディストリビューション(Debian、Ubuntu、CentOS、RedHatなど)用に構築されたこれらのコンパイル済みバイナリをコンパイル、テスト、およびホスト/提供します。

Alpine Linuxは、メインストリーム/従来のLinuxディストリビューションとは異なり、非常にコンパクトな(〜5MB)LinuxディストリビューションであるBusyBoxに基づいています。BusyBox(したがってAlpine Linux)は、ほとんどの主流/従来のLinuxディストリビューション(musl)とは異なるC / C ++スタックを使用します。これにより、このような主流/従来のバイナリプログラムはAlpine Linuxと互換性がなくなります。したがって、Alpine Linuxで単純nvm install Xに実行して、ダウンロードしたバイナリが正しく実行されることを期待することはできません。これを試してみると、「…存在しません」というエラーが表示される可能性があります。

nvmがノードソースをダウンロードしてローカルでコンパイルするように要求する-sフラグがnvm installあります。

Alpine Linuxにnvmをインストールすることまだ必要な場合、または必要な場合は、AlpineLinuxシェルから次のコマンドを実行することでこれを実現できるはずです。

apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g ++ libgcc linux-headers grep util-linux binutils findutils
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

Nodeプロジェクトにはいくつかの要望がありますが、Alpine互換のバイナリを提供するための具体的な計画はありません(構築、テスト、およびサポートのオーバーヘッドのため)。

代替案として、@ mhart(ノード寄稿者)には、ノードとオプションでnpmがプリインストールされたAlpineLinux用のDockerイメージがいくつかあります

アンインストール/削除

手動アンインストール

nvm手動で削除するには、次のコマンドを実行します。

$ rm -rf " $ NVM_DIR "

~/.bashrc以下の行を編集(または他のシェルリソース構成)して削除します。

export NVM_DIR = " $ HOME /.nvm " 
[ -s  " $ NVM_DIR /nvm.sh " ] &&  \。 " $ NVM_DIR /nvm.sh "  #この負荷はNVM 
[[ -r  $ NVM_DIR / bash_completion]] &&  \。 $ NVM_DIR / bash_completion

開発環境用のDocker

開発とテストを簡単にするために、開発用のDockerfileがあります。これは、Ubuntu 18.04ベースイメージに基づいており、nvm開発に不可欠で便利なツールを使用して準備され、環境のdockerイメージを構築し、でdockerコマンドを実行します。nvmリポジトリのルート:

$ docker build -tnvm-dev 

これにより、現在のnvmリポジトリが事前定義された開発環境とともに、という名前のDockerイメージにパッケージ化されます。正常にnvm-devビルドされたら、次の方法でイメージを検証しますdocker images

$ docker画像

リポジトリタグの画像ID作成サイズ
nvm-dev最新9ca4c57a97d87日前650MB

エラーメッセージが表示されない場合は、次の操作を簡単に行うことができます。

$ docker run -h nvm-dev -it nvm-dev

nvm @ nvm-dev: / .nvm $

イメージの作成には約8分かかり、イメージサイズは約650MBになるため、本番環境での使用には適していません。

Dockerの詳細とドキュメントについては、公式Webサイトを参照してください。

問題

  • ノードバージョンをインストールしようとしてインストールが失敗した場合は、必ず実行nvm cache clearしてキャッシュされたノードのダウンロードを削除してください。そうしないと、次のようなエラーが発生する可能性があります。

    curl:(33)HTTPサーバーはバイト範囲をサポートしていないようです。再開できません。

  • 私はどこにいsudo nodeますか?#43をチェックしてください

  • ノードのv0.8.6リリース後、nvmはバイナリパッケージからのインストールを試みます。ただし、一部のシステムでは、共有ライブラリの非互換性のために、公式のバイナリパッケージが機能しません。このような場合は、-sオプションを使用して、ソースからのインストールを強制します。

nvm install -s 0.8.6
  • defaultエイリアスを設定しても新しいシェルでノードバージョンが確立されない場合(つまり、nvm currentyields system)、システムのノードPATHnvm.shシェルプロファイルのソース行の前に設定されていることを確認してください(#658を参照)。

macOSのトラブルシューティング

nvmノードのバージョンがvimシェルに見つかりません

ノードバージョンをシステムノードバージョン以外のバージョンに設定し、nvm use 6.2.1vimを開いて実行:!node -vするとv6.2.1、システムバージョンが表示されるかどうかを確認する必要がありますv0.12.7。実行する必要があります:

sudo chmod ugo-x / usr / libexec / path_helper

この問題の詳細については、dotphiles / dotzshをご覧ください

nvmはnpmconfigの「prefix」オプションと互換性がありません

この問題のいくつかの解決策はここにあります

この問題を引き起こすもう1つのエッジケースがあります。これは$HOMEパスとユーザーのホームディレクトリの実際の名前との不一致です。

のユーザーディレクトリ名$HOMEと実行時に表示されるユーザーディレクトリ名がls /Users/ 同じように大文字になっていることを確認する必要があります(この問題を参照してください)。

ユーザーディレクトリやアカウント名を変更するには、こちらの手順に従ってください

Homebrewはzshディレクトリを安全でなくします

zsh compinit:安全でないディレクトリ、リストに対してcompaudit実行ます。
安全でないディレクトリを無視して[y]を続行するか、compinit [n]を中止しますか?y

Homebrewは/usr/local/share/zsh/site-functions、やのような安全でないディレクトリを引き起こし/usr/local/share/zshます。これはないnvm問題-それは自作問題です。この問題に関連するいくつかの解決策については、こちらを参照してください。

M1チップを搭載したMac

2021年1月: Appleの新しいM1チップ(arm64アーキテクチャ)用の15.xより前のバージョン用にコンパイル済みのNodeJSバイナリはありません。

あなたが遭遇するかもしれないいくつかの問題:

  • nvmインストールに使用して、たとえばv14.15.4
    • Cコードは正常にコンパイルされます
    • ただし、使用するとメモリ不足エラーでクラッシュします
    • ノードで使用可能なメモリを増やしても、メモリ不足エラーが発生します。
      $ NODE_OPTIONS = " --max-old-space-size = 4096 " ./node_modules/.bin/your_node_package
  • nvm一部のバージョンのインストールに使用すると、コンパイルが失敗します
  • nvmいくつかのバージョンを正常にコンパイルした後、yarnまたはnpm後でincorrect data checkエラーでパッケージのインストールに失敗する可能性があります。

この問題の解決策の1つは、シェルのアーキテクチャをarm64からx86に変更することです。

それを仮定しましょう:

  • すでにバージョンが12.20.1あり、14.15.4を使用してインストールされていますnvm
  • 現在使用されているバージョンは 14.15.4
  • zshシェルを使用しています
  • Rosetta 2がインストールされている(macOSでは、Intelのみの非コマンドラインアプリケーションを初めて開いたときにRosetta 2をインストールするように求められます。または、コマンドラインからRosetta 2をインストールすることもできますsoftwareupdate --install-rosetta
#実行しているバージョンを確認します。
$ node --version
v14.15.4
# `node`バイナリのアーキテクチャを確認します。
$ node -p process.arch
arm64
#これは、アーチがM1チップ用であり、問​​題を引き起こしていることを確認します。
#それで、それをアンインストールする必要があります。
#現在使用しているバージョンをアンインストールできないため、別のバージョンに切り替えます。
$ nvm install v12.20.1
#ここで、置き換えたいバージョンをアンインストールします。
$ nvmアンインストールv14.15.4
# 64ビットX86アーキテクチャで新しいzshプロセスを起動します。
$ arch -x86_64 zsh
# NVMを使用してノードにインストールします。これにより、プリコンパイルされたx64バイナリがダウンロードされます。
$ nvm install v14.15.4
#ここで、アーキテクチャが正しいことを確認します。
$ node -p process.arch
x64
#これで、arm64zshプロセスに安全に戻ることができます。 
$ exit 
#ネイティブシェルに戻ります。
$アーチ
arm64
#そして、新しいバージョンが使用できるようになりました:
$ nvm use v14.15.4
現在、ノードv14.15.4(npm v6.14.10)を使用しています

メンテナ

現在、唯一のメンテナは@ljharbです-より多くのメンテナが大歓迎です、そして私たちは時間をかけてチームに人々を加えることを望んでいます。プロジェクトが進展するにつれて、ガバナンスは再評価されます。

ライセンス

LICENSE.mdを参照してください。

著作権表示

Copyright OpenJSFoundationおよびnvm寄稿者。全著作権所有。OpenJS財団は、米国およびその他の国における登録商標および使用の商標を持っています。OpenJS Foundationの商標のリストについては、当社の商標ポリシーおよび商標リストを参照してください。Node.jsは、Joyent、Inc。の商標であり、許可を得て使用しています。OpenJS Foundationの商標リストに記載されていない商標およびロゴは、それぞれの所有者の商標™または登録®商標です。それらの使用は、それらとの提携またはそれらによる承認を意味するものではありません。

OpenJS Foundation | 利用規約プライバシーポリシーOpenJS財団細則商標ポリシー商標リストクッキーポリシー

ABOUT ME
たけ
はじめまして! たけといいます。 20代男性サラリーマンが資産運用で5年で3000万をめざします。 これを読んで自分でも出来るのではないかと思ってくれる人が増えると嬉しいです。 お金を得ることは手段に過ぎません。若いうちに稼いで、自分の時間をより大切なことに使いたいです。 【2019投資戦歴】 投資資金合計 300万 2019年度単年損益(年利) FX 15万(15%) 投信 9万(7%) 株式 4万(8%) ※投信、株式は含み益