We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.
Difference between revisions of "OLA on Linux"
From wiki.openlighting.org
(libprotobuf-dev is OK in ubuntu 11.04, not 10.04.) |
(protobuf-compiler added to ubu11.04 deps) |
||
Line 40: | Line 40: | ||
As of Ubuntu 11.04 (in 10.04 they are too old), protocol buffer development packages can be installed with the following command: | As of Ubuntu 11.04 (in 10.04 they are too old), protocol buffer development packages can be installed with the following command: | ||
− | apt-get install libprotobuf-dev | + | apt-get install libprotobuf-dev protobuf-compiler |
Finally, if you want to use the built in webserver, you'll need '''microhttpd'''. Note: you'll need version >= 0.4.0 of microhttpd else you will get errors: | Finally, if you want to use the built in webserver, you'll need '''microhttpd'''. Note: you'll need version >= 0.4.0 of microhttpd else you will get errors: |
Revision as of 02:56, 2 November 2011
This describes how to get OLA working on a Linux system either from the git repo or by using a released tarball.
Contents
Checkout or Download an Archive
Either download a tarball from the releases page, or check out the git repo with the following command:
git clone https://code.google.com/p/linux-lighting/ ola
If you don't have git yet, you'll need to install it with your distro's package manager.
Install libraries
You need a couple of libraries installed for everything to work correctly. Some of these are available as packages in distros but others need to be downloaded and built manually.
First up you'll need the following:
- cppunit
- uuid or ossp uuid
- pkg-config
- curses
Debian/Ubuntu users can install them with apt:
apt-get install libcppunit-dev libcppunit-1.12-1 uuid-dev pkg-config libncurses5-dev zlib1g-dev
If you're building from git you'll also need the following:
- libtool
- automake
- autoconf
apt-get install libtool autoconf automake
Next, you need Protocol Buffers http://code.google.com/p/protobuf/ version 2.3.0 from Google (BSD license). Most likely, you'll need to download and build them yourself. Note that 2.4.0 won't work yet as some of the functionality has changed.
Debian (and Ubuntu) users can, in some cases, use the following packages (not yet in stable): libprotobuf2 (libprotobuf3), libprotobuf-dev, protobuf-compiler
As of Ubuntu 11.04 (in 10.04 they are too old), protocol buffer development packages can be installed with the following command:
apt-get install libprotobuf-dev protobuf-compiler
Finally, if you want to use the built in webserver, you'll need microhttpd. Note: you'll need version >= 0.4.0 of microhttpd else you will get errors:
Once everything is installed, run ldconfig as root to pick up the new libraries
sudo ldconfig
Configure
If you checked out the sources from git, you'll need to run
autoreconf -i
After that run
./configure
Building & Testing
Build
make
Run the tests
make check
And install OLA
sudo make install sudo ldconfig
Known Issues
If you get an error like the following:
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/opt/local/var/macports/software/protobuf-cpp/2.0.3_0/opt/local/include/ -g -O2 -c -o ltdl.lo ltdl.c ./libtool: line 464: CDPATH: command not found /Users/simonn/lighting/lla/libltdl/libtool: line 464: CDPATH: command not found /Users/simonn/lighting/lla/libltdl/libtool: line 1142: func_opt_split: command not found libtool: Version mismatch error. This is libtool 2.2.6, but the libtool: definition of this LT_INIT comes from an older release. libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6 libtool: and run autoconf again.
Your system uses a different version of libtool. Run:
libtoolize --ltdl -c -f
and then start from the autoreconf step again.
If you should get the following error try to fix it with one of two available solutions:
Rpc.pb.cc: In copy constructor 'ola::rpc::RpcMessage::RpcMessage(const ola::rpc::RpcMessage&)': Rpc.pb.cc:143: error: base class 'class google::protobuf::Message' should be explicitly initialized in the copy constructor
You should be able to prevent this by editing ./src/Makefile.am
, removing -Werror
and then start from the autoreconfig step again.
If you get an error like:
/bin/sed: can't read /lib/x86_64-linux-gnu/libgcrypt.la: No such file or directory libtool: link: `/lib/x86_64-linux-gnu/libgcrypt.la' is not a valid libtool archive
Then "cd" into the "libltdl", "./configure", "make", and "make install". Once that is done, go back up into the main directory and try to "make" it again.