OpenACS/dotLRN automated install script Prerequisites: tclwebtest aolserver oracle or postgresql user named service0 see /packages/acs-core-docs/www/index.html for more documentation about installing OpenACS and its prerequisites Quick Guide edit config.tcl ./install.sh By default, this will 1) stop any OpenACS service supervised at /var/lib/svscan/service0 2) drop the database service0 if it exists 3) update or create a CVS HEAD checkout of OpenACS at /var/lib/aolserver/service0 4) create the database service0 5) install OpenACS, including configuring the web-driven pages, to http://localhost:8000 *** Before running install.sh script please check that: 0) If you already have a server running that is to be recreated - move away and save any local changes (patches) that you have made to the source code. The whole source code tree of the server will be moved away to temporary storage and deleted on the next recreation. Any patches that you want to apply on recreation should be executed by a script specified in the config file (see below) as post_checkout_script. This script will be executed after checkout is completed. Per default there is no such script but remember to use such a script if you wish to copy for example a log directory and AOLServer config file into the source tree of the server (to avoid having to do this I usually keep my AOLServer config and log files outside the source tree, i.e. under /usr/local/aolserver rather than under /web/server_name). If you do keep such files in the server tree you should save them before the checkout with the pre_checkout_script (specify path in config file), otherwise any changes to the AOLServer config file will be lost as the whole server tree is moved away for a new checkout from CVS. 1) A tablespace must exist with the same name as the oracle user of the server. The oracle recreate script uses statements from http://www.pinds.com/acs-tips/oracle-statements. Make sure you are not connected to the database user that the server uses so that that user can be dropped (i.e. log out of any sqlplus or psql sessions you might have). 2) Use config.tcl.in (don't edit this file, it's just a template) to create a server specific installation config file. Per default install.sh will use the file config.tcl in the same directory but you can specify any config file on the command line with the switch --config-file. 3) Make sure an AOLServer config file is prepared. You can use /etc/config.tcl as a template you are probably better off using any existing config files on your server as templates instead. As far as I know TCLWebTest cannot handle port numbers in URLs so try to avoid those (use port 80 or use virtual hosting). This is a known tcl bug: http://sourceforge.net/tracker/index.php?func=detail&aid=452217&group_id=10894&atid=110894 that is supposedly fixed in some recent version of TCL. 4) If you are using supervise (svc) to manage your server you need to create a run script and specify its path in the variable run_script in the config file. You may use run.in as a template. Per default the file run in the same directory as install.sh will be used. 5) The server you are to create/recreate must be under supervise (i.e. ln -s /web/dotlrn-test /service/dotlrn-test). 6) Make sure you have root access since you must run install.sh as root. 7) Fetch a fresh checkout from CVS of TclWebTest (see http://tclwebtest.sourceforge.net) and specify the directory the tclwebtest executable resides in in your config file (the default config file is config.tcl). *** The install.sh script roughly does the following by default (there are switches, use install.sh --help): 1) Takes down your old server, moves away the old source code (be careful so you don't loose local changes) and checks out new sources. 2) Recreates the database user. 3) Installs OpenACS and .LRN over HTTP using TclWebTest. 4) Sets up a few .LRN users and classes with TclWebTest When the script finishes it brings the new server up so that you can login with the site-wide admin user. There are switches to use PostgreSQL rather than Oracle and to only install OpenACS, invoke install.sh --help for details.