Software Prerequisites for Hosting a BOINC Project
From Unofficial BOINC Wiki
Contents |
[edit] General
The BOINC System Software requires support from other software packages to perform its functions. The goal of the BOINC System is to enable an organization to create a system framework to perform Distributed Computing with minimal cost. In light of this, the majority of the additional software packages are Open Source.
[edit] Unix
We develop on Solaris Operating Environment 2.6-2.9, Red Hat 8 and Enterprise Edition, Apple Mac OS X, and Debian Linux stable and unstable, so those currently work out-of-the-box. Other Unix-like systems should work without too much configuration.
| Server | Core client |
BOINC Manager |
Applications (non-graphical) |
Applications (graphical) |
|
|---|---|---|---|---|---|
|
GNU tools: |
X | X | X | X | X |
| Python 2.2+ MySQLdb module 0.9.2+ |
X | ||||
|
MySQL 4.0+ or 4.1+ |
X | ||||
| Apache with mod_ssl and PHP 4.0+ | X | ||||
|
WxWidgets 2.6 |
X | ||||
| GL, GLU, GLUT libraries | X | ||||
| X11 libraries and include files | X | X | |||
configure option |
--enable-server | --enable-client | --enable-client (if WxWidgets and X11 found) | --enable-client | --enable-client (if GL/GLU/GLUT found) |
[edit] Operating System Notes
- Some parts of the BOINC Server (the Feeder Daemon and Scheduling Server) use shared memory. On Hosts where these run, the Operating System must have shared memory enabled, with a maximum segment size of at least 32 MB. How to do this depends on the operating system; some information is here.
[edit] WxWidgets Notes
Configure with the --with-gtk --disable_shared options (BOINC needs a static library).
If you have an older WxWidgets install, uninstall it (make uninstall), then install 2.6.
[edit] MySQL Notes
- After installing and running the server, grant permissions for your own account and for the account under which Apache runs ('nobody' in the following; may be different on your machine). All mysql accounts should be password protected including root.
mysql -u root
grant all on *.* to yourname@localhost identified by 'password';
grant all on *.* to yourname identified by 'password';
grant all on *.* to nobody@localhost identified by 'password';
grant all on *.* to nobody identified by 'password';
- Set your PATH variable to include MySQL programs (typically /usr/local/mysql and /usr/local/mysql/bin).
- You'll need to back up your database. Generally this requires stopping the project, making a copy or snapshot, and restarting. An Example of a MySQL BOINC Database Archive.
[edit] PHP Notes
- Make sure 'magic quotes' are enabled (this is the default). The file /etc/php.ini should contain
magic_quotes_gpc = On
- By default, the BOINC Server Software uses PHP's mail function to send an e-Mail to Participants. This uses sendmail. If this doesn't work, you can use PHPMailer instead, which is a very flexible mail-sending mechanism. To do this:
- Download PHPMailer and put it under PROJECT/html/inc/phpmailer.
- Set the following variables in your PROJECT/html/project/project.inc file (substitute your own values):
$USE_PHPMAILER = true; $PHPMAILER_HOST = "xxx.xxx.xxx"; $PHPMAILER_MAILER = "smtp";
[edit] X11 Notes
To get the X11 support, select the relevant options when you're installing Linux, or (Redhat) go to System Settings/Add Software.
[edit] Apache Notes
Make sure httpd.conf sets the default MIME type as follows:
DefaultType application/octet-stream
Suppose Apache runs as user 'apache' and the BOINC Daemons run as user 'boincadm'. Directories created by apache need to be writeable to boincadm. This can be done in any of several ways:
- Use Apache's suexec mechanism to make the CGI Programs run as boincadm.
- Make the CGI Programs setuid and owned by boincadm.
- Edit /etc/group so that boincadm belongs to group apache, i.e. the line:
apache:x:48:
becomes:
apache:x:48:boincadm
Add these two lines to the beginning of the apache start script (called apachectl, usually in /usr/sbin on linux):
umask 2
export umask
Apache will need to be stopped/restarted for this to take effect. Now any file apache creates should have group writeable permissions (thanks to the umask) and user boincadm, who now belongs to group apache, should be able to update/delete these files.
[edit] Microsoft Windows®
To develop the BOINC Client Software for this as a target you will need the following:
| BOINC Daemon |
BOINC Manager |
Installer | Applications | |
|---|---|---|---|---|
| Visual Studio .NET (Visual C++ 7.0) | X | X | X | |
| WxWidgets 2.4.2 | X | |||
| Installshield X | X |
[edit] WxWidgets Notes
- Download and install the WxWidgets source according to instructions on the web site.
- In Settings/Control Panel/System, select Advanced; click Environment Variables. Under 'User variables' click New. Create a variable named 'wxwin' with value 'c:\wx' (or wherever you installed it). Then restart Visual Studio.
[edit] UCB Source
[edit] Copyright ©
- 2005 University of California
- 2005 Paul D. Buck
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
RSS Feeds

