Installation of a new HefeWeizen system on a fresh Debian GNU/Linux base installation

  • Note: Once there is a proper Debian package (or more than one) the installation procedure will result in one single apt-get install hefeweizen command.
  • Note: Until then the following procedure can be taken.

This is an example how to install HefeWeizen into a new Debian GNU/Linux XEN guest system. It must be a Debian testing or unstable release. The guest system was created with the Debian xen-create-image command.

This script below installs required and some handy Debian packages. It then gets the source code of HefeWeizen, compiles the C parts and installs the system into the default locations. The script must be executed as user root as it installs debian packages etc.

#/bin/sh
target=/usr/local/src/HefeWeizenProject
bin_dir=$target/trunk/bin

echo "update debian package repository"
apt-get update

echo "some handy tools"
apt-get install -y ssh screen less emacs21

echo "install HefeWeizen debian package dependencies"
apt-get install -y uuid wget openssl bzip2 xmlstarlet ruby libopenssl-ruby gcc make perl-modules libgmime-2.0-2 libgmime-2.0-2-dev libxml2 libxml2-dev xmlsec1 libxmlsec1 libxmlsec1-dev libxmlsec1-openssl subversion hwinfo rubygems gnuplot gv diff

echo "install HefeWeizen ruby gems dependencies"
gem install xml-simple mime-types highline

echo "create the directory for download"
mkdir -p $target
cd $target

echo "Downloading the source code (latest trunk version). Here is a userinteraction required. Please accept (temporarly or permanently the certificate) to continue downloading the\ source code."
svn checkout https://svn.havanawave.com:443/svn/HefeWeizen/trunk
if [ $? = 0 ]; then
    echo "Successfully checkout the latest version of HefeWeizen."
else
    echo "Error installing the HefeWeizen System. Check to output of the installation to localise the problem."
fi

cd $bin_dir

echo "Install HefeWeizen System. This includes the compilation of some C parts."
sh make-reinstall.sh

if [ $? = 0 ]; then
    echo "You installed the HefeWeizen System. You can go to the directory '$bin_dir' and start the system with the command 'sh run-hefeweizen'"
else
    echo "Error installing the HefeWeizen System. Check to output of the installation to localise the problem."
fi

This script is available online at:

http://dev.havanawave.com/repos/HefeWeizen/browser/trunk/bin/debian-base-hefeweizen-installation.sh?format=txt

Because wget is part of the Debian base system you can get the installation script and then execute it locally:

wget http://dev.havanawave.com/repos/HefeWeizen/browser/trunk/bin/debian-base-hefeweizen-installation.sh?format=txt -O hefeweizen-installation.sh
sh hefeweizen-installation.sh

After running the script you should get:

You installed the HefeWeizen System. You can go to the directory '/usr/local/src/HefeWeizenProject/trunk/bin' and start the system with the command 'sh run-hefeweizen --show-log'

This installation installs the test sytems; that are two systems (or two partners) one called Coronation and the scond one Gnaraloo. The partner agreements (the ebXML Collaboration Protocol Agreements) between the two partners have some fix endpoint addresses of each partner. The party Coronation has a hostname called coronation-ebXML-b2b-gateway and the party Gnaraloo has a hostname called gnaraloo-ebXML-b2b-gateway. So to test these two sample parties the system does update the /etc/hosts file for your in order to have the test system work out of the box. Here the content that will be added to the /etc/hosts file:

127.0.0.1 coronation-ebXML-b2b-gateway
127.0.0.1 gnaraloo-ebXML-b2b-gateway

Now you can ran the system.

sh run-hefeweizen --show-log

as described in [CommandLine]. The tool (script) to tell one partner to send a payload to the second system is called run-command-center.sh. Use the agreement (CPA) cpa_test.xml to start with. Best to have these two commands run in two different terminal windows. So in a new window do:

/usr/local/src/HefeWeizenProject/trunk/bin
sh run-command-center.sh

Enjoy or report any issues.