Hello I am new to that forum.
I just had the same problem and it cost me about half an hour to solve it.
Maybe after setup up the esl-erlang repository i found a packet in synaptic package manager called erlang-wx. This installed the correct library but not in
/usr/local/lib/erlang/lib/wx-1.8.1/priv as requested by iex error message.
Therefore I created a softlink in that directory to point to the installed lib
from erlang-ex at /usr/lib/erlang/lib/wx-1.8.4/priv// and now observer is working.
Thank you for posting the question.
Hey! Just a heads up for everybody. On ubuntu 16.04 upgrade to esl-erlang 21.1.3 broke observer. You have to downgrade to 21.1 to fix it
True, thanks @khaskelberg et al
On ubuntu,
After esl-erlang removal go for
apt-get install esl-erlang=1:21.1
The issue was fixed. Latest esl-erlang update (1:21.1.3-2) contains fixes.
This helped me to fix my docker stack, and I use your solution in my Dockerfile with this script:
#!/bin/bash
set -eu
################################################################################
# VARS
################################################################################
erlang_lib_dir=/usr/local/lib/erlang/lib
erlang_wx=$( find ${erlang_lib_dir} -name 'wx-*' )
erlang_wx_version=${erlang_wx##*/}
erlang_wx_dir=/usr/lib/erlang/lib/"${erlang_wx_version}"
################################################################################
# EXECUTION
################################################################################
printf "\n\nERLANG WX VERSION: $erlang_wx_version\n"
if [ -d "${erlang_wx_dir}" ]; then
# https://elixirforum.com/t/observer-start-is-not-working-on-ubuntu/6018/21?u=exadra37
rm -rvf "${erlang_lib_dir}/${erlang_wx_version}"
ln -s "${erlang_wx_dir}" "${erlang_lib_dir}"
fi
Thanks
Did anyone faced this issue on CentOS 7.3? Installing wxWidgets didnāt help.
Still working fine here on redhat (7?) with wxWidgets 2.9 installed.
In Debian and Alpine I noticed that when you install the wxWidgets with the operating system tooling you get it installed in a different path and missing the folder priv
if I am not in mistake, thus you may have the same issue in Centos.
You need to compare the folder where wx-version
is installed, between a working Centos version and the Cewntos 7.3
, and if you find any of the issues I mentioned you will need to find a way of fixing them.
My solution in the end was to compile Erlang from the git repo, and have all the necessary dependencies already installed.
I have wrote a bash script to compile Erlang from a git branchā¦ its still a work in progress, thus it will be only merged when I have finished my Elixir Docker Stack, but you can see it at this commit or just here:
#!/bin/bash
set -eu
Main()
{
##############################################################################
# INPUT
##############################################################################
local git_branch="${1? Missing git branch or tag from where we want to install Erlang !!!}"
##############################################################################
# VARS
##############################################################################
local branch="${git_branch#OTP-*}"
local first_character="${git_branch:0:1}"
printf "\nGIT BRANCH FIRST CHARACTER: ${first_character}\n"
case ${first_character} in
[0-9] )
local git_branch="OTP-${git_branch}"
;;
esac
##############################################################################
# CONSTANTS
##############################################################################
# TODO:
# * some of the dependencies are in the build-essential package, thus we
# need to check the ones that already exist, so that we will only remove
# the ones we installed.
# $ apt install build-essential
# Reading package lists... Done
# Building dependency tree
# Reading state information... Done
# The following additional packages will be installed:
# binutils cpp cpp-6 dpkg-dev fakeroot g++ g++-6 gcc gcc-6 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan3
# libatomic1 libcc1-0 libcilkrts5 libdpkg-perl libfakeroot libfile-fcntllock-perl libgcc-6-dev libgomp1 libisl15 libitm1
# liblocale-gettext-perl liblsan0 libmpc3 libmpfr4 libmpx2 libquadmath0 libstdc++-6-dev libtsan0 libubsan0 make
# Suggested packages:
# binutils-doc cpp-doc gcc-6-locales debian-keyring g++-multilib g++-6-multilib gcc-6-doc libstdc++6-6-dbg gcc-multilib manpages-dev
# autoconf automake libtool flex bison gdb gcc-doc gcc-6-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan3-dbg
# liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg libstdc++-6-doc make-doc
# The following NEW packages will be installed:
# binutils build-essential cpp cpp-6 dpkg-dev fakeroot g++ g++-6 gcc gcc-6 libalgorithm-diff-perl libalgorithm-diff-xs-perl
# libalgorithm-merge-perl libasan3 libatomic1 libcc1-0 libcilkrts5 libdpkg-perl libfakeroot libfile-fcntllock-perl libgcc-6-dev libgomp1
# libisl15 libitm1 liblocale-gettext-perl liblsan0 libmpc3 libmpfr4 libmpx2 libquadmath0 libstdc++-6-dev libtsan0 libubsan0 make
# 0 upgraded, 34 newly installed, 0 to remove and 0 not upgraded.
# Need to get 33.8 MB of archives.
# After this operation, 139 MB of additional disk space will be used.
local INSTALL_BUILD_DEPENDENCIES="
autoconf
dpkg-dev
gcc
g++
make
libncurses5-dev
unixodbc-dev
libssl-dev
libsctp-dev
libwxgtk3.0-dev
default-jdk
fop
libxml2-utils
xsltproc
"
local REMOVE_BUILD_DEPENDENCIES="
autoconf
libncurses5-dev
unixodbc-dev
libssl-dev
libsctp-dev
libwxgtk3.0-dev
default-jdk
fop
libxml2-utils
xsltproc
"
local RUNTIME_DEPENDENCIES="
libcanberra-gtk-module
procps
libncurses5
libwxbase3.0-0v5
libwxgtk3.0-0v5
libodbc1
libssl1.1
libsctp1
man
"
##############################################################################
# EXECUTION
##############################################################################
printf "\nGIT BRANCH: ${git_branch}\n"
# INSTALL DEPENDENCIES
apt update
apt -y -q install --no-install-recommends ${INSTALL_BUILD_DEPENDENCIES} ${RUNTIME_DEPENDENCIES}
# DOWNLOAD ERLANG FROM A GITHUB BRANCH OR TAG
git clone --depth 1 --branch "${git_branch}" https://github.com/erlang/otp.git OTP
# INSTALL ERLANG
cd OTP
export ERL_TOP="${PWD}"
./otp_build autoconf
gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"
./configure --build="$gnuArch"
make -j$(nproc)
make install
cd -
rm -rf OTP
# SYSTEM CLEANUP
# we don't need them examples and doc folders, and to see docs just use like:
# $ erl -man ets
find /usr/local -name examples | xargs rm -rf
find /usr/local -name doc | xargs rm -rf
apt -y auto-remove ${REMOVE_BUILD_DEPENDENCIES}
# SMOKE TEST
erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell
erl -eval 'io:fwrite("~1p~n", [lists:sort(erlang:loaded())]), halt().' -noshell
# To list all erlang modules installed:
# erl> rp(lists:sort(erlang:loaded())).
}
Main "${@}"
Just sharing what worked for me in case someone else is facing the same issue in the same setup:
- OS: Ubuntu 20.04 LTS
- Elixir: 1.12.0
- Erlang/OTP 24 [erts-12.0.2]
Solution:
sudo apt install libwxgtk-webview3.0-gtk3-0v5