Installing Elm on Ubuntu 14.04
Elm is a functional programming language for the web.
Elm lets you write programs in a simple functional language and it compiles to
CSS. This sounded like a cool way to learn about FRP (Functional Reactive Programming), so I decided to give it a try.
Because it’s a young language (the thesis which gave it birth was in 2012) it’s evolving fast, so dependencies and syntax are still changing.
We want to install the Elm-Platform which comes with all the tools to get started:
- elm-compiler: emm…. The compiler.
elm-make: Command line tool to turn your
- elm-reactor: This loads an interactive editor on the browser to evaluate and hot-swap code.
- elm-repl: a Read Eval Print Loop to play around with the language and explore libraries.
- elm-package: the package manager, to install/uninstall community packages.
Starting with the right version #
Elm 0.15.1 you will need Haskell and Cabal (the Haskell package manager). Currently you need
GHC 7.10 and at least
However installing them with
apt-get on Ubuntu will install an older version which won’t work (
cabal 22.214.171.124 and
So the first thing is to get a more recent version of Cabal and ghc
sudo add-apt-repository ppa:hvr/ghc sudo apt-get update
The packages install into
/opt/ghc/$VER/so in order to use them, the easiest way is to bring a particular GHC version into scope by placing the respective
/opt/ghc/$VER/binfolder early into the
PATHenvironment variable. See also https://github.com/hvr/multi-ghc-travis for more information
sudo apt-get install ghc-7.10.1 sudo apt-get install cabal-install-1.22
and add it to your
PATH variable (or add it to your .bashrc):
# Haskell & cabal Path export PATH=/opt/ghc/7.10.1/bin:$PATH export PATH=/opt/cabal/1.22/bin:$PATH
You should now see:
cabal --version cabal-install version 126.96.36.199 using version 188.8.131.52 of the Cabal library
which cabal /opt/cabal/1.22/bin/cabal
The Elm Platform #
- chose a directory to save all the files for your installation (but don’t create a directory). Let’s assume we want it to live at
~/Documents/code/(You should not move this directory after it is created, so choose carefully before progressing)
- add the absolute path
PATH. For our example above, this would be:
$ export PATH=/home/user/Documents/code/Elm-Platform/0.15.1/.cabal-sandbox/bin:$PATH
or you can add it to .bashrc or .bash_profile as described here.
- Let’s go to the directory we selected (in our example
$ cd ~/Documents/code), and run the haskell installation file:
# if you are on windows, or some other place without curl, just download this file manually curl https://raw.githubusercontent.com/elm-lang/elm-platform/master/installers/BuildFromSource.hs > BuildFromSource.hs runhaskell BuildFromSource.hs 0.15.1
You can test if your installed version is right with:
$ elm-make --help elm-make 0.2 (Elm Platform 0.15.1)
$ which elm-make /home/user/Documentos/code/Elm-Platform/0.15.1/.cabal-sandbox/bin/elm-make
Let’s try it out: #
let’s create a new directory,
mkdir helloworld && cd helloworld and create a
-- helloworld.elm import Html exposing (text) main = text "Hello, World!"
you can compile it with
elm-make which should create 3 files:
and check out the result in the browser with:
elm-reactor Elm Reactor 0.3.2 (Elm Platform 0.15.1) Listening on http://0.0.0.0:8000/