Compiling and Installing Yate from SVN on Debian
Follow the steps bellow to install and compile the latest version of Yate from SVN source on Debian GNU/Linux 6.0 system.
Contents |
Prerequisites
For fetching and building Yate from SVN you will need the following:
- A subversion(svn) client to fetch Yate from SVN source.
apt-get install subversion The following NEW packages will be installed: libapr1 libaprutil1 libserf-0-0 libsvn1 subversion
- Basic software development tools:
- The autoconf configuration script builder. After fetching Yate you will have to run autogen.sh to generate the configure file, but if autoconf is missing, an error will be given:
- Please install Gnu autoconf to build from CVS.
apt-get install autoconf The following NEW packages will be installed: autoconf automake autotools-dev
- Package build-essential is required for building Debian packages.
- When running ./configure, this error will be given to you :
- configure: error: C++ compiler cannot create executables
- Install package bellow to resolve this error.
apt-get install build-essential The following NEW packages will be installed: build-essential dpkg-dev g++ g++-4.4 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libstdc++6-4.4-dev libtimedate-perl
- Development libraries for all optional modules in Yate you want to compile like:
- If you want to register users in a database you need libraries like MySQL or PostgreSQL.
- H323 channel module - VoIP H.323 driver requires the OpenH323 Library.
- Fax Transfer Module - this module can transmit or receive a fax, is based on spandsp.
- Read more about them and others in modules page.
Get the sources
Once you have the svn client installed getting the sources is a simple command:
cd /usr/src svn checkout http://voip.null.ro/svn/yate/trunk yate cd yate
This will fetch a copy of the SVN TRUNK in a new directory called yate.
Prepare and configure the sources
Run autogen.sh script to generate the configure file.
./autogen.sh Finished! Now run configure. If in doubt run ./configure --help
This script will warn if autoconf is missing and will prepare a configure script for you if everything is OK.
You can now run the configure script:
./configure checking for local operating system type... Linux checking for libraries directory name... lib checking for g++... g++ ...
Look at the configure output and check that all features you need are detected. If not, install what is missing.
Compile the sources
Use make command:
make make -C ./engine all make[1]: Entering directory `/usr/src/yate/engine' g++ -Wall -I.. -I.. -O2 -fno-check-new -fno-exceptions -fPIC -DHAVE_GCC_FORMAT_CHECK -DHAVE_BLOCK_RETURN -DATOMIC_OPS -c TelEngine.cpp g++ -Wall -I.. -I.. -O2 -fno-check-new -fno-exceptions -fPIC -DHAVE_GCC_FORMAT_CHECK -DHAVE_BLOCK_RETURN -c ObjList.cpp g++ -Wall -I.. -I.. -O2 -fno-check-new -fno-exceptions -fPIC -DHAVE_GCC_FORMAT_CHECK -DHAVE_BLOCK_RETURN -c HashList.cpp ........
Starting Yate
Check version of Yate from the directory where you build Yate:
./run -V Yate 4.2.1 alpha1
Start Yate:
./run -vvvvvv -CDo ... Yate engine is initialized and starting up on debian ...
To run Yate outside your build dir you need to set LD_LIBRARY_PATH so Yate can find libyate.so
echo "/usr/local/lib" >> /etc/ld.so.conf ldconfig
Service installation
If you will run Yate as server you will need some extra steps so Yate will start automatically when your server starts.
Prepare the init script
You need to copy and rename the proper yate.init from a subdirectory of packing/ to /etc/init.d where all service start scripts are installed.
This operation needs that you run as root:
cd /usr/src/yate cp packing/deb/yate.init /etc/init.d/yate chown root.root /etc/init.d/yate
You will then need to edit the init file and change the path to the executable from /usr/bin to /usr/local/bin.
Set the service script to start automatically
update-rc.d yate defaults
Start the service manually
Unless you are going to reboot the server you need to do the following once as root:
service yate restart
As a general note, use restart instead of start to avoid accidentally running multiple instances.
Disabling the service
If you want to disable the service you need to disable autostart and also stop it manually:
update-rc.d -f yate remove service yate stop
Configuration in Yate
Next step will be to learn more about configuration files and the modules and routing to configure Yate for your needs.
See also