在 windows 上成功 运行 Ranch 的步骤是什么?

What are the steps to successfully run Ranch on windows?

请问我们需要采取哪些步骤才能使 Ranch 在 windows 上成功运行?

在一个很棒的博客系列中有一组非常有启发性的示例,我正在尝试在此处遵循:

http://dbeck.github.io/Using-Ranch-From-Elixir/

http://dbeck.github.io/simple-TCP-message-performance-in-Elixir/

然而,它要求我们使用 Ranch Erlang Lib。

让这个在 windows 上运行到目前为止一直很痛苦:

mix.deps.compile 失败

C:\Elixir\tcp_eval>mix deps.update --all
Running dependency resolution
Dependency resolution completed successfully
  ranch: v1.1.0

C:\Elixir\tcp_eval>mix deps.compile
==> ranch
Access denied - SRC
File not found - -TYPE
File not found - F
File not found - -NAME
Access denied - SRC
File not found - -TYPE
File not found - F
File not found - -NAME
Access denied - SRC
File not found - -TYPE
File not found - F
File not found - -NAME
Access denied - SRC
File not found - -TYPE
File not found - F
File not found - -NAME
File not found - SRC/
File not found - -TYPE
File not found - F
File not found - -NAME
Access denied - EBIN
File not found - -TYPE
File not found - F
File not found - -NAME
 APP    ranch.app.src

在这里得到一些帮助:

https://github.com/ninenines/erlang.mk/issues/294#issuecomment-147379818

我能够让 Ranch 在 windows 上工作。

1) 安装msys2环境

2) 运行 从 MSYS2 环境中混合

编辑:通过钢筋执行此操作

D:\Elixir\tcp_eval>rebar
'rebar' is not recognized as an internal or external command,
operable program or batch file.

D:\Elixir\tcp_eval>rebar3
Rebar3 is a tool for working with Erlang projects.


Usage: rebar [-h] [-v] [<task>]

  -h, --help     Print this help.
  -v, --version  Show version information.
  <task>         Task to run.


Several tasks are available:

as                Higher order provider for running multiple tasks in a sequence as a certain profiles.
clean             Remove compiled beam files from apps.
compile           Compile apps .app.src and .erl files.
cover             Perform coverage analysis.
ct                Run Common Tests.
deps              List dependencies
dialyzer          Run the Dialyzer analyzer on the project.
do                Higher order provider for running multiple tasks in a sequence.
edoc              Generate documentation using edoc.
escriptize        Generate escript archive.
eunit             Run EUnit Tests.
help              Display a list of tasks or help for a given task or subtask.
new               Create new project from templates.
path              Print paths to build dirs in current profile.
pkgs              List available packages.
release           Build release of project.
relup             Create relup of releases.
report            Provide a crash report to be sent to the rebar3 issues page.
shell             Run shell with project apps and deps in path.
tar               Tar archive of release built of project.
tree              Print dependency tree.
unlock            Unlock dependencies.
update            Update package index.
upgrade           Upgrade dependencies.
version           Print version for rebar and current Erlang.
xref              Run cross reference analysis.

plugins <task>:
  list           List local and global plugins for this project
  upgrade        Upgrade plugins

unstable <task>:
  install        Extract libs from rebar3 escript along with a run script.
  upgrade        Download latest rebar3 escript and extract.

Run 'rebar3 help <TASK>' for details.

D:\Elixir\tcp_eval>

看着Hex.pm,我决定安装rebar3,这个works/integrates很好用mix。

http://theburningmonk.com/2014/08/getting-started-with-rebar-on-windows/ 之后我们可以得到 rebar3 在 windows

上工作

但这仍然不起作用:

D:\Elixir\tcp_eval>mix deps.compile
==> ranch
'make' is not recognized as an internal or external command,
operable program or batch file.
==> tcp_eval
** (Mix) Could not compile dependency :ranch, "make" command failed. You can recompile this dependency with "mix deps.compile ranch",

D:\Elixir\tcp_eval>