Macports, and Erlang: Setting up Emacs and your $MANPATH

This entry was posted by tbielawa on Wednesday, 2 December, 2009 at

You may find this helpful if you should find yourself using Erlang on OS X and you’ve installed it using Macports. After a default installation you’ll need to manually configure your .emacs file for erlang-mode and set your $MANPATH variable correctly, here’s how.

If you’ve installed Erlang with Macports then you may have noticed that when you edit .erl files you’re not entering into erlang-mode, nor is it available to enter into. Here’s how I got erlang-mode working on my system.

Macports will install Erlang into /opt/local/lib/erlang by default. The paths to put in your .emacs file provided in the erlang-mode documentation only need to be tweaked a slight bit to function properly. Here’s what I put in mine:

(setq load-path (cons  "/opt/local/lib/erlang/lib/tools-2.6.4/emacs/" load-path))
(setq erlang-root-dir "/opt/local/lib/erlang")
(setq exec-path (cons "/opt/local/bin" exec-path))
(require 'erlang-start)

Note that you may require setting “tools-2.6.4″ to something else if Macports has upgraded it’s distribution of Erlang.

Setting up your $MANPATH variable is fairly simple as well. Just put the string “/opt/local/lib/erlang/man” in a file called ‘erlang’ in /etc/manpaths.d/ and make sure it ends with an empty line. Test this by opening a new terminal and running: echo $MANPATH | grep erlang. If it doesn’t come back empty then you’ve done it right.

4 Responses to “Macports, and Erlang: Setting up Emacs and your $MANPATH”

  1. Bill Robertson

    Having trouble with the man path. I think I did what you said.

    created the file, here it is…
    bills-macbook-pro:manpaths.d bill$ cd /etc/manpaths.d
    bills-macbook-pro:manpaths.d bill$ ls -al
    total 8
    drwxr-xr-x 4 root wheel 136 Dec 3 23:29 .
    drwxr-xr-x 94 root wheel 3196 Dec 3 20:56 ..
    -rw-r–r– 1 root wheel 19 Jul 11 02:29 X11
    -rw-r–r– 1 root wheel 26 Dec 3 23:27 erlang

    It contains the right value, and erlang’s man files are there…
    bills-macbook-pro:manpaths.d bill$ cat erlang
    /opt/local/lib/erlang/man
    bills-macbook-pro:manpaths.d bill$ ls /opt/local/lib/erlang/man/
    man1 man3 man4 man6

    The file ends with a blank line…
    bills-macbook-pro:manpaths.d bill$ od -c erlang
    0000000 / o p t / l o c a l / l i b / e
    0000020 r l a n g / m a n \n
    0000032

    No joy…
    bills-macbook-pro:manpaths.d bill$ echo $MANPATH
    /opt/local/share/man:

    Restarted terminal program, logged out, and just for kicks I rebooted the machine. No difference.

    Any suggestions?

  2. Bill,

    In /etc/ there’s another file, “profile”, which is executed each time a new shell is launched much like your ~/.bashrc files. Inside of /etc/profile you can see the application that runs which compiles the $*PATH variables from the /etc/*paths.d folders.

    /usr/libexec/path_helper

    Check out the man page for path_helper. It looks like it will only update $MANPATH with items from the manpaths.d folder if you are already updating it yourself!?

    From the man page: “The MANPATH environment variable will not be modified unless it is already set in the environment.”

    Here’s my setup:

    $ grep MANPATH .bash_profile
    MANPATH=$MANPATH:~/share/doc/man
    export MANPATH
    @(expressomaker)[~] 04:17:19
    $ echo $MANPATH
    /usr/share/man:/usr/local/share/man:/opt/local/lib/erlang/man:/usr/local/git/share/man:/usr/X11/share/man:/Users/tbielawa/share/doc/man

  3. Bill Robertson

    Very interesting. I’ll take a look at that. Thanks!

Trackbacks/Pingbacks

  1. Macports updates their Erlang version @ Technitribe

Leave a Reply