nvmコマンドはbashスクリプトでは使用できません


39

nvm最終的にノードがインストールされるスクリプトを作成しようとしています。cURLで
インストールnvmしました。.profileor .bashrcファイルの変更を確認し(両方とも)nvm、bashプロンプトでを入力すると、使用可能なオプションなどが表示されます。
したがって、nvmは機能します。手動でノードをインストールできますが、nvmコマンドをシェルスクリプトに入れるとすぐに:

nano test.sh

#!/bin/bash
nvm

そしてそれを実行します:

chmod 755 test.sh
./test.sh

私は得る:

./test.sh: line 2: nvm: command not found

それが見つからない場合nvm、私も考える必要はありません

nvm ls-remote 

または

nvm install ...

Ubuntu 14.04をインストールしました。Bashは私のシェルです。


nvmを呼び出す前にスクリプトのパスを出力し、正しいかどうかを確認します。
AProgrammer

回答:


69

nvmcommandはで宣言されたシェル関数~/.nvm/nvm.shです。

次のスクリプトのいずれかを開始時にnvm()入手して、利用可能にすることができます。

. ~/.nvm/nvm.sh
. ~/.profile
. ~/.bashrc
. $(brew --prefix nvm)/nvm.sh  # if installed via Brew

ありがとね。これは、nvmが〜/ .nvmに「インストール」されているため、理にかなっています。おそらく単なるシェルスクリプトです。私が欠けているのは、nvmと入力して動作させることができるということですが、〜/ .nvmでシェルスクリプトを試すと動作しません。
おきどき

どういう意味trying the shell scripts in ~/.nvmですか?nvm上記のシェルスクリプトから実行する方法を説明しました。不明な点はありますか?
webKnjaZ

最後のコメントを詳しく述べます。「sudo find / -iname nvm *」を実行すると、〜/ .nvmフォルダーにあるものだけが見つかります。〜/ .nvm / nvm-execまたは〜/ .nvm / nvm.sh(〜/ .nvm内の唯一のファイルで、シェルスクリプトであることが判明)を実行しても、「nvm」と入力するだけでnvmが得られませんコマンドライン。したがって、nvmとプログラムの間のリンクはどこにありますか。
おきどき

ああ.. はあなたのシェル環境にnvmあると思いaliasます。の出力を投稿してくださいwhich nvm。これで問題が解決します。
webKnjaZ

2
nvmローカルにインストールし、調査を行いました。nvmnvm.sh. ~/.nvm/nvm.sh.profile.bashrc
はで

2

OSXでbrewを使用してインストールした場合、インストールの詳細に従ってソースを作成することで、ソースbrewスクリプトをスクリプトenvにロードできます。

私はそれらをブートストラップするプロジェクトにこれを持っています:

brew install nvm
. $(brew --prefix nvm)/nvm.sh
nvm install
...

1

@webKnjaZが提供する答えに加えて小さなコールアウト:すべてのコマンドのシェル関数をソースにして、bashスクリプトで機能させる必要がありました。このようなもの:

. ~/.nvm/nvm.sh --version
. ~/.nvm/nvm.sh install 4.4.5

1
私にはうまくいきませんでした。以下は私のために働いた:〜/ .nvm / nvm.sh nvm --version
jeff musk

0

下にある同じことがたまたま私のために働いたものです:

root @ ubuntu:/ usr / src / playground#n = $(どのノード); n = $ {n%/ bin / node}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin、lib、share} / usr / local

root @ ubuntu:/ usr / src / playground#sudo npm install express '/usr/src/playground/package.json' + express@4.16.2は129.186sに49個のパッケージを追加しました

上記のコマンドは少し複雑ですが、nvmを介してアクティブなノードのバージョンを/ usr / local /ディレクトリ(ユーザーがインストールしたグローバルファイルはLinux VPSに存在する必要があります)にコピーし、許可を設定するだけですすべてのユーザーがそれらにアクセスできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.