BOINC

From CBLFS
Jump to navigationJump to search
Download Source: svn co http://boinc.berkeley.edu/svn/trunk/boinc BOINC

Introduction to BOINC

BOINC is a grid computing server/client developed by the University of Califonia, Berkeley. You can use it to help search for eikniw's relatives by attaching to the SETI@home project.

Project Homepage: http://boinc.berkeley.edu/

Dependencies

Required

Recommended

Optional

Creating the BOINC User & Group

groupadd -g 52 boinc &&
useradd -c "BOINC user" -d /dev/null \
       -u 52 -g 52 -s /bin/false boinc

Non-Multilib

Compile the package:

./_autosetup &&
./configure --prefix=/usr --with-gnu-ld --enable-unicode \
--enable-client --with-ssl --with-x --with-wx-config=/usr/bin/wx-config &&
make

Install the package:

make install

Multilib

32Bit

Compile the package:

./_autosetup &&
USE_ARCH=32 CC="gcc ${BUILDN}" CXX="g++ ${BUILD32}" \
./configure --prefix=/usr --libdir=/usr/lib --with-gnu-ld --enable-unicode \
--enable-client --with-ssl --with-x --with-wx-config=/usr/bin/wx-config &&
make

Install the package:

make install

N32

Compile the package:

./_autosetup &&
USE_ARCH=n32 CC="gcc ${BUILDN32}" CXX="g++ ${BUILDN32}" \
./configure --prefix=/usr --libdir=/usr/lib32 --with-gnu-ld --enable-unicode \
--enable-client --with-ssl --with-x --with-wx-config=/usr/bin/wx-config &&
make

Install the package:

make install

64Bit

Compile the package:

./_autosetup &&
USE_ARCH=64 CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" \
./configure --prefix=/usr --libdir=/usr/lib64 --with-gnu-ld --enable-unicode \
--enable-client --with-ssl --with-x --with-wx-config=/usr/bin/wx-config &&
make

Install the package:

make install

Configuring

Create a configuration file for the BOINC boot script:

cat > /etc/boinc.conf << "EOF"
# Config file for /etc/rc.d/init.d/boinc

# Owner of BOINC process (must be existing)
USER="boinc"
GROUP="boinc"

# Directory containing BOINC files.
BOINCDIR="/usr"

# Location of the boinc command line binary
BOINCBIN="$BOINCDIR/boinc_client"

# Logfile (/dev/null for nowhere)
LOGFILE="/var/log/boinc.log"

# Options to pass to the boinc client when starting.
BOINCOPTS=""
EOF

Now create the BOINC boot script:

cat > /etc/rc.d/init.d/boinc << "EOF"#!/bin/bash
########################################################################
# Begin $rc_base/init.d/boinc
#
# Description : Bootscript for BOINC client.
#
# Authors     : Andrew "Weibullguy" Rowland darowland@ieee.org
#
# Version     : 00.00
#
# Notes       :
#
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

checkconfig() {

    cd $BOINCDIR
    if [ ! -f client_state.xml ] ; then
      echo "BOINC client requires initialization first."
      return 1
    fi

}

case "${1}" in
	start)

		checkconfig || exit 1

		# Check for system-wide configuation file.
		if [ -f /etc/boinc.conf ]; then
			. /etc/boinc.conf
		fi
	
		if [ ! -d $BOINCDIR ]; then
			echo "Cannot find boinc directory $BOINCDIR."
			exit 1
		fi

		boot_mesg "Starting BOINC client as a daemon..."
		loadproc $BOINCBIN $BOINCOPTS --daemon 2>$LOGFILE
		;;

	stop)
		# Stop the BOINC client.
		boot_mesg "Stopping BOINC client..."
		killproc boinc
		;;

	restart)
		${0} stop
		sleep 1
		${0} start
		;;

	*)
		echo "Usage: ${0} {start|stop|restart}"
		exit 1
		;;
esac

# End /etc/rc.d/init.d/boinc
EOF

Contents

Installed Directories: None
Installed Programs: boinc_client, boincmgr, boinc, boinccmd
Installed Libraries: libboinc.a, libboinc_api.{a, la, so}, libboinc_graphics2.{a, la, so}, libboinc_zip.{a, la, so}, libsched.{a, la, so}

Short Descriptions

boinc_client
boincmgr
boinc
boinc
boinccmd
libboinc
libboinc_api
libboinc_graphics2
libboinc_zip
libsched