源码编译方式安装Asterisk

声明:本文由本人翻译自Asterisk wiki,如有不妥欢迎指正。

原文地址:https://wiki.asterisk.org/wiki/display/AST/Installing+Asterisk+From+Source

一种流行的安装Asterisk方式是自己下载源代码并编译。这比使用包管理器或使用基于Asterisklinux发行版要复杂,它允许你自己决定如何构造Asterisk和构造哪些Asterisk模块。

在这一节中,你将学习到如何下载并编译Asterisk源代码,以及如何安装Asterisk

1. 下载

在一个典型的系统中,你将需要下载以下三个组件:

· Asterisk

· DAHDI

· libpri

libpri库允许AsteriskISDN连接交互(我们将在450.8章节“ISDN PRIBRI连接简介中介绍更多关于ISDN连接的内容)。虽然这个库并不总是必要的,但我们还是建议你安装。

DAHDI库允许Asterisk与模拟和数字电话以及电话线交互,包括公共电话交换网(Public Switched Telephone Network,简称PSTN)。即使你现在暂时不需要连接模拟或数字电话,但也应该在新的系统中安装DAHDI

DAHDI

DAHDIDigium Asterisk Hardware Device Interface简写,即Digium公司的Asterisk硬件设备接口,它集成了一些模拟和数字电话卡的驱动和应用程序,以及其他Digium公司的产品。DAHDI驱动程序独立于Asterisk,并可以被其他应用使用。DAHDI先前被叫做Zaptel,是由Zapata电话系统项目演进而来。

DAHDI源代码可以分别下载两个单独的组件(dahdi-linuxDAHDI的驱动程序,dahdi-toolsDAHDI的应用程序)。也可以下载dahdi-linux-complete完整包,它包含了linux驱动和应用程序两个部分。

贴士:为什么DAHDI要分割为两个不同的组件?

DAHDI被分割为两个组件(linux驱动和应用),是为了让第三方可以把DAHDI驱动移植到像FreeBSD这样的其他操作系统,这样我们就会有dahdi-linuxdahdi-freebsd等。

最新版本的libpriDAHDIAsterisk下载地址:

http://downloads.digium.com/pub/telephony/

2. 系统环境要求

为了顺利编译和安装Asterisk,你需要在系统中安装一个C编译器和一些系统库。

2.1 编译器

编译器是一个使源代码(Asterisk的源代码是用C语言编写的)变成可执行程序的程序。虽然任何C语言编译器都可以编译Asterisk源代码,但是我们强烈建议你使用GCC编译器。它不仅是LinuxUnix系统下最流行的免费C语言编译器,也是Asterisk开发者使用的编译器。

如果GCC编译器还没有安装到你的机器上,你只需使用相应的软件包管理系统安装即可。你还需要安装GCCC++部分,某些Asterisk模块将会用到它。

2.2 系统库

除了C语言编译器,还需要安装一些系统库。这些被Asterisk依赖的库必须在编译Asterisk之前安装好。在大多数操作系统中,你需要安装库和与之相应的开发包。

贴士:开发库

对于大多数操作系统,开发包名以-dev或者-devel结尾。例如,在Red Hat Linux系统中,你需要安装“openssl”“openssl-devel”两个包。

你需要安装的库清单:

· OpenSSL

· ncurses

· newt

· libxml2

· Kernel headers(编译DAHDI驱动用到)

我们建议你在编译和安装libpriDAHDIAsterisk之前,使用操作系统的软件包管理系统来安装这些库。

贴士:找到正确的库

如果你安装Asterisk1.6.1.0或者更新的版本,在contrib/scripts子目录下配备了一个名为install_prereq.shshell脚本。如果执行 install_prereq test,它将输入在你的操作系统上安装必须系统库所需要执行的命令,如果执行 install_prereq install,它将自动尝试下载并安装这些必须系统库。

3. 解压缩源码文件

你下载到的libpriDAHDIAsterisk源代码扩展名通常为.tar.gz.tgz。这些文件被亲切的称作tar包。这个名字来自Unix下的tartap archive磁带归档的简称)应用。Tar包是为了便于复制而将一些文件组合为一个文件,然后通常使用像GZip一样的工具进行压缩。

我们使用tar命令从tar包中提取源代码。下面假设你使用Linux系统,并已经下载了libpriDAHDIAsterisktar包存储在/usr/local/src目录下(你可能需要用root账户登陆以使这个目录可写)。版本号我们使用XYZ来替代,我们假设你会使用下载下来的tar包中的版本号。另外请注意,我们在这里展示的命令可能与您的系统命令提示符下的不一样,不过不用担心,这些命令应该差不多。

首先,我们切换到下载源代码的目录下:

# cd /usr/local/src

然后,使用tar命令逐一从tar包中提取源代码,使用tar命令的-zxvf参数来告诉它我们要做什么。Z参数表示先解压缩再继续,x参数表示从tar包中提取文件,v参数表示输出详细(在每个文件提取的时候打印出文件名),f参数表示我们要从一个tar包文件中提取文件,而不是从磁带中。

# tar -zxvf libpri-1.X.Y.tar.gz

# tar -zxvf dahdi-linux-complete-2.X.Y+2.X.Y.tar.gz

# tar -zxvf asterisk-1.8.X.Y.tar.gz

现在,你应当注意到,系统为每一个tar包创建了一个子目录,每个子目录中都包含了从相应tar包中提取的文件。我们接下来就可以编译并且安装这些组件了。

4. 编译和安装DAHDI

(未完待续。。。)

展开阅读全文

没有更多推荐了,返回首页