ubuntu13.04 中安装 bigbluebutton
参考这个文档,是可靠的。特别是安装swftools的时候,当然安装时候需要使用到freetype这个还是要自己去freetype.org网站下载src安装编辑安装的。 在dpkg打包swftools的时候,要注意看他给出的文件。
先复制过来,有时间的时候,我再翻译写成详细的安装过程。
#summary How to install BigBlueButton on Debian #labels Phase-Deploy = Introduction = This guide will show how to install !BigBlueButton 0.71 on Debian Squeeze 32-bit (still having little issues with uploading documents, but that might be gone soon). Previous basic instructions are available at the end of this document. Ubuntu 10.04 (upstream's favorite distribution) instructions are available here: http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu Instead of following the previous Debian documentation method, which apparently doesn't work anymore, we're going to following Ubuntu's documentation. We'll assume you've installed a Squeeze i386 netinst with only SSH server option selected. Get on a command line as root and get typing: {{{ wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -O- | apt-key add - }}} Add the BigBlueButton repository URL and ensure the multiverse is enabled {{{ echo "deb http://ubuntu.bigbluebutton.org/lucid/ bigbluebutton-lucid main" | tee /etc/apt/sources.list.d/bigbluebutton.list echo "deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse" | tee -a /etc/apt/sources.list apt-get install vim python-software-properties echo "deb http://ppa.launchpad.net/freeswitch-drivers/freeswitch-nightly-drivers/ubuntu lucid main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 451AE93C apt-get update apt-get install bbb-freeswitch-config apt-get install bigbluebutton }}} Here, we run into the first problem. bigbluebutton depends on _bbb-config_ which depends on _bbb-web_ which depends on swftools-0.9.1 which depends on libmpfr1ldbl (>=2.3.2.dfsg.1-1ubuntu1) which is not installable (package does not exist in Debian or any repository added previously). One way to circumvent the problem is to install swftools manually (as versions previous to 0.9.1 aren't recommendable anyway): {{{ cd /tmp wget http://www.swftools.org/swftools-0.9.1.tar.gz tar zxf swftools-0.9.1.tar.gz cd swftools-0.9.1 ./configure make make install }}} The ./configure step might give you a few problems (it might depend on specific libraries which might not be present on your system (things like zlib etc). I fixed it by executing the following then resuming the _make_ and _make install_ commands: {{{ apt-get install zlib1g-dev giflib-tools libgif-dev libjpeg8-dev g++ }}} Then use the Debian _equivs_ command to create a fake package by the name of the missing package. {{{ apt-get install equivs cd /tmp equivs-control swftools vi swftools }}} Example of swftools control file: {{{ ### Commented entries have reasonable defaults. ### Uncomment to edit them. Section: misc Priority: optional Homepage: http://www.swftools.org Standards-Version: 3.6.2 Package: swftools-0.9.1 Version: 0.9.1 Maintainer: Your own original name of fake packager# Pre-Depends: # Depends: # Recommends: # Suggests: # Provides: # Replaces: Architecture: all # Copyright: # Changelog: # Readme: # Extra-Files: # Files: # Description: Fake empty swftools package This fake package requires you to manually install the swftools 0.9.1 package on your server. At this point, installing this package will abuse bbb-web's confidence in the Ubuntu swftools package (although no harm is done anyway). }}} Then continue: {{{ equivs-build swftools dpkg -i swftools-0.9.1_0.9.1_all.deb apt-get install bbb-web }}} Now we can proceed with the installation: {{{ apt-get install bigbluebutton }}} At the end of this one, an error shows up saying the package cannot stat /var/www/nginx-default/50x.html. That's not a big deal (must be something with the nginx package), just create the directory and file: {{{ mkdir -p /var/www/nginx-default/ touch /var/www/nginx-default/50x.html apt-get -f install }}} At this point, the BBB server is installed. To test it through a VirtualBox instance of Debian, you'll have to add a new ETH interface to your VirtualBox instance's config (DHCP) then check the new IP from inside your VirtualBox with {{{ /sbin/ifconfig }}} On an internal network, this should give you something like this: {{{ eth1 Link encap:Ethernet direcci贸nHW 00:22:68:12:0c:43 Direc. inet:192.168.1.156 Difus.:192.168.1.255 M谩sc:255.255.255.0 Direcci贸n inet6: fe80::222:68ff:fe12:c43/64 Alcance:Enlace ACTIVO DIFUSI脫N FUNCIONANDO MULTICAST MTU:1500 M茅trica:1 Paquetes RX:611063 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:411786 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:726274184 (726.2 MB) TX bytes:42872798 (42.8 MB) Interrupci贸n:20 Memoria:fc000000-fc020000 }}} What you need is the "Direc. inet:www.xxx.yyy.zzz" address. Reconfig your BBB with bbb-conf (first doing a cleanup and a check): {{{ bbb-conf --clean bbb-conf --check bbb-conf -c bbb-conf --setip www.xxx.yyy.zzz }}} This will restart the whole videoconference system and you should be able to access it from your main computer. ==Installing on another port== If you want to install BigBlueButton on another port (let's say you already have Apache running on :80 and want to use BigBlueButton on :8082), the feature to update the port is not implemented in bbb-conf of BBB version 0.71. You have to download a patched version (thanks to Fred Dixon) from https://raw.github.com/bigbluebutton/bigbluebutton/master/bigbluebutton-config/bin/bbb-conf {{{ cd /tmp wget https://raw.github.com/bigbluebutton/bigbluebutton/master/bigbluebutton-config/bin/bbb-conf cp bbb-conf /usr/local/bin chmod +x /usr/local/bin/bbb-conf bbb-conf --setip www.xxx.yyy.zzz:8082 }}} There remain problems with some *2swf commands which apparently should be in /bin and aren't, so: {{{ ln -s /usr/local/bin/pdf2swf /bin/pdf2swf ln -s /usr/local/bin/jpeg2swf /bin/jpeg2swf ln -s /usr/local/bin/png2swf /bin/png2swf }}} Even then, I still have problems right now uploading documents to the whiteboard, but the video/chat/audio are fully-functional. == References == * http://www.khattam.info/howto-add-launchpad-ubuntu-ppa-in-debian-squeeze-testing-2010-11-13.html * https://launchpad.net/~freeswitch-drivers/+archive/freeswitch-nightly-drivers?field.series_filter=lucid * http://groups.google.com/group/bigbluebutton-setup/browse_thread/thread/c9de580177e6f4bf * http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu * http://www.debian.org/doc/manuals/apt-howto/ch-helpers.en.html * http://groups.google.com/group/bigbluebutton-setup/browse_thread/thread/76dc74876f091b3b/aef92ac086c0d5d3?lnk=gst&q=change+port#aef92ac086c0d5d3 = Previous installation manual (out of date) = Note: This is for an out-of-date version of !BigBlueButton and the instructions may not work. If possible, we recommend you install !BigBlueButton on a Ubuntu 10.04 32-bit or 64-bit server. See [http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu Installation on Ubuntu]. Log in as root to avoid having to type sudo in front of most of the commands required to install !BigBlueButton. {{{ su - }}} Check if you have a internet connection {{{ ping www.google.com }}} = Installing = == APT == First let's configure the mirrors of apt add the following mirror to /etc/apt/sources.list {{{ echo "deb http://ftp.debian.org/ squeeze main non-free contrib" >> /etc/apt/sources.list }}} Syncronize apt with mirrors {{{ apt-get update }}} Upgrade your system {{{ apt-get upgrade }}} Install the headers of you kernel {{{ apt-get install linux-headers-`uname -r` }}} == Necessary Packages == Install the necessary packages that we need to use !BigBlueButton. {{{ apt-get install sudo build-essential mysql-server sun-java6-jdk jsvc tomcat6 imagemagick nginx openoffice.org libjpeg62-dev libjpeg62 libfreetype6-dev libfreetype6 libgif-dev libgif4 libungif4-dev libungif-bin libncurses5-dev libxml2-dev subversion }}} == Install swftools == {{{ cd /usr/src/ wget http://www.swftools.org/swftools-0.9.1.tar.gz tar -xvzf swftools-0.9.1.tar.gz cd swftools-0.9.1 ./configure make make install }}} == Install ActiveMQ == {{{ cd /tmp wget http://apache.mirror.rafal.ca/activemq/apache-activemq/5.2.0/apache-activemq-5.2.0-bin.tar.gz tar zxvf apache-activemq-5.2.0-bin.tar.gz mv /tmp/apache-activemq-5.2.0 /usr/share/activemq chown -R root.root /usr/share/activemq }}} == Install Red5 == {{{ cd /tmp wget http://bigbluebutton.org/downloads/0.70/red5-0.9.1.tar.gz tar xvf red5-0.9.1.tar.gz mv /tmp/red5-0.9.1 /usr/share/red5 adduser --system --home /usr/share/red5/ --no-create-home --group --disabled-password --shell /bin/false red5 }}} Create the logs files and the log folder of tomcat if this doesn't exist {{{ touch /usr/share/red5/log/sip.log touch /usr/share/red5/log/video.log touch /usr/share/red5/log/bigbluebutton.log test -d /var/log/tomcat6 || mkdir /var/log/tomcat6 chown -R root.root /usr/share/red5 chown -R red5:adm /usr/share/red5/log/ chmod 755 /usr/share/red5/log/ chgrp red5 /usr/share/red5/webapps/ chmod 775 /usr/share/red5/webapps/ mkdir /var/log/bigbluebutton touch /var/log/bigbluebutton/bbb-web.log chmod 777 /var/log/bigbluebutton/bbb-web.log }}} == Daemon Files == {{{ wget http://bigbluebutton.googlecode.com/files/red5-ubuntu -O /etc/init.d/red5 wget http://bigbluebutton.googlecode.com/files/activemq-ubuntu -O /etc/init.d/activemq wget http://www.bigbluebutton.org/downloads/0.70/ubuntu-install/bbb-openoffice-headless -O /etc/init.d/bbb-openoffice-headless chmod +x /etc/init.d/red5 chmod +x /etc/init.d/activemq chmod +x /etc/init.d/bbb-openoffice-headless /etc/init.d/red5 start /etc/init.d/bbb-openoffice-headless start }}} Add then to start on boot {{{ update-rc.d -f activemq start 99 2 3 4 5 update-rc.d -f red5 start 98 2 3 4 5 update-rc.d -f tomcat6 start 97 2 3 4 5 update-rc.d -f bbb-openoffice-headless start 96 2 3 4 5 }}} == Install Asterisk == We need to create a link to the kernel headers that we installed, so dahdi can found the right kernel, to do this, go back to /usr/src and create a link as bellow: {{{ cd /usr/src/ ln -s /usr/src/linux-headers-`uname -r` /usr/src/linux }}} Change to fit your kernel version Now let's download the sources of what we need: {{{ cd /usr/src wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.9.tar.gz wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.4.0.tar.gz wget --no-check-certificate http://github.com/jthomerson/AsteriskAudioKonf/tarball/master/ }}} === Install Dahdi === {{{ cd /usr/src tar -xvvzf dahdi-linux-2.4.0.tar.gz cd /usr/src/dahdi-linux-2.4.0/drivers/dahdi/ }}} Edit the file Kbuild uncommenting the line {{{ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DUMMY) += dahdi_dummy.o }}} and commenting the lines bellow: {{{ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCT4XXP) += wct4xxp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTC4XXP) += wctc4xxp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTDM24XXP) += wctdm24xxp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTE12XP) += wcte12xp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTDM) += wctdm.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_VOICEBUS) += voicebus/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCB4XXP) += wcb4xxp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCT1XXP) += wct1xxp.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCTE11XP) += wcte11xp.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCFXO) += wcfxo.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_TOR2) += tor2.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_PCIRADIO) += pciradio.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_XPP) += xpp/ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_JPAH) += dahdi_echocan_jpah.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_STEVE) += dahdi_echocan_sec.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_STEVE2) += dahdi_echocan_sec2.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_KB1) += dahdi_echocan_kb1.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_MG2) += dahdi_echocan_mg2.o }}} Save and exit Now compile it {{{ cd /usr/src/dahdi-linux-2.4.0 make make install }}} === Asterisk === {{{ cd /usr/src/ tar -xvvzf asterisk-1.6.2.9.tar.gz cd asterisk-1.6.2.9 ./configure make make install make samples }}} Copy the daemon file of asterisk to /etc/init.d/ {{{ cp contrib/init.d/rc.debian.asterisk /etc/init.d/asterisk chmod +x /etc/init.d/asterisk }}} Change the lines 24, 25 and 26 to fit our configuration: {{{ DAEMON=/usr/sbin/asterisk ASTVARRUNDIR=/var/run/asterisk ASTETCDIR=/etc/asterisk }}} Save and exit the file === app_konference === Let's compile app_konference {{{ cd /usr/src/ tar -xvzf jthomerson-AsteriskAudioKonf-genconf_v1.0.3-27-g3f63305.tar.gz cd jthomerson-AsteriskAudioKonf-3f63305/konference }}} Let's edit Makefile and change the include variable: {{{ vim Makefile ASTERISK_INCLUDE_DIR ?= /usr/include }}} Save and exit then compile {{{ make make install }}} === Configuration files === {{{ wget http://bigbluebutton.org/downloads/0.70/bbb_extensions.conf mv bbb_extensions.conf /etc/asterisk/ wget http://bigbluebutton.org/downloads/0.70/bbb_sip.conf mv bbb_sip.conf /etc/asterisk/bbb_sip.conf echo "#include \"bbb_extensions.conf\"" >> /etc/asterisk/extensions.conf echo "#include \"bbb_sip.conf\"" >> /etc/asterisk/sip.conf echo "load => app_konference.so" >> /etc/asterisk/modules.conf cat /etc/asterisk/manager.conf | sed 's/^enabled = no/enabled = yes/' > /tmp/manager.conf }}} == nginx == Use `ifconfig` to determine your IP. Replace the string YOUR-IP with your IP in the following sed command top change all references to 192.168.0.211 to your IP. {{{ cd /tmp wget http://bigbluebutton.org/downloads/0.70/nginx-bigbluebutton.conf cat nginx-bigbluebutton.conf | sed "s/192.168.0.211/YOUR-IP/" > /etc/nginx/sites-available/bigbluebutton rm nginx-bigbluebutton.conf ln -s /etc/nginx/sites-available/bigbluebutton /etc/nginx/sites-enabled/bigbluebutton }}} == BBB Modules == Download the bbb modules for later use {{{ cd /tmp wget http://bigbluebutton.org/downloads/0.70/packages/bbb-default.tar.gz wget http://bigbluebutton.org/downloads/0.70/packages/bigbluebutton.war wget http://bigbluebutton.org/downloads/0.70/packages/video.tar.gz wget http://bigbluebutton.org/downloads/0.70/packages/bigbluebutton-apps.tar.gz wget http://bigbluebutton.org/downloads/0.70/packages/client.tar.gz wget http://bigbluebutton.org/downloads/0.70/packages/sip.tar.gz wget http://bigbluebutton.org/downloads/0.70/packages/deskshare.tar.gz }}} == Tomcat Security == {{{ cat /etc/default/tomcat6 | sed "s/#TOMCAT6_SECURITY=.*/TOMCAT6_SECURITY=no/" > /tmp/tomcat6 mv -f /tmp/tomcat6 /etc/default/tomcat6 }}} == Setup MySQL == {{{ mysql -u root -p create database bigbluebutton_dev; grant all on bigbluebutton_dev.* to 'bbb'@'localhost' identified by 'secret'; commit; quit }}} == Install bbb-web == {{{ cp /tmp/bigbluebutton.war /var/lib/tomcat6/webapps/ }}} == Generate a GUID == For security, you need to generate a GUID. You can use an online GUID generator, such as [http://www.somacon.com/p113.php this] one. Keep this GUID as YOUR-GUID in a section below. == Determine PDF2SWF, CONVERT and GS applications == {{{ Make a note of where pdf2swf is installed which pdf2swf You should see something like /usr/local/bin/pdf2swf Make a note of where the convert application is installed which convert You shoud see something like. /usr/bin/convert Note where GhostScript is installed which gs You shoud see something like. /usr/bin/gs }}} == Edit bbb-web properties == vim /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties Change the following: * swfToolsDir to the directory where pdf2swf is located * imageMagickDir to the directory where convert is located * ghostScriptExec to point to the gs executable * change bigbluebutton.web.serverURL=http://YOUR-IP * set beans.dynamicConferenceService.securitySalt to be equal to the guid we just generated (i.e. beans.dynamicConferenceService.securitySalt=YOUR-GUID) == Create noPdfMarkWorkaround.ps == Create /etc/bigbluebutton/nopdfmark.ps with the following content: {{{ %! /pdfmark {cleartomark} bind def }}} == Restart Tomcat6 == {{{ /etc/init.d/tomcat6 restart }}} == Create the Presentation Upload directory == {{{ mkdir /var/bigbluebutton chown -R tomcat6:adm /var/bigbluebutton chmod -R 777 /var/bigbluebutton }}} == Install bbb-apps == {{{ cd /usr/share/red5/webapps cp /tmp/bigbluebutton-apps.tar.gz ./ tar xvf bigbluebutton-apps.tar.gz rm -rf bigbluebutton-apps.tar.gz }}} == Install Deskshare == {{{ cd /usr/share/red5/webapps cp /tmp/deskshare.tar.gz ./ tar xvf deskshare.tar.gz rm deskshare.tar.gz }}} == Install bbb-video-app == {{{ cd /usr/share/red5/webapps cp /tmp/video.tar.gz ./ tar xvf video.tar.gz rm video.tar.gz }}} == Install bbb-voice-app == {{{ cd /usr/share/red5/webapps cp /tmp/sip.tar.gz ./ tar xvf sip.tar.gz rm sip.tar.gz }}} == Instal bbb-default == {{{ test -d /var/www || mkdir /var/www cd /var/www cp /tmp/bbb-default.tar.gz ./ tar xvf bbb-default.tar.gz rm bbb-default.tar.gz }}} Now we need to create bbb_api_conf.jsp, which will hold our GUID and the !BigBlueButtonURL. Be sure to replace YOUR-GUID and YOUR-IP with the GUID we generated earlier and your IP, respectively. {{{ echo "<%! // This is the security salt that must match the value set in the !BigBlueButton server String salt = \" \"; // This is the URL for the BigBlueButton server String BigBlueButtonURL = \"http:// /bigbluebutton/\"; %>" > /var/lib/tomcat6/webapps/bigbluebutton/demo/bbb_api_conf.jsp }}} == Install bbb-client == {{{ test -d /var/www/bigbluebutton || mkdir /var/www/bigbluebutton cd /var/www/bigbluebutton cp /tmp/client.tar.gz ./ tar xvf client.tar.gz rm client.tar.gz }}} == Edit Client Config == {{{ vim /var/www/bigbluebutton/client/conf/config.xml }}} * Change the uri to your IP address Your config.xml should look something like (here the IP is 192.168.0.120, but yours should have the value for YOUR-IP): {{{ }}} == Install bbb-conf == {{{ wget --no-check-certificate http://github.com/bigbluebutton/bigbluebutton/raw/master/bigbluebutton-config/bin/bbb-conf mv bbb-conf /usr/local/bin chmod ugo+x /usr/local/bin/bbb-conf }}} == Finish == Restart the Services {{{ bbb-conf --restart }}} == Try out !BigBlueButton == {{{ Go to http://YOUR-IP/ which should display the !BigBlueButton web page and join the conference. }}} Author: Wagner Spirigoni 0.4