Библиотечные пути для процесса компиляции микса - PullRequest
0 голосов
/ 18 апреля 2019

После перехода с brew на asdf инструмент управления версиями для Elixir и Erlang я все еще не могу скомпилировать мои старые проекты: в процессе компиляции он пытается сослаться на несуществующие файлы Brew's Cellar lib:

MacBook-Pro% mix test
==> gettext
Compiling 1 file (.erl)
/usr/local/Cellar/erlang/21.3.2/lib/erlang/lib/parsetools-2.1.8/include/yeccpre.hrl:59: illegal pattern
/usr/local/Cellar/erlang/21.3.2/lib/erlang/lib/parsetools-2.1.8/include/yeccpre.hrl:60: variable 'Error' is unbound
/usr/local/Cellar/erlang/21.3.2/lib/erlang/lib/parsetools-2.1.8/include/yeccpre.hrl:60: variable 'Stacktrace' is unbound
/usr/local/Cellar/erlang/21.3.2/lib/erlang/lib/parsetools-2.1.8/include/yeccpre.hrl:63: variable 'Stacktrace' unsafe in 'try' (line 60)
/usr/local/Cellar/erlang/21.3.2/lib/erlang/lib/parsetools-2.1.8/include/yeccpre.hrl:64: variable 'Error' unsafe in 'try' (line 60)
/usr/local/Cellar/erlang/21.3.2/lib/erlang/lib/parsetools-2.1.8/include/yeccpre.hrl:64: variable 'Stacktrace' unsafe in 'try' (line 60)
could not compile dependency :gettext, "mix compile" failed. You can recompile this dependency with "mix deps.compile gettext", update it with "mix deps.update gettext" or clean it with "mix deps.clean gettext"

даже если нет никакой папки /usr/local/Cellar/erlang

, где микс берет пути к внешним библиотекам erlang и как это изменить, чтобы использовать пакеты asdf?

1 Ответ

1 голос
/ 19 апреля 2019

Erlang, а также Elixir используют двоичные файлы и библиотеки из вашей переменной окружения $PATH, как описано здесь: https://elixir -lang.org / install.html # installation-erlang

Обычно asdf загружается в конце вашего $PATH, что означает, что если у вас все еще установлены Erlang и Elixir через brew, он будет загружен первым.Тем не менее, пожалуйста, проверьте еще раз, если какая-либо другая версия Erlang установлена ​​через Brew.Вы можете удалить все версии с помощью команды brew uninstall erlang --force

Также установите локальные версии Erlang и Elixir в корневом каталоге вашего проекта с помощью команд:

asdf local erlang 21.3.2
asdf local elixir 1.8.1-otp-21

Изменить версиив соответствии с вашей средой.

И, наконец, проверьте, загружает ли asdf правильную версию с помощью команды asdf current.Он должен отображать что-то вроде:

elixir         1.8.1-otp-21 (set by /path/to/project/.tool-versions)
erlang         21.3.2   (set by /path/to/project/.tool-versions)

В качестве крайней меры, посмотрите https://asdf -vm.com / # / core-manage-asdf-vm? Id = Имея-проблемы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...