Jalur perpustakaan untuk proses kompilasi campuran

Setelah berpindah dari alat kontrol versi brew ke asdf untuk Elixir dan Erlang, saya masih tidak dapat mengkompilasi proyek lama saya: dalam proses kompilasi ia mencoba merujuk ke file lib Gudang Brew yang tidak ada:

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"

padahal tidak ada folder /usr/local/Cellar/erlang

di mana campuran tersebut mengambil jalur ke lib erlang eksternal dan bagaimana cara mengubahnya untuk menggunakan bundel asdf?


person Roaring Stones    schedule 18.04.2019    source sumber


Jawaban (1)


Erlang, dan juga Elixir menggunakan binari dan lib dari variabel lingkungan $PATH Anda seperti yang dijelaskan di sini: https://elixir-lang.org/install.html#installing-erlang

asdf biasanya dimuat di akhir $PATH Anda, yang berarti jika Anda masih menginstal Erlang dan Elixir melalui brew, asdf akan dimuat terlebih dahulu. Oleh karena itu, harap periksa kembali apakah ada versi Erlang lainnya yang diinstal melalui brew. Anda dapat menghapus semua versi dengan perintah brew uninstall erlang --force

Atur juga versi Erlang dan Elixir lokal di direktori root proyek Anda dengan perintah:

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

Ubah versi sesuai dengan lingkungan Anda.

Dan terakhir periksa apakah asdf memuat versi yang benar dengan perintah asdf current. Ini akan menampilkan sesuatu seperti:

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

Sebagai upaya terakhir, lihat https://asdf-vm.com/#/core-manage-asdf-vm?id=having-issues.

person Leandro Cesquini Pereira    schedule 18.04.2019
comment
Silakan tambahkan bagian yang relevan dari tautan Anda di sini. - person JJJ; 19.04.2019