Forum OpenACS Development: A graphical installer for OpenACS & dotLRN

Hello everybody,

I have created a graphical installer for OpenACS & dotLRN that will work under windows, linux(not yet) and macos(not soon).

More info on http://www.ncs.gr/openacs/

I would appreciate if you can spend some of your time to try it out and give me some feedback, so i can improve it and evaluate it properly.

Best Regards,
Vlassis

Collapse
Posted by Nima Mazloumi on
I am very impressed. Thank you very much for this important contribution. You could commit this to CVS as soon as you have a more or less stable version. The value of this installer is inestimable since the installation process is often a big obstacle for newbies.

Maybe others are interested to add support for different important linux distributions.

Greetings,
Nima

Collapse
Posted by Nima Mazloumi on
Maybe in the long run it is possible to add support for different important modules as listed here:

http://empoweringminds.mle.ie/openacs/aolserver_modules

This brings me to the idea to make the installer focus on aolserver and add support for toolkits like those listed here:

http://panoptic.com/wiki/aolserver/255

Collapse
Posted by Nima Mazloumi on
Some other thoughts I had:
- Will you add oracle support?
- I saw that you are using JBuilder. Maybe it is possible to port to Eclipse since it is open source and has alot of support.
Answers to Nima Mazloumi:

[quote]I am very impressed. Thank you very much for this important contribution. You could commit this to CVS as soon as you have a more or less stable version. The value of this installer is inestimable since the installation process is often a big obstacle for newbies.[/quote]

Thank you for your kind comments Nima, I am very glad that my work is being appreciated. According to my tests the windows config is currently stable, but this in deployment in operating systems that have been installed by myself and thus all of them have pretty much the same configuration. I cannot decide whether this installation is stable until I actually receive some feedback from others that have successfully installed OpenACS or dotLRN using this method.

[quote]Maybe others are interested to add support for different important linux distributions.[/quote]

That would be great since I can only develop a limited number of configuration scripts due to a very limited timeframe provided by the University of Reading, as this project is part of my MSc dissertation and is due by mid September.

[quote]Maybe in the long run it is possible to add support for different important modules as listed here:
http://empoweringminds.mle.ie/openacs/aolserver_modules
This brings me to the idea to make the installer focus on aolserver and add support for toolkits like those listed here:
http://panoptic.com/wiki/aolserver/255 [/quote]

you are right, this would be the best approach, although I am not sure how well all these modules would work in Jamie's binary build of the AOLwebserver for windows (which is quite old actually - version4 beta10)

[quote]Some other thoughts I had:
- Will you add oracle support?
- I saw that you are using JBuilder. Maybe it is possible to port to Eclipse since it is open source and has alot of support.[/quote]

The idea behind this whole project was to provide an one-step solution for the inexperienced user (since the experienced ones would probably want -and have the knowhow-to use the sources to compile and optimize for their installation). In order to do that, some "options" and certain "flexibility" must be sacrifised. I have come up with a solution that would install cygwin, postgres, aolserver, init the postgres oacs database, create postgres users, and wrap it up all together without the user's interaction during the process. I am not sure if this would be possible with oracle (I mean I cannot just zip the directory and pass it through like I do with cygwin + postgres).

I agree, my implementation  (http://www.ncs.gr/openacs/1.0.0/config/windows.cfg) is very very cruel but it meets the purpose.

As far as JBuilder vs Eclipse is concerned, I only used it for the early stages of the GUI design (Gridbag layout java mess), most of the time I was just using a text editor, and now that I have a structure for all I rarely use it.

Answers to Al Essa:
[quote]Vlassis, great work. We will try out. If we provide you access remotely to a MacOS server, would you be able to work on MacOS version?[/quote]

Hi Al, thanks a lot. Please let me know as soon as you have some results from the installation. I am very interested on some feedback.
I am not sure if I can make it happen with the MacOS server before the end of my project (mid september), because a 25.000 words document for the university is breathing down my neck, but quite possibly I will continue working on this project after the completion of my MSc, since I became quite interested in the world of OpenACS.

Thanks both of you for your comments. I am looking forward for some more feedback and possibly some results of installation tests.

Collapse
Posted by Alfred Essa on
Vlassis, great work. We will try out. If we provide you access remotely to a MacOS server, would you be able to work on MacOS version?
Nice work Vlassis, to make this installer an standard for oacs (which at the end is something worth to do), will be good if you provide a way to *attach* with your installer the latest stable distribution (oacs / .lrn), then we can keep providing this *easy* installer with our latest stable sw. Probably the oracle support is beyond the scope of your project since you wanted to provide an easy way to install / try .LRN.

Its a good idea to have this installer for the next relase of .LRN (that is happening now), when do you think you'll have an stable installer? so we can offer it ot the public.

[quote]Nice work Vlassis, to make this installer an standard for oacs (which at the end is something worth to do), will be good if you provide a way to *attach* with your installer the latest stable distribution (oacs / .lrn), then we can keep providing this *easy* installer with our latest stable sw. Probably the oracle support is beyond the scope of your project since you wanted to provide an easy way to install / try .LRN.

Its a good idea to have this installer for the next relase of .LRN (that is happening now), when do you think you'll have an stable installer? so we can offer it ot the public.[/quote]

Hi Rocael,
thanks for your comments. I currently have oacs 5.1.1 and .lrn 2.0.3 , which I believe are the latest versions for both projects. It is very easy to include different files in the installer. I will upload sometime today the configuration files that are used for the ZeroG, InstallAnywhere NOW !, and the tarballs that I currently use for the aolserver and cygwin&postgress, along with the other tools that are required (unzip, setx, etc). After having the configuration files downloaded into your computer, along with the complementary files (the java installer, cygwin, openacs, dotlrn, aolserver and the tools) it is a matter of seconds to create a new .exe file for distribution.

But ... in order to determine if this is stable or not, I need someone to actually test it. I cannot assume that it is stable because it installs properly in my computer, so far noone has reported a successful or unsuccessful installation :(

Regards,
Vlassis

Vlassis,

I see you've requested feedback on installation more than once. One major reason that you haven't received any feedback yet is that most of the folks here are running on non-Windows platforms...

/R

Collapse
Posted by Nima Mazloumi on
Great idea Rocael. This would permit us to offer a great toolkit with very low entry costs.

By the way. Maybe you could offer as an option the latest dotLRN and OpenACS. Since they only differ in the location of the installer file. This should be no problem at all.

Maybe we can even have a repository location where the latest tarballs for dotLRN, OpenACS and a snapshot of the latest HEAD-version is offered just like the packages in the APM.

Greetings,
Nima

Collapse
Posted by Nima Mazloumi on
vlassis, here comes the ultimate kick! offer a third version called developer edition. This installs eclipse and configures it with a default project that has openacs and dotlrn checked out right from cvs. the user has to decide where to install eclipse but the files of openacs and dotlrn are always installed under eclipse/workspace/openacs-4. Thus when the developer changes files they are directly reflected on localhost and he can always update from cvs via anonymous user.

What do you think?

If you like I can prepare an eclise version for you with tcl highlighting and the like.

Greetings,
Nima

I'll have a couple people testing this for windows ... and give you feedback here....
Vlassis,

Thanks so much for creating this! I just now tried the OACS version out on a laptop running WinXP Home edition. Here's some brief feedback.

So far the only error during the configuration was:

Loading data file c:/openacs/openacs/packages/ref-timezones/sql/postgresql/00-timezones.ctl...
Failed to install Reference Data - Timezone, version 5.1.1.  The following error was generated:

couldn't open "/tmp/psql-copyfile-a02480": no such file or directory

The server doesn't restart by itself as the docs indicate it should. However restarting the server manually works.

In the server logs, these are the only error messages I noticed:

______

[18/Aug/2004:01:12:41][260.2480][-conn:openacs::0] Error: Ns_PgExec: result status: 7 message: ERROR:  relation "apm_packages" does not exist

[18/Aug/2004:01:12:41][260.2480][-conn:openacs::0] Error: Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.")

ERROR:  relation "apm_packages" does not exist

SQL:

    select package_id from apm_packages
    where package_key = 'acs-kernel'

Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.")

ERROR:  relation "apm_packages" does not exist

____

Regards and thanks again,
Shambhu

Collapse
Posted by Nima Mazloumi on
The installation on windows was great. Just the constant cmd window popups are anoying. Is there any way not to make them full screen and behind the installer window?

Greetings,
Nima

Collapse
Posted by Nima Mazloumi on
Vlassis,

I have users here who tried to install via the installer and had problems to increase the StackSize of dotLRN. Any idea how that works?

Also they asked if it is planned to offer dotLRN 2.1 right away.

Greetings,
Nima

Collapse
Posted by Nima Mazloumi on
Vlassis,

Dossy kindly posted a "how to" for compiling aolserver on windows here:

http://panoptic.com/wiki/aolserver/1332

Note: Works so far only with aolserver 4.1
You need tcl for windows

Greetings,
Nima

Hi Vlassis !

I was testing the Installer, it was very easy to install, but I just found something that can be fixed for future releases.

"At least one misconfiguration was discovered that must be corrected. Please fix all of them, restart the web server, and try running the OpenACS installer again. You can proceed without resolving these errors, but the system may not function correctly.

"The configured AOLserver Stacksize is too small (488K). .LRN requires a StackSize parameter of at least 512K.

      Please add the following line to your .tcl configuration file

ns_section "ns/threads"
        ns_section "ns/threads" [expr 512*1024]

      After adding support the larger stacksize, please restart your web server. "

I think this would cause confusion since most of people using this installer are new to OACS and .LRN

Maybe you could change the .tcl file and add the new size of the stack.

Later I've got this error.

"[20/Aug/2004:09:44:04][392.884][-conn:dotlrn::0] Error: Error sourcing c:/openacs/dotlrn/packages/acs-bootstrap-installer/installer/install.tcl:
psql: FATAL:  no pg_hba.conf entry for host "172.16.0.69", user "paolooacs", database "paolooacs", SSL off"

It was listening on 172.16.0.69 and in the install process I put 127.0.0.1

[20/Aug/2004:09:43:13][392.444][] Notice: nssock: listening on 172.16.0.69:8000

That cause a problem in the installation process.

Paolo Vásquez

Collapse
Posted by Vlassis Rizopoulos on
Hello once more,

I am pleased to announce version 1.0.1 ;)

What have changed since the last version:
- All of the reported bugs concerning dotLRN have been fixed.
- Uploaded InstallAnywhere Configuration Files and Supplementary Files

There were 2 fatal bugs reported for dotlrn installations:

the first one involved a small number of stacks, I have changed this (I was suprised however that this is different than the required minimum for openacs). I changed the template configuration file and now the problem is gone.

the second bug involved a mystery around the AOL -> pgsql access. although openacs seems to access it via 127.0.0.1, dotlrn tries to access using the "real" ip of the PC (which makes me wonder what would happen if you install a demo on a PC without a network card ;)). Anyway a way around this was an extra line on the "config" file:

"%installdir%\cygwin\bin\bash" -c "ipconfig | /bin/grep 'IP Address' | /bin/sed -e 's#^.* : \(.*\)#\1#' | /bin/sed -e 's#.*#host all all & 255.255.255.255 trust#g' >> /var/postgresql/data/pg_hba.conf"

this would list all the ips declared on the NICs and append them to pg_hba.conf

(have I mentioned that I have started to hate regexp ?)

Anyway, I have also uploaded all the files that are used to pack the installer and I have also included a link on my site where you can find InstallAnywhere Now! ver 5.5 .

I still have 3 more problems to solve for windows that I cannot find a solution. I would be grateful if someone can come up with a useful idea about them.

a) When Aolserver receives a ns_shutdown , as described it shuts down. Although the user (because of the openacs/dotlrn message) expects the server to restart. Now in *nix installations this is handled by deamon tools, but I cannot seem to be able to find a solution like this for windows. I have played around with the "Recovery" tab in the services control panel, but this only works if the service is crashed. Unfortunately sending a ns_shutdown is recorded similar to net stop servicename . So the service is not considered "failed" and doesn't "recover"

b) Reference Data - Timezone, version 5.1.1 always fail to install. complaining it cannot open /tmp/psql-blabla

c) Now this is not really a problem, it is more of an incovenience. I want to hide cmd.exe so it doesn't keep on poping all the time like crazy (someone will eventually panic ;)). I tried replacing cmd.exe /C with start /MIN /WAIT , but java Runtime.Exec won't execute files that don't have .exe or .com extention ... and start is an embedded cmd.exe command like dir.

Now there are also some non-fatal bugs that appear. I am not sure though what cause them, and as far as I can tell, they don't create problems. An example of such a bug is the one mentioned by Shambhunath Borah. Can someone confirm that they are not affecting normal operation ?

Once more I would like to thank you for your feedback and I am looking forward to some more input from you.

Best Regards,
Vlassis

Collapse
Posted by Andrew Piskorski on
Vlassis, I've run AOLserver 4.0.7 on Windows as a Windows Service, which in principle, makes it pretty easy to have AOLserver auto-restart when killed, auto-start when the machine boots, etc.

In practice, bugs #772649 and #989725 makes things much more complicated, and I had to write a Tcl script to deal with that. (It makes use of PsTools from www.sysinternals.com - very handy.)

To install AOLserver as a Windows Service, use the -I switch, e.g.:

C:\nsd4\bin\nsd.exe -I -t C:\web\mysite\config.tcl

Bug #994224 is also Windows specific, but it sounds like Dossy's figured out a solution for that one. I probably won't get a chance to test his patch for a while yet, though.

Collapse
Posted by Andrew Piskorski on
Hm, no file storage enabled on openacs.org? One person asked me for it, so I went and quickly stuck my AOLserver restart script for MS Windows on my website. (You will probably need to change a few settings at the top of the script.)

After installing AOLserver as a Windows service, the Windows Service you just installed will be named something like "AOLserver-mysite". To get it to work the way you want, you now must manually change various settings for that service. I use these:

General:
Startup type: Automatic
Log On:
Log on as, This account: andy
Recovery:
all failures: Run a Program
Run program, Program: tclsh
Run program, Command line parameters: C:\web\mysite\bin\kill-nsd.tcl recover

(Grr, stupid Forums package, made me take the "colspan=2" out of my table above.)

Collapse
Posted by Vlassis Rizopoulos on
I forgot to mention in the previous post, in case you don't remember the project's website is http://www.ncs.gr/openacs .

Also what I forgot to mention was this:

I am working on the Linux installation script these days.

here are my thoughts, I have mainly focused on fedora/redhat since those are the systems that I have the most experience with.

The easy / predicted part:

check if postgresql rpm exists (rpm -qa |grep postgres)
if it is there, create the database required for oacs
if it is not there, check if we have a binary called postmaster in the path (which postmaster)
if we find nothing , install an rpm for postgresql

The hard / unpredicted part:

See if the tcl rpm is installed. (rpm -qa |grep tcl)
if it is, remove it. (rpm -e ...)
check if there is a tcl exec (which tcl)
if there is ..... fail ??
if there isn't extract the tcl source code (tar xvfz)
run configure with enable-threads
make, make install etc
extract the aol source code (tar xvfz)
run configure, make, make install
install various aolserver modules

install deamon tools etc etc etc

Any ideas how many things can actually go wrong during this ???

I was wondering ... can someone contribute an RPM for tcl with enable-threads  and an RPM for AOLServer and its modules ? I don't have the expertise to do it, and it would ensure that less things could go wrong during installing.

Best Regards,
Vlassis

Collapse
Posted by Nima Mazloumi on
Hi Vlassis,

OpenACS cannot start because of a database problem I get on Windows. This is what OpenACS tells.

[...The following database pools generated errors:

OpenACS could not allocate a handle from database pool "subquery".
Possible causes might include:

The database is not running.
The database driver has not been correctly installed.
The datasource or database user/password are incorrect.
You didn't define any database pools...]

Looking at the processes nsd and postgres are running. So what could be problem?

Greetings,
Nima

Collapse
Posted by Brian Fenton on
Hi Nima,
you will sometimes see that the error if nsd starts before the database is open. Try restarting nsd and see if that fixes it.

Brian

Collapse
Posted by Jon Suen on
I often get that starting up dotLRN after a fresh reboot. I usually just killall then start up the respective server on my laptop.

Just another quick question: am I right in assuming the version of dotLRN this installation (v1.0.1) is .LRN 2.0.3 ?
I'm just asking in concerns to trying to develop a WYSIWYG text editor for forms, and have heard the setup is (much) quicker on .LRN 2.1.0 - yet to know if this is the case or not, but have been having issues with this on the Windows .LRN/OACS install (but it is fantastic work all the same)...

Cheers, Jon