Erlang, установленный через менеджеры пакетов, не является хорошим способом go, потому что они не включают в себя все, что вам нужно, и иногда они помещают некоторые библиотеки в места, где они не должны быть, а некоторые инструменты просто не
Я рекомендую вам использовать вместо этого выпуски Erlang Solutions, и если вам не нравится использовать Docker, вы можете попробовать воспроизвести то, что я делаю, в Dockerfile моего стека Elixir Docker или просто используйте приведенный ниже сценарий bash.
Установите стек Elixir Phoenix в Ubuntu 18.04
My Elixir Docker Стек начался со старого bash сценарий, который я использовал для установки Erlang, Elixir, Phoenix и NodeJS, поэтому я добавлю его сюда для вашего удобства.
Сохраните этот bash файл install-stack.sh
на свой компьютер:
#!/bin/sh
set -eu
Main() {
local ERLANG_VERSION=${1? Missing Erlang version. Check the latest version at https://www.erlang-solutions.com/resources/download.html}
local ERLANG_DOWNLOAD_URL=https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_${ERLANG_VERSION}-1~ubuntu~bionic_amd64.deb
local ELIXIR_VERSION=${2? Missing Erlang version. Check the latest version at https://www.erlang-solutions.com/resources/download.html}
local ELIXIR_DOWNLOAD_URL=https://packages.erlang-solutions.com/erlang/debian/pool/elixir_${ELIXIR_VERSION}-1~ubuntu~bionic_all.deb
local PHOENIX_VERSION="${3? Missing Phoenix version to install!!!}"
local NODEJS_VERSION="${4? Missing NodeJS version to install!!!}"
apt update
apt -y upgrade
apt -y -q install --no-install-recommends \
ca-certificates \
curl \
build-essential \
procps \
libncurses5 \
libwxbase3.0-0v5 \
libwxgtk3.0-0v5 \
libsctp1
apt -y -f install
printf "\nERLANG DOWNLOAD URL: ${ERLANG_DOWNLOAD_URL}\n"
curl -fsSL -o esl.deb "${ERLANG_DOWNLOAD_URL}"
dpkg -i esl.deb
rm -f esl.deb
printf "\nELIXIR DOWNLOAD URL: ${ELIXIR_DOWNLOAD_URL}\n"
curl -fsSL -o elixir.deb "${ELIXIR_DOWNLOAD_URL}"
dpkg -i elixir.deb
rm -f elixir.deb
printf "\nPHOENIX VERSION: ${PHOENIX_VERSION}\n"
# installs the package manager
mix local.hex --force
# installs rebar and rebar3
mix local.rebar --force
mkdir -p "${HOME}/bin"
ln -s "${HOME}"/.mix/rebar "${HOME}"/bin/rebar
ln -s "${HOME}"/.mix/rebar3 "${HOME}"/bin/rebar3
mix archive.install --force hex phx_new ${PHOENIX_VERSION}
# INSTALL NODEJS
printf "\nNODEJS VERSION: ${NODEJS_VERSION}\n"
curl -sL https://deb.nodesource.com/setup_"${NODEJS_VERSION}".x | sh -
apt install -y -q --no-install-recommends nodejs
}
Main ${@}
Удалите Erlang, Elixir и Phoenix из вашей системы.
Установите стек Elixir Phoenix с помощью bash install-stack.sh <erlang-version> <elixir-version> <phoenix-version> <nodejs-version>
:
bash install-stack.sh 22.3.3 1.10.3 1.5.1 10
Теперь проверьте, что он работает:
mix phx.new hello --no-ecto && cd hello && mix test
Вывод:
...
Finished in 0.03 seconds
3 tests, 0 failures
...
sc ript был протестирован внутри контейнера docker с:
docker run --rm -it -v $PWD/install-stack.sh:/install-stack.sh ubuntu:18.04 bash