Forum OpenACS Q&A: Re: Unable to install openacs-5.9.0b2
By "connect to the database i mean: use psql to open an interactive shell. PGBIN is the place, where psql is located on your system.
$PGBIN/psql -U nsadmin -d openacs
Thank you for your detailed answer, Gustaf. Since I am installing for testing and seeing, what OpenACS is, I just deleted the database and created it again, but with encoding SQL_ASCII instead of utf8. After I started naviserver, I got an error that I didnt get before: >> ERROR: relation "apm_package_versions" does not exist at character 24 STATEMENT: select 1 from apm_package_versions where package_key = 'xotcl-core' and installed_p = 't'; << In spite of this error, I could install OpenACS, and after restarting naviserver, the error did not appear anymore. I am a little disappointed by the intransparence of the install process. Perhaps I have to read a lot of documentation to understand what is happening. It is striking, why the encoding made the difference. I would like to know, what will be the consequences of having SQL_ASCII instead of UTF8 when I have text in languages that need unicode. Well, I can begin testing. I am having also encoding problems in this forum. Quotes are translated to entities if I chose plain text, the first blank line disappear if I chose enhanced text. Best reagards S.O.
Did you install OpenACS "manually"? The referenced setup script is not tested under OpenBSD, but should work at least work as a blueprint.
After the setup the database definition should look like:
openacs.org=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres oacs-5-8 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |where Collate and Ctype might have different locales.
Concerning the other points:
- error message showing up during bootstrap install: this is a known exception handed in the scripts, but still showing up in the logs. This should go away for the final release.
- the quotes in the forums "plain text" mode is a bug and will be fixed before the release.
- the missing empty line in "enhanced text" is a styling issue due to the used bootstrap theme at openacs.org, that should be as well addressed.
Encoding= SQL_ASCII, Colate=Ctype=C. Is this bad?! What do you mean with installing manually? I compiled postgresql, Tcl, tcllib, tDOM, naviserver, libthread, nsf/XOTcl 2. I made user accounts acs and postgrsql with shell tcsh, home dirs: /usr/opt/acs and /usr/opt/postgres I logged in acs and unpacked in its home "openacs-5.9.0b2/" Logged in postgres, put in its home directory .tcshrc with #setenv LC_CTYPE en_US.UTF-8 setenv PGDATA /usr/opt/pgsql/data (note uncommented LC_TYPE) and did the commands: # initdb # createuser acs # createdb -O acs acs I edited the file "conf/openacs-config.tcl" that came with naviserver, specially: set server "acs" set servername "New OpenACS Installation - Development" set serverroot /usr/opt/acs/openacs-5.9.0b2 set logroot $serverroot/log set homedir /usr/opt/nsrv set bindir $homedir/bin I started naviserver as root with /usr/opt/nsrv/bin/nsd -u acs -t /usr/opt/nsrv/conf/openacs-config.tcl I pointed my web browser at the adress "localhost:8080" that I gave in openacs-config.tcl. I filled the maskes, openacs filled the db, and made I dont know what. I restarted the server, and I had OpenAcs installed ... but not when "#setenv LC_CTYPE en_US.UTF-8" was uncommented. If the database has encoding utf8, I get the errors I told you in the first posting. Please, believe me. No, I will not type comands that download and compile. I would type a command in account acs that fill the database (but didnt find it). And I have never installed something using the web browser, exept OpenACS. Unfortunately I had to guess what commands to type, the documentation is not clear. Thanks again for your answer and best regards, S.O.
psql -d acs -tAc \"create extension hstore\"
Is this necessary? Is perhaps this the reason of the problem with utf8?
Where is it documented exept hidden in the hidden script install-oacs.sh?
The hstore  extension is optional and is used by xowiki and xowf. It is recommended for large-scale xowf applications like the one described in . hstore can also be installed at some later time, but it is more convenient to install it at install time. hstore is an indexing package and has nothing to do with "encoding" problems you are experiencing.
How is your "template1" databased defined? What was the createdb statement you were using? With a unicode "template1" there is no need to specify an encoding (-E parameter - but it should not hurt at all). What is the output of \l in psql?
The install and startup scripts set usually LANG and LC_ALL. What is your setting?
It is, as I wrote above. I have no LC_CTYPE anymore, only ascii. With LC_CTYPE=US.UTF-8 I get problems. postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+-----------+---------+-------+----------------------- acs | acs | SQL_ASCII | C | C | postgres | postgres | SQL_ASCII | C | C | template0 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres (4 rows)
# setenv PGDATA /usr/opt/pgsql/data
# createuser acs
# createdb -O acs acs
Thanks for the link to the artcle.
"initdb" takes the encoding from LC_CTYPE, if not given with -E. It takes the directory from PGDATA, if not given with -D. This is why I changed LC_CTYPE in order not to have utf8. As said before, if I have LC_CTYPE=en_US.UTF-8, I get the errors in my first posting.
Here the result with LC_CTYPE=en_US.UTF-8 set: postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+-------------+---------------------- - postgres | postgres | UTF8 | C | en_US.UTF-8 | template0 | postgres | UTF8 | C | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) But then I cannot install openacs. Best regards, S.O.
- Note that the locale behavior of the server is determined by the environment variables seen by the server, not by the environment of any client. Therefore, be careful to configure the correct locale settings before starting the server. A consequence of this is that if client and server are set up in different locales, messages might appear in different languages depending on where they originated.
Note: When we speak of inheriting the locale from the execution environment, this means the following on most operating systems: For a given locale category, say the collation, the following environment variables are consulted in this order until one is found to be set: LC_ALL, LC_COLLATE (or the variable corresponding to the respective category), LANG. If none of these environment variables are set then the locale defaults to C.
Some message localization libraries also look at the environment variable LANGUAGE which overrides all other locale settings for the purpose of setting the language of messages. If in doubt, please refer to the documentation of your operating system, in particular the documentation about gettext.
I would recommend to set LANG at the creation of the database (to get a correct value for "Collate", see ) and in the environment running the server as indicated in the pg manual..
Before I continue experimenting with installation, I have a question: what does mean to install openacs?
First an experiment with words: what happens if I move from the postgresql data directory data to data.backup, make a new data directory with initdb, install or try to install openacs again, play a little with this installation, delete again data and move the old data.backup to data. Doing this, am I at the end in the same state as at the beginning?
Again, what does mean to install OpenACS? Where are only the database and the logfile changed or created, or happens more than that?
You know, I installed OpenACS to see what OpenACS is. I really dont know exactly what OpenACS is. But perhaps I will become an expert installing OpenACS. A concise and clear documentation about OpenACS and its installation would be a good thing, at best traditional man pages.
Have a nice sunday!
The reason, why i am coming back to the encoding issue is that i have seen many OpenACS installations (100+) on different operating systems, but i have not seen these errors. i am just trying to help you, since when you work on with wrong encodings, you will run sooner or later into troubles. Most of the Web sites are today in UTF-8, Tcl supports UTF-8 natively, etc. In general, it should be possible to change the encoding at some later time , but i have not tried this.
installing OpenACS means: perform all necessary steps to run an OpenACS based web site. OpenACS consists of the so-called core-packages  and the application packages. about 90 of the packages are maintained.
In order to run OpenACS, one needs the following software components:
- a web server (NaviServer, AOLserver)
- a database (PostgreSQL, Oracle)
- a few extra components (TDom, tcllib, XOTcl)
Then, one should get OpenACS either via tar or via source code repository. The recent tar files
contain just the oacs-core packages. Once, acs-core is installed (the step, where you saw in your
first attempt the error), one can install other OpenACS packages, either directly from the OpenACS repository,
of from the local file system (checkout from a source code repository). The latter is typical for developer,
developing their own packages, tailoring the system, etc.
The documentation of OpenACS needs much work, esp. for beginners. Once you have installed OpenACS,
you should also install the developer support, which provides the API browser. The developer support
is quite convenient to learn about the system, to see what templates are used in what situation, or
what SQL queries are executed for some URLs.
Does this help?
The question is, at which level of detail you want to know, what the installer does. To make this answer short: In order to start over, there is no need to touch anything in the file system (under "serverroot").
From the point of view of OpenACS, it is sufficient to drop and recreate the database (commands "dropdb" and "createdb"), you are using.
if you want to setup the full postgres installation new (which i would recommend to get the usual template0 blueprint), you can use "initdb".
I will try to answer to your question about what OpenACS is: it is a framework for building web applications, that is, a collection of software tools that make "easy" (to a programmer skilled in web technologies) the construction of community based websites. Its runs on a webserver called Aolserver or Naviserver (different branches of what used to be the same software) and uses PostgreSQL as DBMS.
OpenACS has a long tradition, dating back to 1995 when it was born as a company driven project in the United States. Its market share changed during the years and currently it is quite of a niche platform, but with solid poles of activity. To my knowledge, the most active ones are in Austria, South America and Italy. Its most common fields of applications are e-learning and ERP systems, but some (including myself) also develop some personal websites.
The reason why you found a bit difficult to start using OpenACS is that it doesn't show very much "out of the box". One should start developing something using the many commodities it offers, or install a package. Unfortunately, not many wizards exist to help you do so. Also, documentation intended for beginners, the one that usually "takes you by the hand" in your first steps in other projects, sometimes is lacking or outdated. OpenACS has a very clever built-in documentation system, but it supposes at least basic familiarity with the platform.
The best place to look for support is this forum, where response is usually very solicit. If you were looking for a software like this for a specific need, you could share it with us and people could give you more targeted advices.
I hope to have answered to your question
All the best