web-dev-qa-db-ja.com

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

nvm、そして最終的にノードがインストールされるスクリプトを作成しようとしています。
cURLを使用してnvmをインストールしました。 .profileまたは.bashrcファイル(両方の作業)とbashプロンプトでnvmを入力すると、使用可能なオプションなどが表示されます。
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が私のシェルです。

41
okidoki

nvmコマンドは、_~/.nvm/nvm.sh_で宣言されたシェル関数です。

nvm()を使用可能にするために、最初に以下のスクリプトのいずれかを入手できます。

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

OSXのbrewを介してインストールした場合は、インストールの詳細をソースとして取得することにより、brewソースのスクリプトをスクリプトenvにロードできます。

bootstrapそれらのプロジェクトにこれがあります:

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

@webKnjaZによって提供された回答の上に小さな吹き出し:bashスクリプトで機能させるために、すべてのコマンドに対してシェル関数をソースにする必要がありました。このようなもの:

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

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

root @ ubuntu:/ usr/src/playground#n = $(which node); 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' + [email protected] 49個のパッケージを129.186に追加

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

0
ABHISHEK SHARMA