Technology hub‎ > ‎Developer Handy‎ > ‎

Installing Endeca Commerce Guided Search on Mac OSX

Easy step by step install in 30mins

Below are the steps to install Endeca on Mac with VirtualBox and Centos

Grab VirtualBox for Mac
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html#vbox

Download appropriate image (CentOS 5.1) at the below link
http://virtualboxes.org/images/centos/
Extract using Unarchiver found at https://itunes.apple.com/app/the-unarchiver/id425424353?mt=12&ls=1
IF VM doesn't start: VirtualBox VM settings: System -> Motherboard -> Enable IO APIC

Create new VM, Allocate memory with "Other Linux" and choose from "Existing" (browse to .vdi file)
Start VM
Login: root
password: roottoor

Execute below commands to update system
$yum update (might take a while)
$yum install kernel-devel gcc

Enable sharing and Display drivers
Go to Devices -> Install Guest Additions (Installs folder sharing and display drivers for mac)
To share Mac folders with VM. Select VM on "VirtualBox Manager" and (Command + S) -> Shared Folder tab. Add local folder
Folder will show up on /media directory on VirtualBox centos

Create endeca user and make endeca user sudoer

$> useradd endeca
$> passwd endeca

Add endeca to /etc/sudoers
$> vi /etc/sudoers
add below line
endeca    ALL=(ALL)       ALL

save with override (:wq!) to override reaonly

Login as Endeca and create endeca install directory with permissions

System -> Log off root
Login as endeca/endeca

Create Directory /opt/endeca
sudo mkdir /opt/endeca
sudo chown endeca /opt/endeca

Download the below required linux installables of Endeca Commerce 3.2.1 from Oracle eDelivery (edelivery.oracle.com)
to /home/endeca folder

Choose Endeca for Linux and download

Oracle Endeca MDEX Engine 6.4.1 for Linux x86-64
Oracle Endeca Platform Services 6.1.3 for Linux x86-64
Oracle Endeca Tools and Frameworks with Experience Manager 3.1.2 for Linux x86-64

I am installing the basic required binaries to run  Endeca Commerce Search

After download the /home/endeca folder should have 

/home/endeca/platformservices_613654721_x86_64pc-linux.sh
/home/endeca/V37716-01.zip
/home/endeca/mdex_6.4.1.715066_x86_64pc-linux.sh

Step 1: Install MDEX

./mdex_6.4.1.715066_x86_64pc-linux.sh --target /opt/endeca

cat /opt/endeca/endeca/MDEX/6.4.1/mdex_setup_sh.ini

Add output to ~/.bashrc (at the end)
ENDECA_MDEX_ROOT=/opt/endeca/endeca/MDEX/6.4.1
export ENDECA_MDEX_ROOT
PATH=$ENDECA_MDEX_ROOT/bin:$PATH
export PATH


Step 2: Install Platform Services

./platformservices_613654721_x86_64pc-linux.sh --target /opt/endeca

Configure the ports your Endeca Instance will utilize.

Please enter the port number of the Endeca HTTP service. The typical default is 8888.
        : 
        Please enter a value: 8888


Please enter the shutdown port number of the Endeca HTTP service. The typical default is 8090.
        : 8090


Please enter the port number of the Endeca Control System JCD, or nothing if you do not plan to use a Control System environment. The typical default is 8088.
        : 8088


Would you like this installation configured to run the Endeca Application Controller (EAC)? (Y/N)?
(Please note: this will also install the EAC Agent)
        : Y


Please enter the root of your Endeca MDEX Engine installation. The root directory path typically includes the version number. Leave blank if there is no Endeca MDEX Engine installed.
        : /opt/endeca/endeca/MDEX/6.4.1


Would you like to install the reference implementations? (Y/N)?
        : Y


cat /opt/endeca/endeca/PlatformServices/workspace/setup/installer_sh.ini
Add output to ~/.bashrc (at the end)
VERSION=6.1.3
BUILD_VERSION=6.1.3.654721
ARCH_OS=x86_64pc-linux
PRODUCT=IAP
ENDECA_INSTALL_BASE=/opt/endeca

#  Environment variables required to run the Endeca Platform Services software.

ENDECA_ROOT=/opt/endeca/endeca/PlatformServices/6.1.3
export ENDECA_ROOT
PERLLIB=$ENDECA_ROOT/lib/perl:$ENDECA_ROOT/lib/perl/Control:$ENDECA_ROOT/perl/lib:$ENDECA_ROOT/perl/lib/site_perl:$PERLLIB
export PERLLIB
PERL5LIB=$ENDECA_ROOT/lib/perl:$ENDECA_ROOT/lib/perl/Control:$ENDECA_ROOT/perl/lib:$ENDECA_ROOT/perl/lib/site_perl:$PERL5LIB
export PERL5LIB
PATH=$ENDECA_ROOT/bin:$ENDECA_ROOT/perl/bin:$ENDECA_ROOT/utilities:$PATH
export PATH
ENDECA_CONF=/opt/endeca/endeca/PlatformServices/workspace
export ENDECA_CONF
#  ENDECA_REFERENCE_DIR points to the directory the reference implementations
#  are installed in.  It is not required to run any Endeca software.

ENDECA_REFERENCE_DIR=/opt/endeca/endeca/PlatformServices/reference
export ENDECA_REFERENCE_DIR

Step 3: Install Workbench (Experience Manager) and Deployment Template

sudo chown -R endeca /opt/endeca
unzip V37716-01.zip -d /opt/endeca/endeca/PlatformServices/

Step 4: Deploy new Application using Deployment template (I call it testapp)

Exit terminal and open a fresh one to Set the environment variables in Bash
Create directory "apps" mkdir /opt/endeca/endeca/apps

cd /opt/endeca/endeca/PlatformServices/ToolsAndFrameworks/3.1.2/deployment_template/bin
./deploy.sh

08/15/2013 15:19:25 [deploy.pl] INFO:  Starting deployment template 
   installation.
08/15/2013 15:19:25 [AppDescriptorReader] INFO:  Parsing application descriptor
   file 
   /opt/endeca/endeca/PlatformServices/ToolsAndFrameworks/3.1.2/deployment_template/lib/../app-templates/base_descriptor.xml.

 ------------------------------------------------------------------------------
   Enter a short name for your application.

   Note: The name must conform to this regular expression: ^[a-zA-Z0-9]+$

   Application name:
testapp

 ------------------------------------------------------------------------------
   Specify the path into which the application will be deployed. The specified 
   directory must exist and cannot contain spaces.

   For example, to deploy into /localdisk/apps/testapp, specify the path as 
   /localdisk/apps.

   Deployment directory:
/opt/endeca/endeca/apps

 ------------------------------------------------------------------------------
   Specify the port on which the Endeca Application Controller is running. This
   is configured in the server.xml file in the workspace of the Endeca software
   install and should be the same for all applications deployed in this 
   environment. Ports must be in the range 1024-65535 [default: 8888].

   EAC port:
8888
08/15/2013 15:20:20 [deploy.pl] INFO:  Deploying application into 
   /opt/endeca/endeca/apps/testapp

 ------------------------------------------------------------------------------
   What port is the Workbench running? [Default: 8006]
8006

 ------------------------------------------------------------------------------
   What port should be used for the Live Dgraph? [Default: 15000]
15000

 ------------------------------------------------------------------------------
   What port should be used for the Authoring Dgraph? [Default: 15002]
15002

 ------------------------------------------------------------------------------
   What port should be used for LogServer? [Default: 15010]
15010
08/15/2013 15:20:40 [AppDescriptorReader] INFO:  Parsing application descriptor
   file 
   /opt/endeca/endeca/PlatformServices/ToolsAndFrameworks/3.1.2/deployment_template/lib/../app-templates/base_descriptor.xml.
08/15/2013 15:20:40 [deploy.pl] INFO:  Processing install with id 'Dgraph'
08/15/2013 15:20:40 [deploy.pl] INFO:  Application successfully deployed.


Step 5: Start Platform services, Workbench and Initialize services

cd /opt/endeca/endeca/PlatformServices/6.1.3/tools/server/bin
./startup.sh

cd /opt/endeca/endeca/PlatformServices/ToolsAndFrameworks/3.1.2/server/bin
./startup.sh

Host changes (Alternatively you can add Hostname added to /etc/hosts file 127.0.0.1 <<yourhost>> to avoid below changes)
cd /opt/endeca/endeca/apps/testapp/config/script/
vi AppConfig.xml
vi LiveDgraphCluster.xml
vi AuthoringDgraphCluster.xml
vi WorkbenchConfig.xml
vi DataIngest.xml
vi ReportGeneration.xml
edit eacHost, hostName, workbenchHost and repositoryUrl, ReportGenerationHost to localhost  (respectively)

cd /opt/endeca/endeca/apps/testapp/control/
./initialize_services.sh

Access workbench http://localhost:8006/


Step 6: Install, Deploy/Initialize Discover reference app (optional)

Remove testapp
cd /opt/endeca/endeca/apps/testapp/control
./initialize_services.sh --remove-app

cd /opt/endeca/endeca/PlatformServices/ToolsAndFrameworks/3.1.2/deployment_template\bin
deploy --app /opt/endeca/endeca/PlatformServices/ToolsAndFrameworks/3.1.2/reference/discover-data\deploy.xml

cd /opt/endeca/endeca/Discover/control
Execute "initialize_services.sh"
Execute "load_baseline_test_data script.sh"
Execute "baseline_update script.sh"
Execute "promote_content script.sh"

try http://localhost:8006/discover

IGNORE STEPS BELOW: Below is the Failed attempt to directly install on Mac OSX - Native libraries and MDEX are build only for Linux

==================================================================================

Download the below required linux installables of Endeca Commerce 3.2.1 from Oracle eDelivery (edelivery.oracle.com)

Choose Endeca for Linux and download

Oracle Endeca MDEX Engine 6.4.1 for Linux x86-64
Oracle Endeca Platform Services 6.1.3 for Linux x86-64
Oracle Endeca Tools and Frameworks with Experience Manager 3.1.2 for Linux x86-64

I am installing the basic required binaries to run  Endeca Commerce Search

Step 1: Create symbolic links for Mac to look like Linux

sudo ln -s /usr/bin/more /bin/more
sudo ln -s /usr/sbin/chown /bin/chown
sudo ln -s /usr/bin/chgrp /bin/chgrp
sudo ln -s /usr/bin/sed /bin/sed
sudo ln -s /usr/bin/tar /bin/tar
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/bin/true /bin/true
sudo ln -s /bin/expr /usr/bin/expr

Edit ~/.bash_profile and Add
export JAVA_HOME=$(/usr/libexec/java_home)

Step 2: Install Mdex 6.4.1

./mdex_6.4.1.715066_x86_64pc-linux.sh --target /Users/userxx12/endeca/

cat /Users/userxx12/endeca/endeca/MDEX/6.4.1/mdex_setup_sh.ini  (path printed at the end of installation)

Add the Env variables printed above to your ~/.bash_profile file

ENDECA_MDEX_ROOT=/Users/userxx12/endeca/endeca/MDEX/6.4.1
export ENDECA_MDEX_ROOT
PATH=$ENDECA_MDEX_ROOT/bin:$PATH
export PATH


Step 2: Install Platform Services 6.1.3

./platformservices_613654721_x86_64pc-linux.sh --target /Users/userxx12/endeca/

Please enter the port number of the Endeca HTTP service. The typical default is 8888.
: 8888


Please enter the shutdown port number of the Endeca HTTP service. The typical default is 8090.
: 8090


Please enter the port number of the Endeca Control System JCD, or nothing if you do not plan to use a Control System environment. The typical default is 8088.
: 8088


Would you like this installation configured to run the Endeca Application Controller (EAC)? (Y/N)?
(Please note: this will also install the EAC Agent)
: Y


Please enter the root of your Endeca MDEX Engine installation. The root directory path typically includes the version number. Leave blank if there is no Endeca MDEX Engine installed.
: /Users/userxx12/endeca/endeca/MDEX/6.4.1                                      


Would you like to install the reference implementations? (Y/N)?
: Y


cat /Users/userxx12/endeca/endeca/PlatformServices/workspace/setup/installer_sh.ini  (path printed at the end of installation)

Add the Env variables printed above to your ~/.bash_profile file

VERSION=6.1.3
BUILD_VERSION=6.1.3.654721
ARCH_OS=x86_64pc-linux
PRODUCT=IAP
ENDECA_INSTALL_BASE=/Users/userxx12/endeca

#  Environment variables required to run the Endeca Platform Services software.

ENDECA_ROOT=/Users/userxx12/endeca/endeca/PlatformServices/6.1.3
export ENDECA_ROOT
PERLLIB=$ENDECA_ROOT/lib/perl:$ENDECA_ROOT/lib/perl/Control:$ENDECA_ROOT/perl/lib:$ENDECA_ROOT/perl/lib/site_perl:$PERLLIB
export PERLLIB
PERL5LIB=$ENDECA_ROOT/lib/perl:$ENDECA_ROOT/lib/perl/Control:$ENDECA_ROOT/perl/lib:$ENDECA_ROOT/perl/lib/site_perl:$PERL5LIB
export PERL5LIB
PATH=$ENDECA_ROOT/bin:$ENDECA_ROOT/perl/bin:$ENDECA_ROOT/utilities:$PATH
export PATH
ENDECA_CONF=/Users/userxx12/endeca/endeca/PlatformServices/workspace
export ENDECA_CONF
#  ENDECA_REFERENCE_DIR points to the directory the reference implementations
#  are installed in.  It is not required to run any Endeca software.

ENDECA_REFERENCE_DIR=/Users/userxx12/endeca/endeca/PlatformServices/reference
export ENDECA_REFERENCE_DIR

Step 3: Install Deployment template

Extract Tools and Frameworks 3.1.2
Copy ToolsAndFrameworks/3.1.2/deployment_template folder to /Users/userxx12/endeca/endeca/Solutions/ folder

Step 4: Start Platform Services

Edit /Users/userxx12/endeca/endeca/PlatformServices/6.1.3/tools/server/bin/setenv.sh
Comment the JAVA_HOME by adding # in the front (looks like below)
#JAVA_HOME=$ENDECA_ROOT/j2sdk

Start Platform services by executing startup.sh
cd /Users/userxx12/endeca/endeca/PlatformServices/6.1.3/tools/server/bin/
./startup.sh
Check Log file: /Users/userxx12/endeca/endeca/PlatformServices/workspace/logs/catalina.out

Step 5: Deploy app using Deployment Template

Edit ~/.bash_profile and remove the path to Endeca perl/bin  (Comment the below path and add new line without perl)
#PATH=$ENDECA_ROOT/bin:$ENDECA_ROOT/perl/bin:$ENDECA_ROOT/utilities:$PATH
PATH=$ENDECA_ROOT/bin:$ENDECA_ROOT/utilities:$PATH

Edit  /Users/userxx12/endeca/endeca/Solutions/deployment_template/bin/deploy.sh  (Comment the below PERL_BIN and add perl path to default Mac OSX perl)
#PERL_BIN="${ENDECA_ROOT}/perl/bin/perl"
PERL_BIN="/usr/bin/perl"

Execute deploy.sh
cd /Users/userxx12/endeca/endeca/Solutions/deployment_template/bin/
./deploy.sh

08/14/2013 12:27:39 [deploy.pl] INFO:  Starting deployment template 
   installation.
08/14/2013 12:27:39 [AppDescriptorReader] INFO:  Parsing application descriptor
   file 
   /Users/userxx12/endeca/endeca/Solutions/deployment_template/lib/../app-templates/base_descriptor.xml.

 ------------------------------------------------------------------------------
   Enter a short name for your application.

   Note: The name must conform to this regular expression: ^[a-zA-Z0-9]+$

   Application name:
apptest

 ------------------------------------------------------------------------------
   Specify the path into which the application will be deployed. The specified 
   directory must exist and cannot contain spaces.

   For example, to deploy into /localdisk/apps/apptest, specify the path as
   /localdisk/apps.

   Deployment directory:
/Users/userxx12/endeca/endeca/apps

 ------------------------------------------------------------------------------
   Specify the port on which the Endeca Application Controller is running. This
   is configured in the server.xml file in the workspace of the Endeca software
   install and should be the same for all applications deployed in this 
   environment. Ports must be in the range 1024-65535 [default: 8888].

   EAC port:
8888
08/14/2013 12:28:41 [deploy.pl] INFO:  Deploying application into 
   /Users/userxx12/endeca/endeca/apps/apptest

 ------------------------------------------------------------------------------
   What port is the Workbench running? [Default: 8006]
8006

 ------------------------------------------------------------------------------
   What port should be used for the Live Dgraph? [Default: 15000]
15000

 ------------------------------------------------------------------------------
   What port should be used for the Authoring Dgraph? [Default: 15002]
15002

 ------------------------------------------------------------------------------
   What port should be used for LogServer? [Default: 15010]
15010
08/14/2013 12:29:12 [AppDescriptorReader] INFO:  Parsing application descriptor
   file 
   /Users/userxx12/endeca/endeca/Solutions/deployment_template/lib/../app-templates/base_descriptor.xml.
08/14/2013 12:29:12 [deploy.pl] INFO:  Processing install with id 'Dgraph'
08/14/2013 12:29:12 [deploy.pl] INFO:  Application successfully deployed.


Edit Scripts to use Mac OSX Java

vi /Users/userxx12/endeca/endeca/apps/apptest/config/script/set_environment.sh
comment lines for JAVA_HOME
#JAVA_HOME=$ENDECA_ROOT/j2sdk:$JAVA_HOME
#export JAVA_HOME

vi /Users/userxx12/endeca/endeca/apps/apptest/control/runcommand.sh
change JAVA definition to default
        #JAVA="${ENDECA_ROOT}/j2sdk/bin/java"
        JAVA="/usr/bin/java"

Step 6: Install and Start Workbench

Copy "server" and "reference" directory from ToolsAndFramwork (downloaded) to /Users/userxx12/endeca/endeca/PlatformServices/workbench/ (create workbench directory)

Edit /Users/userxx12/endeca/endeca/PlatformServices/workbench/server/bin/workbench.sh and comment the JAVA_HOME definition
#export JAVA_HOME="${ENDECA_TOOLS_ROOT}/server/j2sdk"

Execute "workbench.sh start" to start workbench in the background
Check logs: tail -f /Users/userxx12/endeca/endeca/PlatformServices/workbench/server/workspace/logs/catalina.out
Comments