2

nvm を使用してノードをインストールしましたが、正常に動作しますがsource $HOME/nvm/nvm.sh、ノードをアクティブにするために必要なすべての新しいセッション

source $HOME/nvm/nvm.shすべてのssshセッションで入力する必要がないように、起動時にアクティブにするにはどうすればよいですか

このコマンドを追加しようとしsource $HOME/nvm/nvm.shまし/etc/rc.localたが、次のエラーが発生しました

>  /etc/init.d/node_start.sh: 13: root/nvm/nvm.sh: Bad substitution
>     /etc/init.d/node_start.sh: 78: root/nvm/nvm.sh: [[: not found
>     /etc/init.d/node_start.sh: 78: root/nvm/nvm.sh: [[: not found
>     /etc/init.d/node_start.sh: 129: root/nvm/nvm.sh: [[: not found
>     /etc/rc.local: 14: /etc/rc.local: source: not found

しかし、シェルでそのコマンドを実行すると、正常に動作します

どんな助けでも大歓迎です

よろしく

4

3 に答える 3

1

~/.bashrc ファイルの末尾に以下の行を追加する必要があります。

[[ -s /home/$USER/.nvm/nvm.sh ]] && . /home/$USER/.nvm/nvm.sh
于 2015-06-23T20:23:56.677 に答える
0

あなたのinitスクリプトは、で始まる#!/bin/sh必要があるときに始まると思います#!/bin/bash。もちろん、Bash で init スクリプトを作成しない正当な理由がたくさんあるかもしれません...

于 2013-07-22T22:19:39.733 に答える
0

init スクリプトは、ユーザーではなく root として実行されています。独自の を入手したい場合はnvm.sh、 を使用せず$HOME、 のような絶対パスを使用して/home/vitor/nvm/nvm.shください。また、init スクリプトはおそらく下で実行されているため、コンストラクトdashを使用しないでください。このダッシュで説明されているように、代わりに/bin/sh 記事として[[使用してください[

そこで、 https://github.com/creationix/nvm/blob/master/nvm.shから nvm.sh ソース コードを読みました。

ダッシュには対応していないと思います。したがって、nvm.sh をファイルシステムの別の場所に残し、init スクリプトで実行することをお勧めします。

exec /bin/bash /root/nvm/nvm.sh

から始めることも十分な場合がありますnode_start.sh#!/bin/bash

他の人がこのエラーに遭遇した nvm の github で issue 168 にサブスクライブすることもできます。

于 2012-11-26T00:01:51.807 に答える