2017-02-21 11 views
0

Windows上でelixir/phoenixプログラムを展開して実行する方法についてのアドバイスを探しています。Q:Elixir/PhoenixプログラムをWindowsに正しく展開する方法

私はDistilleryを使用しましたが、 'mix release'で動作しましたが、コマンドプロンプトで使用できるコマンドはありません。

_build/dev.../<program> console 

などのすべての推奨コマンドでは、「認識された内部コマンドまたは外部コマンドではありません」というエラーが発生します。

exrmも使用しましたが、パス内の不要な「//」を削除するために.batファイルを変更した後でも、erlangダンプファイルに「カーネルPID終了」エラーが発生します。

VERSION:

エリクサー:1.4.2 アーラン:19.2 [ERTS-8.2] Exrm:1.0.3

の.batの編集された: /REL //リリース/バージョン/アプリ.batと /rel//bin/app.bat

これは、上記の代わりに /rel//releases//app.batを実行しようとしたためです。 (修正プログラムはここに見つかりました)

これはプログラムが実行されましたが、エラーをスローします:カーネルPID終了(アプリケーションコントローラ)が子 'elixir.helloworld.endpoint'を開始できませんでした。これまでのところ、初めてこの部分をやってみましょう。

ノート:exrmプログラムとWindowsの10のミックスphoenix.serverで正常に動作します

誰もがWindows上で起動するエリキシルプログラムやサービスを得るためにステップバイステップを持っていますか?

編集: 'ミックスリリース' 中に警告ばかり:

variable deps does not exist and is being expanded to deps() 

そして起動しようとしている中: は 'REL /リリース/バージョン/準拠/ファイルを開くことができませんでした'

編集/ REL/

/bin/app.bat%start_erl%

@set start_erl=%release_root_dir%\releases\start_erl.data 
@for /f "delims=" %%i in ('type "%start_erl%"') do 
@(set start_erl_data=%%i) 

Eに "" 追加dited /rel//releases/version/app.bat:

は、 "追加" を%start_erl%

:: Discover the release root directory from the directory of this script 
@set script_dir=%~dp0 
@for %%A in ("%script_dir%\..\..") do @(set release_root_dir=%%~fA) 
@set start_erl=%release_root_dir%\releases\start_erl.data 
@for /f "delims=" %%i in ('type "%start_erl%"') do 
@(set start_erl_data=%%i) 

-Added "" %のWerlの%で

:: Start a console 
:console 
@call :generate_config 
@start "%rel_name% console" "%werl%" -config "%sys_config%"^
-boot "%boot_script%" -boot_var ERTS_LIB_DIR "%erts_dir%"/lib^
-env ERL_LIBS "%release_root_dir%"/lib^
-pa "%release_root_dir%"/lib "%release_root_dir%"/lib/consolidated^
-args_file "%vm_args%"^
-user Elixir.IEx.CLI -extra --no-halt +iex 
+0

蒸留所は現在Windowsではサポートされていません。私たちはそれに取り組んでいます。どの.batファイルをExrmで編集したのですか?どのように編集しましたか?これらのバッチファイルでは「不要な//」とは思い出さないので、何を意味するのか分かりません。これを理解するためには正確な詳細が必要です。 ExrmはErlangとElixirがスペースを含まないパスであれば動作するはずです。 –

+0

ここでの答え:http://stackoverflow.com/questions/30687781/how-to-run-elixir-applicationはElixirアプリケーションの起動方法をカバーしており、Windowsおよびその他のサポートされているOSで動作するはずです。 –

+0

お返事ありがとうございます。 – microleb

答えて

1

さらにいくつかの提案を:

  1. 最新版のEXRMを試してください(1.08、1.03になっています)。ちなみに、EXRMのバージョンをもう一度確認してください。実際には1.08ではなく、あなたがそれを誤解していると私はちょっと驚いています。
  2. 小さな/シンプルなアプリケーションを作成し、の修正されていない バッチファイルでコンソールを試してみてください。
  3. Erlangをアンインストールし、 のスペースがないパス(たとえば、c:\ usr \ bin \ erlang)にインストールしてください。はい、私は Windowsでは標準ではありませんが、スペースを含むディレクトリ名は常に問題を引き起こしているようです。
  4. erl_crash.dumpファイルを探します。見つかった場合は、iexシェルを起動して:observer.start()と入力してオブザーバを使用します。オブザーバ内では、メニューからFile-> Crashdumpを調べます。これは、何が間違っているのかを理解するのに役立ちます。
  5. バッチファイルによって生成されたコマンドラインを正確に把握できる場合は、コマンドラインを直接実行して何が起こるかを確認してください。それは何か異なった動作をすることはまずありませんが、エコーされるのではなく隠されている追加のメッセージがある場合、あなたはそれをそのように見ることができます。
+0

更新していただきありがとうございます。exrmのバージョンチェックとerlangの再インストールをお試しいただきありがとうございます。 私は変更されていないbatファイルを実行しようとしましたが、バットの '"'がないため不正なパスの検索を試みます。 – microleb

関連する問題