Re: [exim] Migrating Exim from Mac OS X to Linux (Ubuntu)

Top Page
Delete this message
Reply to this message
Author: Todd Lyons
Date:  
To: Chris Bunch
CC: exim-users
Subject: Re: [exim] Migrating Exim from Mac OS X to Linux (Ubuntu)
On Wed, Aug 13, 2014 at 2:13 PM, Chris Bunch <chris.bunch@???> wrote:
> If anyone has experience of compiling & installing Exim on Linux your insights would be invaluable.
>
> I have been running Exim (and other servers) on Mac OS X for many years but am now having to migrate them to a cloud system on Linode. I have always compiled from source on Mac OS X rather than using packages (there weren't any back then, and it 'just worked'). I can see that the issue on Linux is going to be where the various libraries are (or aren't), for example (from 'make'):
>
> In file included from exim.h:490:0,
>                  from exim_dbmbuild.c:31:
> dbstuff.h:371:18: fatal error: gdbm.h: No such file or directory

>
> Yes there are Exim packages available which will install in a breeze but, you know, I prefer to understand what I am installing and where. Any advice or pointers to relevant docs would be appreciated.


Others have provided Debian flavored advice, I'll also chime in with
some CentOS flavored advice (since you didn't specify what distro you
were running on Linode, we are all guessing.)

On Debian for package APPNAME, you will typically want APPNAME-dev or
libAPPNAME-dev packages which will provide the headers and create the
libAPPNAME.so symlink to the appropriate shared object file. On
CentOS for APPNAME, you will typically want APPNAME-devel packages to
provide those headers and the symlink.

Some specific commands to find the header file you were looking for above:

KVM-CentOS510[root@ivwm01 ~]# yum whatprovides */gdbm.h
Loaded plugins: allowdowngrade, fastestmirror, priorities, protectbase
Loading mirror speeds from cached hostfile
0 packages excluded due to repository protections
dag/filelists_db                                                   |
6.1 MB     00:01
dag-terabyte/filelists_db                                          |
6.1 MB     00:01
update/filelists_db                                                |
2.8 MB     00:00
gdbm-devel-1.8.0-28.el5.x86_64 : Development libraries and header
files for the gdbm
                               : library.
Repo        : base
Matched from:
Filename    : /usr/include/gdbm/gdbm.h
Filename    : /usr/include/gdbm.h
<snip>


So that means you would install the gdbm-devel package to provide the
/usr/include/gdbm.h file, which is what the exim build wants.

Repeat for any extra features you want enabled, such as ldap, mysql,
postgres, dmarc, sasl, spf, etc.

Feel free to come ask for help compiling on the #exim IRC channel on
Freenode. We won't hold your hand, but will in general try to give
you directions or places to go look where you can read, learn, and
figure it out on your own (i.e. we try to teach you to fish, instead
of catching the fish for you).

I will warn you right now though, that if you go into any
distribution's IRC channel and ask for help compiling software on that
distro, you'll get a very rude and resounding "don't do that" with the
implied "because you have to ask, you must not be skilled enough to do
it properly." It's designed to prevent people from shooting
themselves in the foot, but if you prepend it with some clarifier "I'm
doing this in a VM and can easily revert anything that I mess up" then
you might get a little more cooperation.

...Todd

--
The total budget at all receivers for solving senders' problems is $0.
If you want them to accept your mail and manage it the way you want,
send it the way the spec says to. --John Levine