Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1734035
  • 博文数量: 234
  • 博客积分: 4966
  • 博客等级: 上校
  • 技术积分: 3322
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-13 01:03
文章分类

全部博文(234)

文章存档

2017年(2)

2016年(1)

2015年(8)

2014年(11)

2013年(44)

2012年(27)

2011年(22)

2010年(30)

2009年(37)

2008年(6)

2007年(45)

2006年(1)

分类: LINUX

2009-03-12 14:48:33

系统环境:CentOS 5.2

本文详细讲述了如何在fedora 、redhat linux 和centos系统上编译安装 courier, courier-imap, courier-authlib,courier-analog And maildrop
Version 1.0
Author: Falko Timme
译:laokan 转载请注明出处
要编译Courier包之前,我们需要一些必须的条件例如编译器,开发库等,我们可以通过下面的命令来安装:
代码: 
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 ghostscript openssl-perl mgetty-sendfax netpbm netpbm-progs urw-fonts ghostscript-fonts



3 创建一个没有权限的用户
RPM包必须不能用root编译;courier,courier-imap甚至拒绝编译如果他检测到编译是以root用户进行的;因此我
代码: 
useradd redhat
passwd redhat


我们以后将需要用到sudo命令。因此用户redhat可以编译和安装rpm包。但是首先,我没必须允许redhat运行所有的命令通过sudo:

运行
代码: 
visudo

在打开的文件中有一行root ALL=(ALL) ALL。为用户laokan添加类似的一行
代码: 
[...]
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
redhat   ALL=(ALL)       ALL
[...]



4 编译courier,courier-authlib、courier-imap,courier-analog和maildrop

现在我们准备好了编译我们的rpm包。首先切换到老看用户:
代码: 
su redhat

下面我们创建我们的编译环境:
代码: 
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


然后我们创建一个downloads目录兵器下载源码文件 :

代码: 
mkdir $HOME/downloads
cd $HOME/downloads

wget
wget
wget courier-analog-0.15.tar.bz2
wget courier-imap-4.4.1.tar.bz2
wget maildrop-2.0.4.tar.bz2
4.1 courier-authlib,courier-analog,maildrop

现在我们可以编译courier-authlib(仍停留在 $HOME/downloads目录中):

代码:
sudo rpmbuild -ta courier-authlib-0.60.2.tar.bz2
sudo rpmbuild -ta maildrop-2.0.4.tar.bz2
sudo rpmbuild -ta courier-analog-0.15.tar.bz2


完成编译进程,我们可以在 $HOME/rpm/RPMS/i386 目录发现 编译好的rpm包
(如果是64位系统则在目录$HOME/rpm/RPMS/x86_64下):

代码: 
cd $HOME/rpm/RPMS/i386
选择你要安装的用下面的命令来安装:
代码: 
sudo rpm -ivh courier-authlib*.rpm

另:courier-analog的RPM文件在noarch目录下
代码: 
cd $HOME/rpm/RPMS/noarch
选择你要安装的用下面的命令来安装:
代码: 
sudo rpm -ivh courier-analog*.rpm



4.2 courier,courier-imap

下面我们回到donwloads目录:

代码: 
cd $HOME/downloads


并且再次运行rpmbuild , 这次我们没有sudo,否者编译讲失败了因为运行在了root用户下:
代码:
rpmbuild -ta courier-0.61.2.tar.bz2
rpmbuild -ta courier-imap-4.4.1.tar.bz2

编译完成后,编译好的rpm包可以在$HOME/rpm/RPMS/i386 目录找到(如果是64位系统则在$HOME/rpm/RPMS/x86_64 目录:

代码: 
cd $HOME/rpm/RPMS/i386
运行
你可以用下面的命令安装courier,courier-imap:
代码: 
sudo rpm -ivh courier*.rpm

如有疑问请考以下
原文地址:

关于rpmbuild的介绍
阅读(3036) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~