DevGang
Авторизоваться

Установите несколько Erlang и Elixir с помощью vfox

vfox (version-fox) — это популярный инструмент общего управления версиями, написанный на Go, а механизм подключаемых модулей использует Lua для достижения расширяемости. В настоящее время vfox поддерживает управление версиями большинства основных языков программирования, и экосистема является довольно мощной.

Сообщества Elixir и Erlang уже давно пользуются популярностью для установки и управления многоверсионными средами с помощью asdf. asdf также является универсальным инструментом управления версиями, и его экосистема очень богата.

Vfox очень похож на asdf-vm в том смысле, что использует файл .tool-versions для управления информацией о версии на уровне проекта и глобальной версии. Это означает, что если вы раньше использовали asdf, переключиться на vfox не составит труда. Поскольку основные реализации vfox и asdf немного отличаются, vfox выполняется почти в 5 раз быстрее, чем ASDF~, а в официальной документации также приведены результаты тестирования: сравнение version-fox Comparison c asdf-vm.

Если вы использовали asdf для управления и поддержки нескольких версий Erlang и Elixir, то vfox также станет для вас хорошим выбором.

Эта статья покажет вам, как установить и управлять несколькими версиями Erlang и Elixir через vfox.

Установка vfox

vfox (version-fox) совместим с разными ОС, что означает, что его можно использовать как в Windows, так и в Unix-подобных системах. Суть этой статьи — установка и управление несколькими версиями Erlang и Elixir через vfox. Поскольку две реализации подключаемого модуля vfox для управления версиями Erlang и Elixir еще не поддерживают управление в операционной системе Windows, примером среды в этой статье в основном является среда Ubuntu 20.04 Linux. Давайте начнем.

Сначала установите vfox:

echo "deb [trusted=yes] https://apt.fury.io/versionfox/ /" | sudo tee /etc/apt/sources.list.d/versionfox.list
sudo apt-get update
sudo apt-get install vfox

Чтобы vfox мог найти установленные версии Elixir и Erlang, vfox должен быть смонтирован в оболочку по умолчанию. Затем измените конфигурацию оболочки (возьмем Bash в качестве примера):

# Hook your shell
echo 'eval "$(vfox activate bash)"' >> ~/.bashrc

После установки VFOX давайте установим следующие плагины:

# add vfox-erlang plugin
vfox add erlang
# add vfox-elixir plugin
vfox add elixir

Далее мы можем установить несколько версий Erlang и Elixir и управлять ими с помощью двух плагинов vfox vfox-erlang и vfox-elixir, установленных выше.

Установка Erlang/OTP через плагин vfox-erlang

Поскольку Elixir зависит от Erlang, нам необходимо установить Erlang перед установкой Elixir. Erlang устанавливается через исходный код соответствующей версии, поэтому нам необходимо иметь соответствующий набор инструментов компиляции, в качестве примера возьмем Ubuntu 20.04:

sudo apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-11-jdk

Теперь пришло время установить Erlang.

# use vfox search get an avaliable version
❯ vfox search erlang
Please select a version of erlang [type to search]: 
->  v25.0.4
   v24.3.4.16
   v24.1.3
   v24.0
   v24.3
   v24.3.2
   v25.2
   v27.0-rc2
   v24.3.4.1
Press ↑/↓ to select and press ←/→ to page, and press Enter to confirm

# you can also specific a version, eg:
vfox install erlang@26.2.2

Теоретически вы можете установить любую версию, представленную в https://github.com/erlang/otp/releases. Поскольку он скомпилирован и установлен из исходного кода, процесс установки займет некоторое время. Когда вы увидите следующее сообщение, установка завершена.

compile info.......
...
Install erlang@26.2.2 success! 
Please use vfox use erlang@26.2.2 to use it.

Давайте воспользуемся vfox, чтобы переключиться на только что установленную версию Erlang/OTP, чтобы убедиться, что установка прошла успешно:

❯ vfox use erlang@26.2.2
Now using erlang@26.2.2.
❯ erl
Erlang/OTP 26 [erts-14.2.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]

Eshell V14.2.2 (press Ctrl+G to abort, type help(). for help)
1> 

Если REPL запустится правильно, то установите его. Приступим к установке Elixir.

Установка Elixir

Поскольку установка Elixir также компилируется и устанавливается из исходного кода соответствующей версии, компиляция Elixir должна зависеть от Erlang, поэтому мы сначала позволяем текущей оболочке найти только что установленный Erlang.

# switch shell to a Erlang version
❯ vfox use erlang@26.2.2
Now using erlang@26.2.2.
# install Elixir
> vfox install elixir@1.15.2
.........
.........
Generated ex_unit app
==> logger (compile)
Generated logger app
Generated eex app
==> iex (compile)
Generated iex app
Install elixir@1.15.2 success! 
Please use vfox use elixir@1.15.2 to use it.

Когда вы увидите сообщение «Install elixir@1.15.2 success!», это означает, что установка прошла успешно. Установка может быть подтверждена IEX как полная успешная:

❯ vfox use elixir@1.15.2
Now using elixir@1.15.2.
❯ iex
Erlang/OTP 26 [erts-14.2.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]

Interactive Elixir (1.15.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 

Если вы хотите установить другую версию Elixir, убедитесь, что текущая версия Erlang/OTP совместима с версией Elixir.

Установка глобальной пользовательской версии

Мы можем использовать vfox use -g xxx, чтобы установить версию Erlang и Elixir, которую мы установим по умолчанию.

> vfox use -g erlang@26.2.2
> vfox use -g elixir@1.15.2

# make sure setting succ
> cat ~/.version-fox/.tool-versions 
erlang 26.2.2
elixir 1.15.2

Два плагина в vfox для установки и управления версиями Erlang/OTP и Elixir также поддерживают управление несколькими версиями в системе MacOS Darwin.

Источник:

#MacOS
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу