Forum OpenACS Q&A: OpenACS5 install on Mac OS X

Collapse
Posted by Svet Ivantchev on
After spending few hour installing OpenACS5 (HEAD CVS) in Mac OS X I found that the installation documentation for Mac OS X is a bit outdated and for some of the steps I've had to do "additional investigations" 😊

So, hoping that my experience con be userful here is my "cook-book"-style instuctions: http://www.efaber.net/personal/svet/OpenACS5-MacOSX-log.txt

There is a plan to make these instuctions more detailed and better formated if there is some interest from the community.

Collapse
Posted by bill kellerman on
thanks, svet.

i use a powerbook for development and it took a bit of digging to get things working.  others in the future will appreciate osx info.

Collapse
Posted by Vinod Kurup on
I also wrote up some notes about installing OpenACS 5 on Mac OS X, but I used AOLserver 4.
Collapse
Posted by Jade Rubick on
Can someone post this as a bug? At the minimum, this thread should be included in the documentation.
Collapse
Posted by Stan Kaufman on
I've just posted here http://sdm.openacs.org/new-file-storage/one-file.tcl?file_id=485 yet another install doc for OS X. This includes links to the various resources/discussions I could find out there. Hope it's of some use to others who are working through this.
Collapse
Posted by Walter McGinnis on
Has anyone noticed any changes between the numerous Mac OS X install guides and what is needed to install on 10.3 (i.e. Panther)?  More or less steps needed?  Postfix a pain?  Easy as pie?
Collapse
Posted by Malte Sussdorff on
I am maintaining the OS X installation instructions for OpenACS as good as I can. If you look at the postgres section, you will see special instructions for Panther, namely, install 7.4 of postgres.

All in all, it is a 20 minute procedure, including download via DSL, if you follow the docs (see my posting somewhere on this site on how to install, as this is a "quick rundown" version of the more extensive documentation).

This said, I did not even try to get AOLserver 3.3 to run on OS X, so no experiences for that one.

Collapse
Posted by Walter McGinnis on
Although I tried searching and looking at your former posts, I couldn't find your "quick rundown" and https://openacs.org/doc/openacs-HEAD/postgres.html didn't seem to have reference to Postgresql 7.4 in it.  Could you post a link to clarify what you are referring to please?

IIRC, Don has at least tried to install and run Oracle 9i for Mac OS X for OpenACS 5.  Hopefully he has some notes that we can incorporate into the install guide.

The big thing that seems to be lacking in all the various current install guides for Mac OS X is a complete production setup for OpenACS.  I appreciate that you are trying to keep things close to Linux, if I do an install, I'll try to make notes based on canonical install guide that keep track only of the differences from Linux, much like the RedHat, Debian, and Suse variants are incorporated now.

Collapse
Posted by Bruno Mattarollo on

Just for the record, I used the instructions from Vinod, except that I am using PostgreSQL 7.4:

% psql -V
psql (PostgreSQL) 7.4

It works fine with AOLserver 4, OpenACS-HEAD on Panther (on a powerbook G4). I will try in the New Year to get the same on an Xserve and Mac OS X 10.3 server. Hopefully everything will compile smoothly ;).

Collapse
Posted by Walter McGinnis on
Thanks for the confirmation Bruno.  I'll let you know if I stumble across anything specific to Server or an Xserve.
Collapse
Posted by Don Baccus on
Oracle on Mac OS X seems to be missing the very important utility "loadjava" ... either someone needs to tell me how to get java support in Oracle on Mac OS X working or we need to weed out the java calls from the CR (which we should do anyway, regardless)
Collapse
Posted by Walter McGinnis on
Just a clarification of why I couldn't find the stuff that Malte was referring to.  It was on the 5.0 branch of the docs found here: https://openacs.org/doc/openacs-5-0-0/.

Walter

Collapse
Posted by Bruno Mattarollo on
I have installed OpenACS 5 (from HEAD), PGSQL 7.4.1, AOLServer 4 on Mac OS X server (Panther). It's working like a charm :) Just wanted to let you know.
Collapse
Posted by Simon at TCB on
I was about to have a go at installing Oracle on OS X.

I shall probably wait now.

If you remember, can you let me know what you end up doing to get this working?

Thanks

Collapse
Posted by Malte Sussdorff on
Don, I might be mistaken but you could run the loadjava utility needed for openacs from a linux or windows box with an oracle client installed. I know this is a cludge but it might help.
Collapse
Posted by Mark Aufflick on
Malte,

I don't know if this is true for 7.4.0, but pg 7.4 claims (in the doco and ./configure) to require bison 1.875 which is newer than both the apple and (current or unstable) fink install.

Did you (and Bruno) compile bison from source like I did?

Collapse
Posted by Malte Sussdorff on
I think I did nothing, to be absolutly honest. Postgres just compiled. If I was lucky, i don't know. If I was, then we would have to document how to compile bison for OS X as well. For the record, I run Panther (10.3).
Collapse
Posted by Hérick Moniz on
A small note:

MacOS X 10.3 use Postfix as mail program. There is a problem with AOLServer 3.3 and Postfix but it could easily be fixed by modifying the file "/usr/local/aolserver/modules/tcl/sendmail.tcl" Look for "_ns_smtp_send $wfp "HELO AOLserver [ns_info hostname]" $timeout" and remove "AOLserver".

This bug is fixed in AOLserver 4.

Herick

Collapse
Posted by Walter McGinnis on
Not too long ago I did a development install on my powerbook using Postgresql 7.4.1 and AOLServer 4 via darwinports with Vinod's instructions acting as rough guides .  Its was slightly non-standard (most stuff is in /opt/local/ rather than /usr/local/), but damn, it was easy.  The readline dependency for PG is automatically handled, as is threaded tcl support for AOLServer.

I have a very ugly plain text version of the instructions.  If anyone is interested, they can email me.

http://darwinports.com/

Collapse
Posted by Mark Aufflick on
strike - i didn't know that sdm.openacs.com still existed!

How cute that you can browse the old website.

That got me browsing the wayback machine - check these cool sites:

Collapse
Posted by Bruno Mattarollo on

Hello all,

While talking to Carl Blessius, I mentioned the fact that I installed dotLRN 2.0.2, AOLServer 4 (+ nsopenssl 3.0 beta), PostgreSQL 7.4.2 on Panther Server and he asked me to post the details of what I had to do in order to make everything work, so here it goes...

First things first, so I downloaded PostgreSQL 7.4.2 and compile it:

$ ./configure --without-readline; make; sudo make install
Once the compilation and installation is done, doing and initdb -D /usr/local/pgsql/data yeld some strange error about the shared memory not being enough ... So, you have to edit /etc/rc and change the following parameters to read:
sysctl -w kern.sysv.shmmax=41943040
sysctl -w kern.sysv.shmmin=12
sysctl -w kern.sysv.shmmni=320
sysctl -w kern.sysv.shmseg=80
sysctl -w kern.sysv.shmall=10240
(note: I just took the current parameters and multiplied by 10 except in shmmin where I made it 12. Why? I saw this after a google search ... it works fine for me! Of course DO THIS AT YOUR OWN RISK!!!).
Restarting the server after changing those parameters enabled me to run initdb. So, in response from the question of Mark, I didn't recompile bison or added anything else.

After that, I went on and got the AOLServer 4.0.1 sources and the additional required modules, like nscache, nssha1, nspostgres, nsopenssl 3.0 beta 17 and tDOM 0.7.8. For all these modules, I just followed the instructions from the OpenACS installation docs.

So far everything was going well ... I then downloaded dotLRN 2.0.2 and installed it in ~/Development/openacs/dotlrn/ for my development work. I am not following the standard /var/lib/aolserver/service0/ from the docs ... that's only because ... no reason in particular 😉.

I then created my SSL certificates (self-signed):

$  openssl genrsa -des3 -out server.key 1024
$  openssl rsa -in server.key -out server.pem
$  openssl req -new -key server.key -out server.csr
    [ ... fill in all the details ... ]
$  openssl x509 -req -in server.csr -signkey server.key -out server.crt
    [ ... fill in some more details and make sure you are signing the correct stuff ... ]
$  sudo mkdir -p /usr/local/aolserver/servers/dotlrn/modules/nsopenssl/server/
$ sudo cp server* /usr/local/aolserver/servers/dotlrn/modules/nsopenssl/server/
$ sudo mkdir /usr/local/aolserver/servers/dotlrn/modules/nsopenssl/ca-client
$ sudo cp /private/etc/certs/ca.crt /usr/local/aolserver/servers/dotlrn/modules/nsopenssl/ca-client/
And then came the tricky part of dealing with a completely new configuration part for nsopenssl ... This is the extract from my configuration ... I still need to look more into it to make sure all is correct but it works TM:
#---------------------------------------------------------------------
#
# OpenSSL
#
#---------------------------------------------------------------------

ns_section "ns/server/${server}/module/nsopenssl/sslcontexts"
ns_param vs1_users_ctx        "SSL context used for regular user access"
ns_param vs1_admins_ctx       "SSL context used for administrator access"

ns_section "ns/server/${server}/module/nsopenssl/defaults"
ns_param server               vs1_users_ctx

ns_section "ns/server/${server}/module/nsopenssl/sslcontext/vs1_users_ctx"
ns_param Role                  server
ns_param CertFile              server/server.crt
ns_param KeyFile               server/server.pem
ns_param CADir                 ca-client/dir
ns_param CAFile                ca-client/ca-client.crt
ns_param Protocols             "SSLv3, TLSv1"
ns_param CipherSuite           "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
ns_param PeerVerify            false
ns_param PeerVerifyDepth       3
ns_param Trace                 false

ns_section "ns/server/${server}/module/nsopenssl/sslcontext/vs1_admins_ctx"
ns_param Role                  server
ns_param CertFile              server/server.crt
ns_param KeyFile               server/server.pem
ns_param CADir                 ca-client/dir
ns_param CAFile                ca-client/ca-client.crt
#ns_param Protocols             "All"
ns_param Protocols             "SSLv3, TLSv1"
ns_param CipherSuite           "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
ns_param PeerVerify            false
ns_param PeerVerifyDepth       3
ns_param Trace                 false

# SSL drivers. Each driver defines a port and a named SSL context to associate
# with it.

ns_section "ns/server/${server}/module/nsopenssl/ssldrivers"
ns_param vs1_users_drv            "Driver for vs1 regular user access"
ns_param vs1_admins_drv           "Driver for vs1 administrator access"

ns_section "ns/server/${server}/module/nsopenssl/ssldriver/vs1_users_drv"
ns_param sslcontext            vs1_users_ctx
ns_param port                  443
ns_param hostname              $hostname
ns_param address               $address

ns_section "ns/server/${server}/module/nsopenssl/ssldriver/vs1_admins_drv"
ns_param sslcontext            vs1_admins_ctx
ns_param port                  7002
ns_param hostname              $hostname
ns_param address               $address
And of course, to start AOLServer 4 and to get to bind to all the different ports, you need to invoque it differently... My start command looks like:
sudo /usr/local/aolserver/bin/nsd-postgres -u admin -B /usr/local/aolserver/bin/bind.txt -t ~/Development/openacs/dotlrn/etc/config.tcl
The content of bind.txt is:
$ cat bind.txt
XXX.XXX.XXX.XXX:80
XXX.XXX.XXX.XXX:443
Where XXX.XXX.XXX.XXX is the IP address that AOLServer is binding to.

I think this is all it took ... It's up and running and the next step for me is to look into something like inittab for AOLServer on Panther Server and test that ... but that will be at some other stage 😊.

Hope this is helpful to someone ...

/B