2017-10-22 29 views
0

私はアプリケーションをビルドして、このアプリケーションのnodejsでインストーラを作成したいと考えています。 インストーラが実行する必要があります。 - アップデートOS - 変更のIP /ホスト名 - gitのハブ からアプリをダウンロード - - 設定ファイルのためのディレクターを作るnginxの、nodejs、ノード追加モジュール(PG、PM2、...)、postgresqlの インストールを - pm2のアプリケーションを実行するnodejsからbashコマンドを実行する

インターネットで私が検索した結果、ノードからchild_processが見つかりましたが、bashコマンドを実行しようとしましたが、「apt-get update」、「apt-get install」のようなコマンドでENOENTエラーが発生しましたnode ".. child_processの関数は、" ls "、" pwd "のような単純なコマンドでのみ機能するようです。 私に助言がありますか? アプリケーションをnodejsで作成するか、純粋なbashコマンドを使用するのは良い方法ですか? アドバイスをいただきありがとうございます。

+0

です。child_processライブラリを使用すると、任意の外部コマンドまたはプログラムを実行できます。あなたの質問の最後の部分は、純粋にスタックオーバーフローのために話題にならないインストーラをビルドするためのさまざまな方法の意見を求めているようです。インストーラを書くには何百もの方法があります。特定の状況に最適なのは、絶対的なものではなく、状況や自分の意見に依存します。今のところ、あなたが実際に何を質問しているのか把握するのは難しいです。 – jfriend00

+0

あなたはこれを見ましたか? https://stackoverflow.com/questions/44647778/how-to-run-shell-script-file-using-nodejs – L30n1d45

+0

bashコマンドを実行しようとしたときにENOENTエラーが発生する理由について質問したい場合は、質問を書き換えてください使用していたコードを表示し、戻ったエラーとその特定のコーディングの問題をどこで解決するのかを具体的に記述します。そのタイプの質問は、スタックオーバーフローのための話題になるだろうが、細部のない一連のことについての意見を求めるすばらしい質問ではない。 – jfriend00

答えて

0

spawnSyncにすべてのbashコマンドを文字列として送信したため、エラーが表示されます。正しい方法は

let cmd = spawnSync("sudo", ["apt-get","upgrade"]); 
+0

元のコードを質問に表示していないので、誰にも答えられていない可能性があります。 (もしあなたが 'child_process.exec'のようなシェルを生成したとしたら、一つの文字列は正しいでしょう;' spawn'ではシェルとは関係なく実行可能ファイルを直接呼び出しています。あなたは走っている*は、 "bashコマンド"ではない)。 –

関連する問題