Table of Contents
This manual describes how to build Enduro/X FreeBSD platform. Document is based on FreeBSD 10.3 on amd64 machine. Default FreeBSD C/C++ compiler is used.
This manual includes basic installation of Enduro/X which does not include building of documentation and does not use GPG-ME encryption for bridges.
For OS configuration settings see ex_adminman(guides)(Enduro/X Administration Manual, Setup System chapter). This step is mandatory be executed, before continuing.
For getting Enduro/X to work basically we need following packages:
The following operations will be done from root user. This will download and install open source packages to local machine:
# pkg install cmake flex bison libxml2 git bash
For test purposes we will parepare new user for which Enduro/X will built.
# adduser Username: user1 Full name: Test user Uid (Leave empty for default): Login group [user1]: Login group is user1. Invite user1 into other groups? []: Login class [default]: Shell (sh csh tcsh git-shell nologin) [sh]: Home directory [/home/user1]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : user1 Password : ***** Full Name : Test user Uid : 1002 Class : Groups : user1 Home : /home/user1 Home Mode : Shell : /bin/sh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (user1) to the user database. Add another user? (yes/no): no Goodbye! # su - user1 $ bash $ git clone https://github.com/endurox-dev/endurox $ cd endurox
This code bellow creates ndrx_home executable file which loads basic environment, so that you can use sample configuration provided by Enduro/X in sampleconfig directory. This also assumes that you are going to install to $HOME/endurox/dist folder. The file bellow will override the sample configuration.
$ cat << EOF > $HOME/ndrx_home #!/bin/bash echo "Loading ndrx_home..." # Where app domain lives export NDRX_APPHOME=$HOME/endurox # Where NDRX runtime lives export NDRX_HOME=$HOME/endurox/dist/bin # Debug config too export NDRX_DEBUG_CONF=$HOME/endurox/sampleconfig/debug.conf # NDRX config too. export NDRX_CONFIG=$HOME/endurox/sampleconfig/ndrxconfig.xml export PATH=$PATH:$HOME/projects/endurox/dist/bin export FLDTBLDIR=$HOME/endurox/ubftest/ubftab export PATH=$PATH:/opt/csw/bin:$HOME/endurox/dist/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/endurox/dist/lib # Where the queues live: export NDRX_QPATH=/mnt/mqueue EOF $ chmod +x $HOME/ndrx_home
Enduro/X basically consists of two parts: . XATMI runtime; . UBF/FML buffer processing. Each of these two sub-systems have own units tests.
$ cd /home/user1/endurox/sampleconfig $ source setndrx $ cd /home/user1/endurox/ubftest $ ./ubfunit1 2>/dev/null Running "main" (76 tests)... Completed "ubf_basic_tests": 198 passes, 0 failures, 0 exceptions. Completed "ubf_Badd_tests": 225 passes, 0 failures, 0 exceptions. Completed "ubf_genbuf_tests": 334 passes, 0 failures, 0 exceptions. Completed "ubf_cfchg_tests": 2058 passes, 0 failures, 0 exceptions. Completed "ubf_cfget_tests": 2232 passes, 0 failures, 0 exceptions. Completed "ubf_fdel_tests": 2303 passes, 0 failures, 0 exceptions. Completed "ubf_expr_tests": 3106 passes, 0 failures, 0 exceptions. Completed "ubf_fnext_tests": 3184 passes, 0 failures, 0 exceptions. Completed "ubf_fproj_tests": 3548 passes, 0 failures, 0 exceptions. Completed "ubf_mem_tests": 4438 passes, 0 failures, 0 exceptions. Completed "ubf_fupdate_tests": 4613 passes, 0 failures, 0 exceptions. Completed "ubf_fconcat_tests": 4768 passes, 0 failures, 0 exceptions. Completed "ubf_find_tests": 5020 passes, 0 failures, 0 exceptions. Completed "ubf_get_tests": 5247 passes, 0 failures, 0 exceptions. Completed "ubf_print_tests": 5655 passes, 0 failures, 0 exceptions. Completed "ubf_macro_tests": 5666 passes, 0 failures, 0 exceptions. Completed "ubf_readwrite_tests": 5764 passes, 0 failures, 0 exceptions. Completed "ubf_mkfldhdr_tests": 5770 passes, 0 failures, 0 exceptions. Completed "main": 5770 passes, 0 failures, 0 exceptions.
ATMI testing might take some time. Also ensure that you have few Gigabytes of free disk space, as logging requires some space (about ~10 GB).
$ cd /home/user1/endurox/atmitest $ nohup ./run.sh & $ tail -f /home/user1/endurox/atmitest/test.out ... ************ FINISHED TEST: [test028_tmq/run.sh] with 0 ************ Completed "atmi_test_all": 28 passes, 0 failures, 0 exceptions. Completed "main": 28 passes, 0 failures, 0 exceptions.
At finish you have a configured system which is read to process the transactions by Enduro/X runtime. It is possible to copy the binary version (dist) folder to other same architecture machines and run it there with out need of building.