Hyrax GitHub Source Build: Difference between revisions
Line 12: | Line 12: | ||
==== Get the dependencies if you need them ==== | ==== Get the dependencies if you need them ==== | ||
Get the tar ball hyrax-dependencies and build it. The Makefile in this package expects ''$prefix'' to be set as describe above. It will put all of the Hyrax server dependencies in a subdirectory called ''deps''. Get the latest tarball from http://www.opendap.org/pub/source/hyrax-dependencies-1.9.5.tar | Get the tar ball hyrax-dependencies and build it. The Makefile in this package expects ''$prefix'' to be set as describe above. It will put all of the Hyrax server dependencies in a subdirectory called ''deps''. Get the latest tarball from http://www.opendap.org/pub/source/hyrax-dependencies-1.9.5.tar | ||
: ''The Makefile should be modified to test for and create as needed the src directory so that everything will unpack correctly. [[User:Ndp|ndp]] ([[User talk:Ndp|talk]])'' What this means is that until we make a new deps tar ball, run ''mkdir src'' in the directory the tar ball makes once it's unpacked. Not a big deal, just something we forgot when we built the tar ball from a fresh git checkout. [[User:Jimg|Jimg]] ([[User talk:Jimg|talk]]) 06:38, 19 December 2014 (UTC) | : ''The Makefile should be modified to test for and create as needed the src directory so that everything will unpack correctly. [[User:Ndp|ndp]] ([[User talk:Ndp|talk]])'' | ||
: What this means is that until we make a new deps tar ball, run ''mkdir src'' in the directory the tar ball makes once it's unpacked. Not a big deal, just something we forgot when we built the tar ball from a fresh git checkout. [[User:Jimg|Jimg]] ([[User talk:Jimg|talk]]) 06:38, 19 December 2014 (UTC) | |||
: Note that if the deps are loaded from RPMs (as per the first step on this page) then there is no need to build them here, too. It won't hurt to build these, and in fact some parts of the server will build with these that won't build with the RPM-based deps, but you don't absolutely have to have the deps built from source if you have the RPMs installed to get 90% of the server's capabilities. The parts that will be missing are those parts that use ''gdal'' and ''gridfields''. | |||
==== Get and build libdap ==== | ==== Get and build libdap ==== |
Revision as of 06:54, 19 December 2014
This describes how to get and build Hyrax from git. The OLFS is a java servlet built using ant. The BES is a Unix daemon written in C/C++ and is made up of a number of modules that are loaded at runtime. You can either get the BES framework and its modules separately, building only the part you need, or you can get the entire daemon and build it in one step.
Building the BES in one step
Set up a CentOS machine to build code
See [[ConfigureCentos | Configure CentoOS] to set up a CentOS 6 machine to build software. Note that if you do all of the steps for CentOS 6 listed there - and it's not that hard - including setting up the EPEL yum repo, then you can install all of the deps except gdal and gridfields using RPMs. With this you can skip the Get the dependencies if you need them step below.
set up a build directory
In a new directory, set a new environment variable prefix to the CWD (export prefix=`pwd`) and set PATH so that $prefix/bin is at the head of PATH (export PATH=$prefix/bin:$PATH)
Get the dependencies if you need them
Get the tar ball hyrax-dependencies and build it. The Makefile in this package expects $prefix to be set as describe above. It will put all of the Hyrax server dependencies in a subdirectory called deps. Get the latest tarball from http://www.opendap.org/pub/source/hyrax-dependencies-1.9.5.tar
- The Makefile should be modified to test for and create as needed the src directory so that everything will unpack correctly. ndp (talk)
- What this means is that until we make a new deps tar ball, run mkdir src in the directory the tar ball makes once it's unpacked. Not a big deal, just something we forgot when we built the tar ball from a fresh git checkout. Jimg (talk) 06:38, 19 December 2014 (UTC)
- Note that if the deps are loaded from RPMs (as per the first step on this page) then there is no need to build them here, too. It won't hurt to build these, and in fact some parts of the server will build with these that won't build with the RPM-based deps, but you don't absolutely have to have the deps built from source if you have the RPMs installed to get 90% of the server's capabilities. The parts that will be missing are those parts that use gdal and gridfields.
Get and build libdap
Build, test and install libdap into $prefix:
- git clone https://github.com/opendap/libdap
- autoreconf -fiv
- ./configure --prefix=$prefix --enable-developer
- make -j9
- make check -j9
- make install
Get and build the BES and all of the modules shipped with Hyrax
Build, test and install the BES and its modules
- git clone https://github.com/opendap/bes
- Clone the BES from GitHub
git checkout modulesCheckout the modules branch of the BESUse the master branch as of 12/15/14- git submodule init
- does some init thing
- git submodule update
- This will clone each of the N modules into the directory modules. There's lots of ways to do this; this is just one. [1]
- autoreconf -vif
- ./configure --prefix=$prefix --enable-developer --with-dependencies=$prefix/deps
- Note that the --with-deps... is not needed if you load the dependencies from RPMs or otherwise have them installed an generally accessible on the build machine.
- make -j9
- make check -k
- Some tests may fail and -k ignores that and keeps make marching along
- Removed the -j9 option from the make check command because it can cause some tests to break. - ndp
- fileout_json is failing right now 12/2/14 - jhrg
- make install
Test the BES
Start the BES and verify that all of the modules build correctly.
- besctl start
- Given that $prefix/bin is on your $PATH, this should start the BES. You will not need to be root if you used the --enable-developer switch with configure (as shown above), otherwise you should run sudo besctl start with the caveat that as root $prefix/bin will probably not be n your $PATH.
- If there's an error (e.g., you tried to start as a regular user but need to be root), edit bes.conf to be a real user (yourself?) in a real group (use 'groups' to see which groups you are in) and also check that the bes.log file is not owned by root.
- Restart.
- bescmdln
- Start the simple command line client
- show version;
- Take a quick look at the output. There should be entries for libdap, bes and all of the modules.
- exit
- Leave the client