Не удается скомпилировать простой проект Elixir

Я прорабатываю «Programming Elixir» Дэйва Томаса. Теперь я достиг точки, когда вы создаете свой первый микс-проект. HTTPoison был только что введен и добавлен в функцию приложения в mix.exs. Теперь проект должен быть скомпилирован в первый раз с использованием iex -S mix. В тот момент у меня были проблемы с ssl_verify_hostname. После установки erlang-src и erlang-dev я застрял со следующим выводом консоли

$ iex -S mix
Erlang/OTP 18 [erts-7.1] [source] [64-bit] [smp:8:8] [async-threads:10] [kernel-poll:false]

WARN:  Expected /home/..../issues/deps/idna to be an app dir (containing ebin/*.app), but no .app found.
WARN:  Expected /home/..../issues/deps/ssl_verify_hostname to be an app dir (containing ebin/*.app), but no .app found.
==> hackney (compile)
WARN:  Expected /home/..../issues/deps/idna to be an app dir (containing ebin/*.app), but no .app found.
WARN:  Expected /home/..../issues/deps/ssl_verify_hostname to be an app dir (containing ebin/*.app), but no .app found.
Dependency not available: idna-.* ({git,
                                       "https://github.com/benoitc/erlang-idna",
                                       {tag,"1.0.2"}})
Dependency not available: ssl_verify_hostname-.* ({git,
                                                   "https://github.com/deadtrickster/ssl_verify_hostname.erl",
                                                   {tag,"1.0.5"}})
** (ArgumentError) argument error
    (stdlib) :io.put_chars(#PID<0.26.0>, :unicode, <<69, 82, 82, 79, 82, 58, 32, 99, 111, 109, 112, 105, 108, 101, 32, 102, 97, 105, 108, 101, 100, 32, 119, 104, 105, 108, 101, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 32, 47, 104, 111, 109, 101, 47, 114, 107, 114, 97, 117, ...>>)
    (mix) lib/mix/shell.ex:78: Mix.Shell.do_cmd/2
    (mix) lib/mix/tasks/deps.compile.ex:161: anonymous fn/5 in Mix.Tasks.Deps.Compile.do_command/4
    (mix) lib/mix/project.ex:196: Mix.Project.in_project/4
    (elixir) lib/file.ex:1061: File.cd!/2
    (mix) lib/mix/dep.ex:137: Mix.Dep.in_dependency/3
    (mix) lib/mix/tasks/deps.compile.ex:160: Mix.Tasks.Deps.Compile.do_command/4
    (mix) lib/mix/tasks/deps.compile.ex:59: anonymous fn/3 in Mix.Tasks.Deps.Compile.compile/1

Хотя я искал разные части этого вывода, я не нашел никакой полезной информации.


person Robert Krauß    schedule 25.09.2015    source источник
comment
Какую версию эликсира вы используете? Можете ли вы загрузить проект на Github, чтобы мы посмотрели? Происходит что-то действительно странное.   -  person José Valim    schedule 25.09.2015
comment
На самом деле. Боюсь, у вас возникла проблема rebar (арматурный стержень — это инструмент сборки Erlang). Убедитесь, что вы удалили все имеющиеся у вас rebar (проверьте с помощью which rebar), а затем повторите попытку.   -  person José Valim    schedule 25.09.2015
comment
@JoséValim: версия Эликсира 1.0.5. Я отправил проект здесь. rebar не установлен. Может ли это быть проблема?   -  person Robert Krauß    schedule 26.09.2015
comment
Дистрибутивы Linux, которые разбивают erlang на множество мелких частей, действительно затрудняют использование как erlang, так и elixir. Я настоятельно рекомендую устанавливать erlang прямо с erlang.org.   -  person Fred the Magic Wonder Dog    schedule 26.09.2015
comment
Я просто хочу подтвердить, что все работало нормально локально, поэтому, скорее всего, что-то действительно связано с вашей установкой Erlang. Как сказал Фред, я бы попробовал установить Erlang с erlang.org или с Erlang Solutions. Дополнительная информация в нашей документации: elixir-lang.org/install.html#installing-erlang< /а>   -  person José Valim    schedule 26.09.2015
comment
Я попробовал предварительно скомпилированную версию Erlang с erlang-solutions.com, а также скомпилировал исходный код с erlang.org. Прежде чем я проверил через dpkg -l, что все пакеты erlang были удалены. К сожалению ошибка осталась. Исчезли только строки WARN при использовании предварительно скомпилированного файла esl-erlang.   -  person Robert Krauß    schedule 27.09.2015


Ответы (1)


Вы должны установить все зависимости, прежде чем он запустит код.

mix deps.get (загружает зависимости)

mix deps (устанавливает зависимости)

person Tiago Davi    schedule 06.10.2015
comment
К сожалению, это не работает для меня. На самом деле это действительно похоже на проблему rebar, как предположил Хосе Валим. Но я не мог понять, как избавиться от него до сих пор. Тем временем я запускаю образ VirtualBox, где я могу использовать mix. - person Robert Krauß; 06.10.2015