12

I had the inspiration to start messing around with Erlang and I am having problems installing it... I am using Linux Mint 16 (petra). I installed the dependencies, and then downloaded otp_src_17.1.tar.gz and ran 'tar -zxf otp_src_17.1.tar.gz' I then ran ./configure which gave me some errors that made it impossible to run make.

These are the errors I'm getting (actually what I did was I did ./configure > configure.txt to get all the lines it prints as it configures, and it conveniently still printed to the console everything that has errors - neat)

configure: WARNING: No odbc library found skipping odbc
configure: WARNING: "ODBC library - header check failed"
configure: WARNING: "ODBC library - link check failed"
rm: remove write-protected regular file './CONF_INFO'? 
configure: WARNING: No GLU headers found, wx will NOT be usable
/home/core/Desktop/otp_src_17.1/lib/wx/./configure: line 5195: wx-config: command not found
/home/core/Desktop/otp_src_17.1/lib/wx/./configure: line 5893: ./CONF_INFO: Permission denied
configure: WARNING:
                wxWidgets must be installed on your system.

        Please check that wx-config is in path, the directory
        where wxWidgets libraries are installed (returned by
        'wx-config --libs' or 'wx-config --static --libs' command)
        is in LD_LIBRARY_PATH or equivalent variable and
        wxWidgets version is 2.8.4 or above.
rm: remove write-protected regular file 'doc/CONF_INFO'? 
/home/core/Desktop/otp_src_17.1/erts/configure: line 6466: doc/CONF_INFO: Permission denied
configure: WARNING: No 'xsltproc' command found: the documentation cannot be built
/home/core/Desktop/otp_src_17.1/erts/configure: line 6513: doc/CONF_INFO: Permission denied
configure: WARNING: No 'fop' command found: going to generate placeholder PDF files

configure: error: No curses library functions found
configure: error: /bin/bash '/home/core/Desktop/otp_src_17.1/erts/configure' failed for erts

The thing is - I know that I have the ncurses library, as evidenced by the fact that when I do "sudo apt-get install ncurses-base ncurses-bin" it says:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
ncurses-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

When I run "locate ncurses" it gives me the following:

/lib/i386-linux-gnu/libncurses.so.5
/lib/i386-linux-gnu/libncurses.so.5.9
/lib/x86_64-linux-gnu/libncurses.so.5
/lib/x86_64-linux-gnu/libncurses.so.5.9
/lib/x86_64-linux-gnu/libncursesw.so.5
/lib/x86_64-linux-gnu/libncursesw.so.5.9
/usr/bin/ncurses5-config
/usr/bin/ncursesw5-config
/usr/lib/vlc/plugins/gui/libncurses_plugin.so
/usr/share/doc/libncurses5
/usr/share/doc/libncursesw5
/usr/share/doc/ncurses-base
/usr/share/doc/ncurses-bin
/usr/share/doc/ncurses-base/changelog.Debian.gz
/usr/share/doc/ncurses-base/copyright
/usr/share/doc/ncurses-bin/FAQ
/usr/share/doc/ncurses-bin/changelog.Debian.gz
/usr/share/doc/ncurses-bin/copyright
/usr/share/lintian/overrides/ncurses-base
/usr/share/man/man1/ncurses5-config.1.gz
/usr/share/man/man1/ncursesw5-config.1.gz
/var/cache/apt/archives/libncurses5_5.9+20130608-1ubuntu1_i386.deb
/var/lib/dpkg/info/libncurses5:amd64.list
/var/lib/dpkg/info/libncurses5:amd64.md5sums
/var/lib/dpkg/info/libncurses5:amd64.postinst
/var/lib/dpkg/info/libncurses5:amd64.postrm
/var/lib/dpkg/info/libncurses5:amd64.shlibs
/var/lib/dpkg/info/libncurses5:amd64.symbols
/var/lib/dpkg/info/libncurses5:i386.list
/var/lib/dpkg/info/libncurses5:i386.md5sums
/var/lib/dpkg/info/libncurses5:i386.postinst
/var/lib/dpkg/info/libncurses5:i386.postrm
/var/lib/dpkg/info/libncurses5:i386.shlibs
/var/lib/dpkg/info/libncurses5:i386.symbols
/var/lib/dpkg/info/libncursesw5:amd64.list
/var/lib/dpkg/info/libncursesw5:amd64.md5sums
/var/lib/dpkg/info/libncursesw5:amd64.postinst
/var/lib/dpkg/info/libncursesw5:amd64.postrm
/var/lib/dpkg/info/libncursesw5:amd64.shlibs
/var/lib/dpkg/info/libncursesw5:amd64.symbols
/var/lib/dpkg/info/ncurses-base.conffiles
/var/lib/dpkg/info/ncurses-base.list
/var/lib/dpkg/info/ncurses-base.md5sums
/var/lib/dpkg/info/ncurses-bin.list
/var/lib/dpkg/info/ncurses-bin.md5sums

I am at a loss as to where to proceed. Thanks for any help

Arthur Collé
  • 2,541
  • 5
  • 27
  • 39

3 Answers3

9

I believe you need to install ncurses-dev

Odobenus Rosmarus
  • 5,870
  • 2
  • 18
  • 21
  • sudocore@core ~ $ sudo apt-get install ncurses-dev [sudo] password for core: Reading package lists... Done Building dependency tree Reading state information... Done Package ncurses-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'ncurses-dev' has no installation candidate – Arthur Collé Jun 29 '14 at 07:12
  • well.. it depends on what linux do you use.. THe point is: in linux runtime package for any library (that is required for executing application) and developer package (that is required for building application) usually separated.. and developer part (you need exactly this part), has a suffix, -dev for debian based linux (ubuntu, netrunner, mint etc etc) or -devel for redhat based linuxes.. I dont know which linux you use, so try to find dev part of ncurses lib in your distributive. it can be ncurses-devel, ncurses-dev, libncurses-dev, libncurses5-dev or -devel etc etc. – Odobenus Rosmarus Jun 29 '14 at 08:08
  • I use linux mint 16 petra. Lets say I know where the ncurses library is on my machine. How do I specify that during installation? – Arthur Collé Jun 30 '14 at 13:37
  • 1
    Maybe this one? sudo apt-get install libncurses5-dev – Igor Masternoy Jan 22 '15 at 20:50
  • Installing it to Windows/Mac is so much easier, I stopped developing erlang on linux, no worries – Arthur Collé Apr 25 '15 at 13:38
7

'sudo yum install ncurses-devel.x86_64' prior to running ./configure worked just fine for me. Fedora 21 x64, btw.

After I extracted the tar, the documentation was in '/opt_src_{version}/HOWTO/INSTALL.md. The contents of which states:

Required Utilities

These are the tools you need in order to unpack and build Erlang/OTP.

WARNING: Please have a look at the [Known platform issues][] chapter before you start.

Unpacking

  • GNU unzip, or a modern uncompress.
  • A TAR program that understands the GNU TAR format for long filenames.

Building

  • GNU make
  • Compiler -- GNU C Compiler, gcc or the C compiler frontend for LLVM, clang.
  • Perl 5
  • GNU m4 -- If HiPE (native code) support is enabled. HiPE can be disabled using --disable-hipe
  • ncurses, termcap, or termlib -- The development headers and libraries are needed, often known as ncurses-devel. Use --without-termcap to build without any of these libraries. Note that in this case only the old shell (without any line editing) can be used.
  • sed -- Stream Editor for basic text transformation.

ncurses just happened to be the only required package I didn't have installed on this development VM. So your mileage may vary.

This was the output of 'locate ncurses' after I installed the ncurses lib:

/usr/lib64/libncurses++.so.5
/usr/lib64/libncurses++.so.5.9
/usr/lib64/libncurses++w.so.5
/usr/lib64/libncurses++w.so.5.9
/usr/lib64/libncurses.so.5
/usr/lib64/libncurses.so.5.9
/usr/lib64/libncursesw.so.5
/usr/lib64/libncursesw.so.5.9
/usr/share/doc/ncurses
/usr/share/doc/ncurses-base
/usr/share/doc/ncurses/ANNOUNCE
/usr/share/doc/ncurses/AUTHORS
/usr/share/doc/ncurses/NEWS.bz2
/usr/share/doc/ncurses/README
/usr/share/doc/ncurses/TO-DO
/usr/share/doc/ncurses-base/README
/usr/share/licenses/ncurses-base
/usr/share/licenses/ncurses-base/COPYING

So I'd say the OP had a corrupt / bad ncurses install. I'm just posting this here because this was the #1 Google result I got when I was too lazy to RTFD.

BeeTee2
  • 777
  • 4
  • 13
1

One alternative is using the option "--without-termcap"

otp_src_18.0/configure file says:

--without-termcap        do not use any termcap libraries
                                     (ncurses,curses,termcap,termlib)

./configure --prefix=/home/username/erlang/18.0 --without-termcap

Set your PATH variable as shown below.

export PATH=$PATH=/home/username/erlang/18.0/bin

Not sure about implications though. :) Hope this helps someone.

SteveFerg
  • 3,466
  • 7
  • 19
  • 31
Rajasingh
  • 11
  • 2