分类: LINUX
2009-03-12 14:21:22
Version 1.0
Author: Falko Timme
Last edited 11/13/2007
For some reason there are no Courier packages (courier-imap, courier-authlib, maildrop) available on RedHat-based distributions (RedHat, Fedora, CentOS), and the only third-party repository that had such packages seems to have closed (enlartenment.com). Therefore this tutorial explains how you can create and install your own Courier rpm packages from the sources, and I provide download links for my Courier rpm packages that I compiled on Fedora 8 (i386) so that you can save some time.
I do not issue any guarantee that this will work for you!
I have tried this on a Fedora 8 (i386) system; it should work for RedHat and CentOS as well. If you are on an x86_64 system, replace all references to i386 in this tutorial with x86_64.
Before we can compile the Courier packages, we need some prerequisites such as compilers, development libraries, etc. which we can install like this:
yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel
RPM packages should not be built as root; courier-imap will even refuse to compile if it detects that the compilation is run as the root user. Therefore we create a normal user account now (falko in this example) and give him a password:
useradd -m -s /bin/bash falko
passwd falko
We will need the sudo command later on so that the user falko can compile and install the rpm packages. But first, we must allow falko to run all commands using sudo:
Run
visudo
In the file that opens there's a line root ALL=(ALL) ALL. Add a similar line for falko just below that line:
[...] |
Now we are ready to build our rpm package. First become the user falko:
su falko
Next we create our build environment:
mkdir $HOME/rpm
mkdir $HOME/rpm/SOURCES
mkdir $HOME/rpm/SPECS
mkdir $HOME/rpm/BUILD
mkdir $HOME/rpm/SRPMS
mkdir $HOME/rpm/RPMS
mkdir $HOME/rpm/RPMS/i386
echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
Now we create a downloads directory and download the source files from :
mkdir $HOME/downloads
cd $HOME/downloads
wget
wget
wget
Now (still in $HOME/downloads) we can build courier-authlib:
sudo rpmbuild -ta courier-authlib-0.60.2.tar.bz2
After the build process, the rpm packages can be found in $HOME/rpm/RPMS/i386 ($HOME/rpm/RPMS/x86_64 if you are on an x86_64 system):
cd $HOME/rpm/RPMS/i386
The command
ls -l
shows you the available rpm packages:
[falko@server1 i386]$ ls -l
total 600
-rw-r--r-- 1 root root 137335 2007-11-13 18:02 courier-authlib-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 323827 2007-11-13 18:02 courier-authlib-debuginfo-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 34201 2007-11-13 18:02 courier-authlib-devel-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 18039 2007-11-13 18:02 courier-authlib-ldap-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 14258 2007-11-13 18:02 courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 13602 2007-11-13 18:02 courier-authlib-pgsql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 8336 2007-11-13 18:02 courier-authlib-pipe-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 36859 2007-11-13 18:02 courier-authlib-userdb-0.60.2-1.fc8.i386.rpm
[falko@server1 i386]$
Select the ones you want to install, and install them like this:
sudo rpm -ivh courier-authlib-0.60.2-1.fc8.i386.rpm
sudo rpm -ivh courier-authlib-devel-0.60.2-1.fc8.i386.rpm
sudo rpm -ivh courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
Now we go back to our downloads directory:
cd $HOME/downloads
and run rpmbuild again, this time without sudo, otherwise the compilation will fail because it was run as root:
rpmbuild -ta courier-imap-4.2.1.tar.bz2
After the build process, the rpm packages can be found in $HOME/rpm/RPMS/i386 ($HOME/rpm/RPMS/x86_64 if you are on an x86_64 system):
cd $HOME/rpm/RPMS/i386
The command
ls -l
shows you the available rpm packages:
[falko@server1 i386]$ ls -l
total 1284
-rw-r--r-- 1 root root 137335 2007-11-13 18:02 courier-authlib-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 323827 2007-11-13 18:02 courier-authlib-debuginfo-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 34201 2007-11-13 18:02 courier-authlib-devel-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 18039 2007-11-13 18:02 courier-authlib-ldap-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 14258 2007-11-13 18:02 courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 13602 2007-11-13 18:02 courier-authlib-pgsql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 8336 2007-11-13 18:02 courier-authlib-pipe-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 36859 2007-11-13 18:02 courier-authlib-userdb-0.60.2-1.fc8.i386.rpm
-rw-rw-r-- 1 falko falko 383455 2007-11-13 18:21 courier-imap-4.2.1-1.8.i386.rpm
-rw-rw-r-- 1 falko falko 917771 2007-11-13 18:21 courier-imap-debuginfo-4.2.1-1.8.i386.rpm
[falko@server1 i386]$
You can install courier-imap like this:
sudo rpm -ivh courier-imap-4.2.1-1.8.i386.rpm
Now we go back to our downloads directory:
cd $HOME/downloads
and run rpmbuild again:
sudo rpmbuild -ta maildrop-2.0.4.tar.bz2
After the build process, the rpm packages can be found in $HOME/rpm/RPMS/i386 ($HOME/rpm/RPMS/x86_64 if you are on an x86_64 system):
cd $HOME/rpm/RPMS/i386
The command
ls -l
shows you the available rpm packages:
[falko@server1 i386]$ ls -l
total 3128
-rw-r--r-- 1 root root 137343 2007-11-13 18:02 courier-authlib-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 324618 2007-11-13 18:02 courier-authlib-debuginfo-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 34208 2007-11-13 18:02 courier-authlib-devel-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 18042 2007-11-13 18:02 courier-authlib-ldap-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 14254 2007-11-13 18:02 courier-authlib-mysql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 13599 2007-11-13 18:02 courier-authlib-pgsql-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 8339 2007-11-13 18:02 courier-authlib-pipe-0.60.2-1.fc8.i386.rpm
-rw-r--r-- 1 root root 36855 2007-11-13 18:02 courier-authlib-userdb-0.60.2-1.fc8.i386.rpm
-rw-rw-r-- 1 falko falko 383455 2007-11-13 18:21 courier-imap-4.2.1-1.8.i386.rpm
-rw-rw-r-- 1 falko falko 917771 2007-11-13 18:21 courier-imap-debuginfo-4.2.1-1.8.i386.rpm
-rw-r--r-- 1 root root 299030 2007-11-13 18:35 maildrop-2.0.4-1.8.i386.rpm
-rw-r--r-- 1 root root 752872 2007-11-13 18:35 maildrop-debuginfo-2.0.4-1.8.i386.rpm
-rw-r--r-- 1 root root 136235 2007-11-13 18:35 maildrop-devel-2.0.4-1.8.i386.rpm
-rw-r--r-- 1 root root 58439 2007-11-13 18:35 maildrop-man-2.0.4-1.8.i386.rpm
[falko@server1 i386]$
You can now install maildrop like this:
sudo rpm -ivh maildrop-2.0.4-1.8.i386.rpm
After you have compiled and installed all needed packages, you can become root again by typing
exit
Here are the links to my Fedora 8 (i386) packages: