Linux, Elixir and :observer.start()
In the Erlang VM, there is an awesome resource called “observer”. However, if
you installed Elixir in Linux using the default approach, as I did, you probably
got the erlang-nox
package installed as a dependency. The “nox” version is the
“headless version”. This lacks the wxWidgets libraries needed for creating the GUI.
When attempting to start the observer this error results.
iex(1)> :observer.start()
07:10:30.568 [error] ERROR: Could not find 'wxe_driver.so' in: /usr/lib/erlang/lib/wx-1.5/priv
Installing the full Erlang package, replaces the “nox” version. Running Arch Linux, the following brings in all the dependencies needed to fix it.
$ pacman -S erlang
resolving dependencies...
looking for conflicting packages...
:: erlang and erlang-nox are in conflict. Remove erlang-nox? [y/N] y
Packages (2) erlang-nox-18.1-1 [removal] erlang-18.1-1
Total Download Size: 39.00 MiB
Total Installed Size: 107.48 MiB
Net Upgrade Size: 2.15 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages ...
erlang-18.1-1-x86_64 39.0 MiB 10.1M/s 00:04 [######################] 100%
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
(2/2) checking available disk space [######################] 100%
(1/1) removing erlang-nox [######################] 100%
(1/1) installing erlang [######################] 100%
Optional dependencies for erlang
erlang-unixodbc: database support
java-environment: for Java support
lksctp-tools: for SCTP support
Once the full and proper Erlang is installed, the observer works!
$ iex -S mix
Erlang/OTP 18 [erts-7.1] [source] [64-bit] [smp:3:3] [async-threads:10] [hipe] [kernel-poll:false]
Interactive Elixir (1.1.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :observer.start()