Eu tentei instalar a erlang 21.3
partir da fonte. Não houve erros aparentes/óbvios, mas ainda vejo a versão 20.
A fonte foi baixada e instalada:
wget -O - "https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey" | sudo apt-key add -
wget http://erlang.org/download/otp_src_21.3.tar.gz
cd otp_src_21.3
sudo ./configure
sudo make
sudo make install
Da instalação existem centenas de linhas como as seguintes
/otp_src_21.3/lib/ftp'
test -d "/usr/local/lib/erlang/releases/21" || mkdir -p "/usr/local/lib/erlang/releases/21" ; \
if test ! -f "/usr/local/lib/erlang/releases/21/installed_application_versions" ; then \
echo "ftp-1.0.2" > "/usr/local/lib/erlang/releases/21/installed_application_versions" || exit 1; \
else \
if test x = x`grep ftp-1.0.2 "/usr/local/lib/erlang/releases/21/installed_application_versions"` ; then \
echo ftp-1.0.2 >> "/usr/local/lib/erlang/releases/21/installed_application_versions" || exit 1; \
fi ; \
fi
make[3]: Leaving directory '/shared/otp_src_21.3/lib/ftp'
=== Leaving application ftp
make[2]: Leaving directory '/shared/otp_src_21.3/lib/ftp'
make[2]: Entering directory '/shared/otp_src_21.3/lib/tftp'
=== Entering application tftp
make[3]: Entering directory '/shared/otp_src_21.3/lib/tftp/src'
make -w RELEASE_PATH="/usr/local/lib/erlang" release_spec
make[4]: Entering directory '/shared/otp_src_21.3/lib/tftp/src'
/usr/bin/install -c -d "/usr/local/lib/erlang/lib/tftp-1.0.1/src"
/usr/bin/install -c -m 644 tftp.erl tftp_app.erl tftp_binary.erl tftp_engine.erl tftp_file.erl tftp_lib.erl tftp_logger.erl tftp_sup.erl tftp.hrl "/usr/local/lib/erlang/lib/tftp-1.0.1/src"
/usr/bin/install -c -d "/usr/local/lib/erlang/lib/tftp-1.0.1/ebin"
/usr/bin/install -c -m 644 ../ebin/tftp.beam ../ebin/tftp_app.beam ../ebin/tftp_binary.beam ../ebin/tftp_engine.beam ../ebin/tftp_file.beam ../ebin/tftp_lib.beam ../ebin/tftp_logger.beam ../ebin/tftp_sup.beam ../ebin/tftp.app \
../ebin/tftp.appup "/usr/local/lib/erlang/lib/tftp-1.0.1/ebin"
make[4]: Leaving directory '/shared/otp_src_21.3/lib/tftp/src'
make[3]: Leaving directory '/shared/otp_src_21.3/lib/tftp/src'
make[3]: Entering directory '/shared/otp_src_21.3/lib/tftp/doc/src'
make -w RELEASE_PATH="/usr/local/lib/erlang" release_spec
make[4]: Entering directory '/shared/otp_src_21.3/lib/tftp/doc/src'
make[4]: Nothing to be done for 'release_spec'.
make[4]: Leaving directory '/shared/otp_src_21.3/lib/tftp/doc/src'
make[3]: Leaving directory '/shared/otp_src_21.3/lib/tftp/doc/src'
make[3]: Entering directory '/shared/otp_src_21.3/lib/tftp'
test -d "/usr/local/lib/erlang/releases/21" || mkdir -p "/usr/local/lib/erlang/releases/21" ; \
if test ! -f "/usr/local/lib/erlang/releases/21/installed_application_versions" ; then \
echo "tftp-1.0.1" > "/usr/local/lib/erlang/releases/21/installed_application_versions" || exit 1; \
else \
if test x = x`grep tftp-1.0.1 "/usr/local/lib/erlang/releases/21/installed_application_versions"` ; then \
echo tftp-1.0.1 >> "/usr/local/lib/erlang/releases/21/installed_application_versions" || exit 1; \
fi ; \
fi
make[3]: Leaving directory '/shared/otp_src_21.3/lib/tftp'
=== Leaving application tftp
make[2]: Leaving directory '/shared/otp_src_21.3/lib/tftp'
make[1]: Leaving directory '/shared/otp_src_21.3/lib'
Então, no final, o seguinte:
(cd "/usr/local/lib/erlang" \
&& ./Install -minimal "/usr/local/lib/erlang")
/usr/bin/install -c -m 644 "/shared/otp_src_21.3/OTP_VERSION" "/usr/local/lib/erlang/releases/21"
cd /usr/local/bin
rm -f erl
rm -f erlc
rm -f epmd
rm -f run_erl
rm -f to_erl
rm -f dialyzer
rm -f typer
rm -f escript
rm -f ct_run
ln -s ../lib/erlang/bin/erl erl
ln -s ../lib/erlang/bin/erlc erlc
ln -s ../lib/erlang/bin/epmd epmd
ln -s ../lib/erlang/bin/run_erl run_erl
ln -s ../lib/erlang/bin/to_erl to_erl
ln -s ../lib/erlang/bin/dialyzer dialyzer
ln -s ../lib/erlang/bin/typer typer
ln -s ../lib/erlang/bin/escript escript
ln -s ../lib/erlang/bin/ct_run ct_run
Parece que foi instalado: o erlang
seguinte é exatamente a data atual:
$ ls -lrta $(which erlc)
lrwxrwxrwx 1 root root 22 Dec 27 00:49 /usr/local/bin/erlc -> ../lib/erlang/bin/erlc
Mas a versão de erlang
ainda é o padrão do sistema:
erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell
"20"
Então .. ele instalou realmente? Se não está faltando algum link? Isso está ligado ubuntu 18.0.4
.
Substituir o
erl
em outrobin
local corrigiu isso.Agora podemos ver a versão correta: