сбой смешивания deps.get (проблема с зависимостью)

Я новичок в elixir и phoenix (и ubuntu) и борюсь за то, чтобы начать заниматься веб-разработкой. при создании нового приложения Phoenix с использованием

mix phoenix.new webapp

я получаю следующие ошибки от терминала

Fetch and install dependencies? [Yn] y
* running mix deps.get
* error command failed to execute, please run the following command again after installation: "mix deps.get"
* running npm install && node node_modules/brunch/bin/brunch build
* error command failed to execute, please run the following command again after installation: "npm install && node node_modules/brunch/bin/brunch build"

и при запуске mix deps.get

результирующее сообщение об ошибке

** (Mix) No package with name phoenix_ecto (from: mix.exs) in registry

Я все еще новичок в использовании этой платформы, поэтому я не совсем уверен, как вытащить / получить / разместить / загрузить пакет phoenix_ecto в реестре. Насколько я понимаю, все это обрабатывается шестнадцатеричным менеджером пакетов.

Мне удалось запустить Phoenix несколько дней назад, и мне удалось немного поиграться с разработкой небольших тестовых приложений. но похоже, что где-то в моем безрассудном терминале sudoing мне удалось что-то сломать.

некоторая дополнительная информация

Elixir 1.3.4
Mix 1.3.4
npm 3.5.2
node v4.2.6
Phoenix v1.2.1

Если потребуется какая-либо другая информация, я с радостью предоставлю ее!


person Charles Schleich    schedule 15.12.2016    source источник
comment
Это странная ошибка. Да, с phoenix_ecto следует обращаться с помощью hex. На вашем месте я бы попытался добавить зависимость непосредственно в ваш файл микса, если ее еще нет. Вот так: {: phoenix_ecto, ~ ›3.1.0-rc.0}   -  person Onorio Catenacci    schedule 15.12.2016
comment
Я проверил свой файл mix.exs, и зависимость уже была как {: phoenix_ecto, ~ ›3.0}   -  person Charles Schleich    schedule 15.12.2016


Ответы (2)


Мне удалось исправить ошибку, разблокировав зависимости и обновив их. команды ниже.

mix deps.unlock --all
mix deps.update --all

Теперь проекты создаются и строятся без проблем. Надеюсь, это кому-то поможет.

Изменить 1:

Если вышеуказанное не работает, существует вероятность, что ваша шестнадцатеричная установка была повреждена. Это было в моем случае примерно через неделю после первоначального поста. Можно исправить, сняв шестигранник и переустановив.

rm -rf ~/.mix/archives/hex-0.15.0
mix local.hex

ваша шестнадцатеричная версия может отличаться от моей.

hex-0.xx.x
person Charles Schleich    schedule 15.12.2016
comment
Я как раз собирался предложить убедиться, что все ваши зависимости разблокированы. Рад, что ты сам нашел. - person Onorio Catenacci; 15.12.2016

Это может появиться в нескольких случаях. Сначала зайдите в раздел mix.exs deps. Убедитесь, что phoenix_ecto размещен с правильной версией и opts. Далее вам нужно проверить phoenix_ecto из локального репозитория клонирования и установить {:phoenix_ecto, path: "..."} в вашем проекте. Попробуй скомпилировать локальный. Если он компилируется локально, а не компилируется в deps, проверьте файл phoenix_ecto mix.exs и метод defp package и убедитесь, что список возврата содержит mix.exs [_, .., file: ~w{mix.exs}, _].

Обычно эта проблема связана с mix.exs.

person khusnetdinov    schedule 17.12.2016