标签: elixir-mix

凤凰服务器上的MIX_ENV = prod在PORT = 80时崩溃

我有一些问题,拌匀,MIX_ENV=prodmix phoenix.server,它失败的开始.在Linode的Ubuntu 14.04上运行所有最新的(Elixir 1.0.5,Phoenix 0.14.0),除了Erlang(17.x,17.3).

$ MIX_ENV=prod PORT=80 mix phoenix.server
{"Kernel pid terminated",application_controller,"{application_start_failure,elirc_site,{{shutdown,{failed_to_start_child,'Elixir.ElircSite.Endpoint',{shutdown,{failed_to_start_child,'Elixir.Phoenix.Endpoint.Server',{shutdown,{failed_to_start_child,{ranch_listener_sup,'Elixir.ElircSite.Endpoint.HTTP'},{shutdown,{failed_to_start_child,ranch_acceptors_sup,{{badmatch,{error,eacces}},[{ranch_acceptors_sup,init,1,[{file,\"src/ranch_acceptors_sup.erl\"},{line,30}]},{supervisor,init,1,[{file,\"supervisor.erl\"},{line,243}]},{gen_server,init_it,6,[{file,\"gen_server.erl\"},{line,306}]},{proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,239}]}]}}}}}}}}},{'Elixir.ElircSite',start,[normal,[]]}}}"}
Run Code Online (Sandbox Code Playgroud)

具体来说,我认为这部分是追踪.

{{badmatch,{error,eacces}},[{ranch_acceptors_sup,init,1,[{file,\"src/ranch_acceptors_sup.erl\"},{line,30}]}
Run Code Online (Sandbox Code Playgroud)

elixir-mix elixir phoenix-framework

11
推荐指数
3
解决办法
2188
查看次数

如何在自定义混合任务中从Ecto获取数据

我想在自定义混合任务中通过Ecto显示来自我的数据库的数据.如何在我的任务中获得Ecto仓库(或启动它)?

我试过这样的东西,但它不起作用:

defmodule Mix.Tasks.Users.List do


use Mix.Task
  use Mix.Config
  use Ecto.Repo, otp_app: :app

  @shortdoc "List active users"
  @moduledoc """
    List active users
  """
  def run(_) do
    import Ecto.Query, only: [from: 1]

    Mix.shell.info "=== Active users ==="
    query = from u in "users"
    sync = all(query)
    Enum.each(users, fn(s) -> IO.puts(u.name) end)
  end

end
Run Code Online (Sandbox Code Playgroud)

当我启动mix users.list时,这会给我以下输出:

** (ArgumentError) repo Mix.Tasks.Users.List is not started, please ensure it is part of your supervision tree
    lib/ecto/query/planner.ex:64: Ecto.Query.Planner.query_lookup/5
    lib/ecto/query/planner.ex:48: Ecto.Query.Planner.query_with_cache/6
    lib/ecto/repo/queryable.ex:119: Ecto.Repo.Queryable.execute/5
Run Code Online (Sandbox Code Playgroud)

有什么想法或其他方法来解决这个问题?

elixir-mix elixir phoenix-framework

11
推荐指数
2
解决办法
2194
查看次数

如何设置默认的Elixir混合任务

如果我有一个mix.exs类似的文件:

defmodule Mix.Tasks.My_task do
  use Mix.Task

  @shortdoc "Perform my task"

  def run(_) do
    IO.puts "Working"
  end
end

defmodule ElixirKoans.Mixfile do
  use Mix.Project

  def project do

  ...    

end
Run Code Online (Sandbox Code Playgroud)

我很乐意用这个来运行mix my_task.

我如何my_task成为默认值,所以当我在mix没有任务的情况下运行时会执行它?

elixir-mix elixir

10
推荐指数
1
解决办法
2007
查看次数

Elixir混合自动确认

我想在Travis-CI上运行我的Phoenix应用程序的测试.

日志摘录:

$ MIX_ENV=test mix do deps.get, compile, test

Could not find hex, which is needed to build dependency :phoenix

Shall I install hex? [Yn] 
Run Code Online (Sandbox Code Playgroud)

在获取和安装依赖项时,它会询问是否应该安装hex.我想知道我是否可以通过--yes混合选项,以便它不会问但只是安装?

hex elixir-mix elixir travis-ci

10
推荐指数
2
解决办法
4431
查看次数

如何操作LDA,STA,SUB,ADD,MUL和DIV在Knuth的机器语言MIX中工作?

我一直在阅读Donald Knuth第1卷的计算机程序设计艺术.现在我完成了第一部分,所有的数学都被解释了,这是非常愉快的.不幸的是,在p.他开始解释这种MIX基于真实机器语言的虚构机器语言,随后他将解释所有算法,而Knuth先生完全失去了我.

我希望这里有人"说话" MIX,可以帮助我理解它.具体来说,他失去了我开始解释不同操作和展示例子的地方(第125页).

Knuth使用以下形式的"指令格式":

图片1

他还解释了不同字节的含义:

图2

因此,右字节是要执行的操作(例如,LDA"加载寄存器A").F字节是操作代码的修改,具有8L + R的字段规范(L:R)(例如,C = 8且F = 11产生"加载具有(1:3)字段的寄存器).然后+/- AA是地址,我是修改地址的索引规范.

这对我来说有点道理.但是Knuth带来了一些例子.第一个我理解除了几个位,但我无法绕过第二个例子的最后三个,而在下面的例子3中的更困难的操作中没有任何东西.

这是第一个例子:

图3

LDA 2000只加载完整的单词,我们完全在寄存器A中看到它rA.第二个LDA 2000(1:5)加载从第二个位(索引1)到结尾(索引5)的所有内容,这就是加载除加号之外的所有内容的原因.第三个LDA 2000(3:5)只加载从第三个字节到最后一个字节的所有内容.另外LDA 2000(0:3)(第四个例子)有点理解.应复制-803并取 - 并将80和3放在最后​​.

到目前为止这么好,在number5中,如果我们遵循相同的逻辑,LDA2000(4:4)它只传输第四个字节.它确实对最后一个位置做了什么.但是,LDA 2000(1:1)应该只复制第一个字节(符号).这很奇怪.为什么第一个值是+而不是 - (我只想要 - 被复制).为什么其他值都是0而最后一个是问号?

然后他给出了第二个例子的操作STA(商店A):

图4

同样,STA 2000,STA 2000(1:5)STA 2000(5:5)有意义的逻辑相同.但是,Knuth确实如此STA 2000(2:2).你希望在寄存器A中复制第二个字节等于7.但不知怎的,我们最终会得到- 1 0 3 4 5.我一直在看这些几个小时,并且不知道这是怎么回事,或者跟随这一个(STA 2000(2:3)STA 2000(0:1))的两个例子可以导致显示的位置的内容.

我希望这里有人可以对这三个人发光.

此外,我也有在那里,他解释了操作的页面大麻烦ADD, …

assembly knuth elixir-mix

9
推荐指数
1
解决办法
8023
查看次数

如果引发编译时警告,是否有可能让编译器提前退出,使构建失败?

我发现编译时警告非常有用,但我偶尔可能会错过它们,特别是如果它是在一个测试在CI服务器上运行的pull请求中.

理想情况下,我会在项目组合文件中指定一些会使编译器更严格的内容.

我希望这对所有混合任务都有效,我不想将标志传递给命令,因为这很容易忘记.

例如,对于带有编译器警告的项目,此命令应该失败

mix clean && mix compile
Run Code Online (Sandbox Code Playgroud)

应该是这个

mix clean && mix test
Run Code Online (Sandbox Code Playgroud)

elixir-mix elixir

9
推荐指数
2
解决办法
1065
查看次数

Elixir ExUnit:被测模块不可用

我正在关注本教程:http://elixir-lang.org/getting-started/mix-otp/agent.html

所以在我的Elixir项目中,我有一个模块lib/kv/bucket.exs,并对它进行测试test/kv/bucket_test.exs.

当我运行混合测试时,我收到以下错误:** (UndefinedFunctionError) undefined function KV.Bucket.start_link/0 (module KV.Bucket is not available)我错过了什么?

elixir-mix elixir

9
推荐指数
1
解决办法
1563
查看次数

Elixir“在注册表中找不到包::hackney”问题

我正在尝试为我的项目增加覆盖范围,但一直遇到问题。

我已经尝试了此列表底部错误消息中的所有建议。

我有一个大型项目,我希望为单元测试添加覆盖范围,但所有覆盖范围包都类似。

我开始了一个干净的项目,“bug”,只有mix deps() 添加所以干扰被最小化。

任何帮助,将不胜感激。

版本:

rebar3 --version
rebar 3.13.2 on Erlang/OTP 22 Erts 10.4.3

elixir --version
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Elixir 1.9.4 (compiled with Erlang/OTP 22)

erl --version
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Eshell V10.4.3  (abort with ^G)
Run Code Online (Sandbox Code Playgroud)

deps 中的 mix.exs

defp deps() do
  [
    #{:coverex, "~> 1.5", only: [:test], runtime: false},
    {:excoveralls, "~> 0.13.0", only: [:test], runtime: false},
    {:idna, "~> 6.0.1"},
  ]
end
Run Code Online (Sandbox Code Playgroud)

我使用了不同版本的coverex 和excoveralls,但结果是一样的。 …

dependencies version elixir-mix elixir

9
推荐指数
2
解决办法
736
查看次数

在IEX中别名模块/ namepsace的所有内容

根据这个问题中有关如何使用当前项目的依赖关系加载iex 的建议,我能够以非常高效的方式使用phoenix框架依赖项.但是,为每一件事提供Phoenix项目的命名空间都会有点乏味.

而不是打字,MyApp.Repo.all(MyApp.User)我希望能够做到Repo.all(User).我可以单独为每个东西添加别名,alias MyApp.Repo, as: Repo但有没有办法一次性完成所有这些操作?

elixir-mix elixir phoenix-framework iex

8
推荐指数
1
解决办法
1243
查看次数

mix deps.get失败(似乎缺少ssl?)

对不起,我是Elixir的新手.在构建凤凰应用程序时,mix deps.get失败并出现错误.

% mix deps.get
Could not find Hex, which is needed to build dependency :phoenix
Shall I install Hex? [Yn] y
** (MatchError) no match of right hand side value: {:error, {:ssl, {'no such file or directory', 'ssl.app'}}}
    (mix) lib/mix/utils.ex:409: Mix.Utils.read_httpc/1
    (mix) lib/mix/utils.ex:354: Mix.Utils.read_path/2
    (mix) lib/mix/local.ex:107: Mix.Local.read_path!/2
    (mix) lib/mix/local.ex:86: Mix.Local.find_matching_versions_from_signed_csv!/2
    (mix) lib/mix/tasks/local.hex.ex:23: Mix.Tasks.Local.Hex.run/1
    (mix) lib/mix/dep/loader.ex:140: Mix.Dep.Loader.with_scm_and_app/4
    (mix) lib/mix/dep/loader.ex:98: Mix.Dep.Loader.to_dep/3
    (elixir) lib/enum.ex:1043: anonymous fn/3 in Enum.map/2
%
Run Code Online (Sandbox Code Playgroud)

erlang和elixir已通过kerlasdf安装.我的安装日志在这里http://otiai10.hatenablog.com/entry/2016/02/03/154953

envirionment

  • MacOS:10.11.2
  • Erlang:18.0
  • Elixir:1.1.1

发生了什么,我该怎么办?

erlang elixir-mix elixir phoenix-framework

8
推荐指数
2
解决办法
2871
查看次数