概述
声明:本文由本人翻译自Asterisk wiki,如有不妥欢迎指正。
原文地址:https://wiki.asterisk.org/wiki/display/AST/Installing+Asterisk+From+Source
一种流行的安装Asterisk方式是自己下载源代码并编译。这比使用包管理器或使用基于Asterisk的linux发行版要复杂,它允许你自己决定如何构造Asterisk和构造哪些Asterisk模块。
在这一节中,你将学习到如何下载并编译Asterisk源代码,以及如何安装Asterisk。
1. 下载
在一个典型的系统中,你将需要下载以下三个组件:
· Asterisk
· DAHDI
· libpri
libpri库允许Asterisk与ISDN连接交互(我们将在450.8章节“ISDN PRI和BRI连接简介”中介绍更多关于ISDN连接的内容)。虽然这个库并不总是必要的,但我们还是建议你安装。
DAHDI库允许Asterisk与模拟和数字电话以及电话线交互,包括公共电话交换网(Public Switched Telephone Network,简称PSTN)。即使你现在暂时不需要连接模拟或数字电话,但也应该在新的系统中安装DAHDI。
DAHDI
DAHDI为Digium Asterisk Hardware Device Interface简写,即Digium公司的Asterisk硬件设备接口,它集成了一些模拟和数字电话卡的驱动和应用程序,以及其他Digium公司的产品。DAHDI驱动程序独立于Asterisk,并可以被其他应用使用。DAHDI先前被叫做Zaptel,是由Zapata电话系统项目演进而来。
DAHDI源代码可以分别下载两个单独的组件(dahdi-linux是DAHDI的驱动程序,dahdi-tools是DAHDI的应用程序)。也可以下载dahdi-linux-complete完整包,它包含了linux驱动和应用程序两个部分。
贴士:为什么DAHDI要分割为两个不同的组件?
DAHDI被分割为两个组件(linux驱动和应用),是为了让第三方可以把DAHDI驱动移植到像FreeBSD这样的其他操作系统,这样我们就会有dahdi-linux和dahdi-freebsd等。
最新版本的libpri、DAHDI和Asterisk下载地址:
http://downloads.digium.com/pub/telephony/
2. 系统环境要求
为了顺利编译和安装Asterisk,你需要在系统中安装一个C编译器和一些系统库。
2.1 编译器
编译器是一个使源代码(Asterisk的源代码是用C语言编写的)变成可执行程序的程序。虽然任何C语言编译器都可以编译Asterisk源代码,但是我们强烈建议你使用GCC编译器。它不仅是Linux和Unix系统下最流行的免费C语言编译器,也是Asterisk开发者使用的编译器。
如果GCC编译器还没有安装到你的机器上,你只需使用相应的软件包管理系统安装即可。你还需要安装GCC的C++部分,某些Asterisk模块将会用到它。
2.2 系统库
除了C语言编译器,还需要安装一些系统库。这些被Asterisk依赖的库必须在编译Asterisk之前安装好。在大多数操作系统中,你需要安装库和与之相应的开发包。
贴士:开发库
对于大多数操作系统,开发包名以-dev或者-devel结尾。例如,在Red Hat Linux系统中,你需要安装“openssl”和“openssl-devel”两个包。
你需要安装的库清单:
· OpenSSL
· ncurses
· newt
· libxml2
· Kernel headers(编译DAHDI驱动用到)
我们建议你在编译和安装libpri、DAHDI和Asterisk之前,使用操作系统的软件包管理系统来安装这些库。
贴士:找到正确的库
如果你安装Asterisk1.6.1.0或者更新的版本,在contrib/scripts子目录下配备了一个名为install_prereq.sh的shell脚本。如果执行 install_prereq test,它将输入在你的操作系统上安装必须系统库所需要执行的命令,如果执行 install_prereq install,它将自动尝试下载并安装这些必须系统库。
3. 解压缩源码文件
你下载到的libpri、DAHDI和Asterisk源代码扩展名通常为.tar.gz或.tgz。这些文件被亲切的称作tar包。这个名字来自Unix下的tar(tap archive磁带归档的简称)应用。Tar包是为了便于复制而将一些文件组合为一个文件,然后通常使用像GZip一样的工具进行压缩。
我们使用tar命令从tar包中提取源代码。下面假设你使用Linux系统,并已经下载了libpri、DAHDI和Asterisk的tar包存储在/usr/local/src目录下(你可能需要用root账户登陆以使这个目录可写)。版本号我们使用X、Y和Z来替代,我们假设你会使用下载下来的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
(未完待续。。。)
最后
以上就是端庄天空为你收集整理的源码编译方式安装Asterisk的全部内容,希望文章能够帮你解决源码编译方式安装Asterisk所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复