Forum OpenACS Q&A: Re: OpenACS 5.5.0 install Debian 6 64bits - When trying to install OpenACS I get "Not Found"

Well, I already hit a new issue with tDOM that I need to investigate...

I get this:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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.

Problems with XML support for AOLserver:
tDOM is not installed! You must have tDOM installed, or nothing will work.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Still under investigation...

Hi Pablo,

I think the debian port system is similar to ubuntu, so you should be able to search for tdom from terminal like this:

sudo su -
apt-cache search tdom

# and then attempt install with:

apt-get install tdom

# it will stop and tell you if it is already installed.

cheers,

Torben

Curious, how did you install the tcl you are using with aolserver? If you built it yourself (very possible) then you'd need to build tdom using the same prefix as the tcl, and --with-tcl=(that prefix)/lib

if you installed tcl from the debian packages, there should be a tdom package that will work, as Torbin is suggesting.

The tdom from its debian package will work with tcl from its debian package, but not with a tcl built from source, especialy if it's in a different location.

-Jim

Torben, I installed ttom from source.
But I know I can get them using apt-get. I decided to build everything from source since installing debian pre compiled packages did not work ok for me (maybe with a bit more effort I can get it done, but then it's better to compile if effort is required).
Jim,

I installed all from source. This is how I compiled tDOM originally:

../configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver --with-tcl=/usr/local/lib
sh CONFIG
make install

And then, after some reading (including README.AOL) I did:

../configure --enable-threads --disable-tdomalloc \
--prefix=/usr/local/aolserver --with-tcl=/usr/local/lib \
--with-aolserver=/usr/local/aolserver
sh CONFIG
make install

But both result on the same error "tDOM is not installed! You must have tDOM installed, or nothing will work"

I think the problem is just that I'm failing to tell aolserver where tdom is. Looking into it now...
Just in case someone knows how to read the logs... this is the error (debug is on), I guet a Tcl exception

pabloacs@debian:~$ tail -f /var/lib/aolserver/pabloacs/log/error.log
[15/Dec/2012:08:27:00][1443.425740032][-main-] Notice: Done.
[15/Dec/2012:08:27:00][1443.425740032][-main-] Notice: Executing initialization code blocks...
[15/Dec/2012:08:27:00][1443.425740032][-main-] Debug: QD=Postload files to load:
[15/Dec/2012:08:27:00][1443.425740032][-main-] Debug: QD=Postload files to load:
[15/Dec/2012:08:27:00][1443.425740032][-main-] Notice: nsmain: AOLserver/4.5.0 running
[15/Dec/2012:08:27:00][1443.425740032][-main-] Notice: nsmain: security info: uid=1002, euid=1002, gid=1001, egid=1001
[15/Dec/2012:08:27:00][1443.384177920][-sched-] Notice: sched: starting
[15/Dec/2012:08:27:00][1443.425740032][-main-] Notice: driver: starting: nssock
[15/Dec/2012:08:27:00][1443.350840576][-nssock:driver-] Notice: starting
[15/Dec/2012:08:27:00][1443.350840576][-nssock:driver-] Notice: nssock: listening on 0.0.0.0:8000
[15/Dec/2012:08:27:14][1443.349783808][-conn:0-] Debug: NO FULLQUERY FOR dbqd.acs-tcl.tcl.00-database-procs.db_table_exists.table_count --> using default SQL
[15/Dec/2012:08:27:14][1443.349783808][-conn:0-] Notice: Querying '
select count(*) from pg_class
where relname = lower('apm_packages') and
relname !~ '^pg_' and relkind = 'r';'
[15/Dec/2012:08:27:14][1443.349783808][-conn:0-] Notice: dbinit: sql(localhost::pabloacs): '
select count(*) from pg_class
where relname = lower('apm_packages') and
relname !~ '^pg_' and relkind = 'r'
'
[15/Dec/2012:08:27:14][1443.349783808][-conn:0-] Debug: db_exec: timing 0 seconds nsdb0 0or1row dbqd.acs-tcl.tcl.00-database-procs.db_table_exists.table_count
[15/Dec/2012:08:27:14][1443.349783808][-conn:0-] Debug: NO FULLQUERY FOR dbqd.acs-tcl.tcl.request-processor-procs.ad_acs_kernel_id_mem.acs_kernel_id_get --> using default SQL
[15/Dec/2012:08:27:14][1443.349783808][-conn:0-] Error: Tcl exception:
No fullquery for dbqd.acs-tcl.tcl.request-processor-procs.ad_acs_kernel_id_mem.acs_kernel_id_get and default SQL empty - query for statement missing
while executing
"error "No fullquery for $statement_name and default SQL empty - query for statement missing""
(procedure "db_qd_replace_sql" line 10)
invoked from within
"db_qd_replace_sql $statement_name $pre_sql"
(procedure "db_exec" line 13)
invoked from within
"db_exec 0or1row $db $full_name $sql"
invoked from within
"set selection [db_exec 0or1row $db $full_name $sql]"
("uplevel" body line 2)
invoked from within
"uplevel 1 $code_block "
invoked from within
"db_with_handle -dbn $dbn db {
set selection [db_exec 0or1row $db $full_name $sql]
}"
(procedure "db_string" line 27)
invoked from within
"db_string acs_kernel_id_get {} -default 0"
(procedure "ad_acs_kernel_id_mem" line 2)
invoked from within
"ad_acs_kernel_id_mem"
(procedure "ad_acs_kernel_id" line 2)
invoked from within
"ad_acs_kernel_id"
(procedure "util_current_location" line 16)
invoked from within
"util_current_location"
(procedure "ad_returnredirect" line 18)
invoked from within
"ad_returnredirect "/""
(procedure "install_handler" line 32)
invoked from within
"install_handler cns1 {} preauth"

tdom (and a few others, xotcl is one) are tcl modules, and since you built tcl into /usr/local, it will find its modules more readily if you set tdom prefix to /usr/local.

most of the modules that have the ./configure paramater --with-tcl are tcl modules -- except aolserver, which does and is not a tcl module. All the tcl modules you build for openacs should go in your tcl's prefix, which I think is /usr/local.

Notice your tdom is actually building... this is because you're correctly telling it where tcl is.

(examples of non-tcl modules, nssha1, nspostgres... those two are aolserver modules and they should go in aolserver's bin dir)

And keep in mind that you may have other tcl modules you would need to change the prefix on.

I'll make one more suggestion... I like to keep the sources to the whole aolserver/oacs stack in one dir, and the main thing is I keep these little text files, like tdom-configure-step.txt that I just cat and read to know how to rebuild.

Often I will waste lotsa disk space and deep separate source copies for each openacs instance; you don't have to do that of course.

-Jim

Below I paste how I built both tcl and tdom. I'm not sure what to put on "--with-tcl". I was using "/usr/local/lib", but maybe I need to use "/usr/local/" ad you suggest, or "/usr/local/bin/". Excuse my ignorance, I'm not sure what tdom is looking for, if only the tclsh or the libraries (I guess it's the second).

This is how I built tcl:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cd /usr/local/src/
wget http://prdownloads.sourceforge.net/tcl/tcl8.4.19-src.tar.gz
tar xfz tcl8.4.19-src.tar.gz
cd tcl8.4.19/
cd unix
./configure --prefix=/usr/local/aolserver --enable-threads
make install
ln -s /usr/local/bin/tclsh8.4 /usr/local/bin/tclsh
ln -s /usr/local/bin/tclsh8.4 /usr/bin/tclsh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

And this is how I built tdom:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

cd /usr/local/src
wget https://github.com/downloads/tDOM/tdom/tDOM-0.8.3.tgz
tar xvfz tDOM-0.8.3.tgz
cd tDOM-0.8.3/unix/
../configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver --with-tcl=/usr/local/lib
sh CONFIG
make install

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Also, in case it helps, my directories look like this:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

root@debian:~# ls -l /usr/local
total 40
drwxr-sr-x 9 root staff 4096 Dec 8 00:32 aolserver
drwxrwsr-x 2 root staff 4096 Dec 8 16:32 bin
drwxrwsr-x 2 root staff 4096 Nov 25 15:10 etc
drwxrwsr-x 2 root staff 4096 Nov 25 15:10 games
drwxrwsr-x 2 root staff 4096 Dec 7 13:39 include
drwxrwsr-x 5 root staff 4096 Dec 15 08:53 lib
lrwxrwxrwx 1 root staff 9 Nov 25 15:10 man -> share/man
drwxr-s--- 9 postgres web 4096 Dec 11 20:51 pgsql
drwxrwsr-x 2 root staff 4096 Nov 25 15:10 sbin
drwxrwsr-x 6 root staff 4096 Nov 25 15:21 share
drwxrwsr-x 11 root staff 4096 Dec 12 05:37 src
lrwxrwxrwx 1 root staff 25 Dec 8 16:32 tclwebtest -> /usr/local/tclwebtest-1.0

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

root@debian:~# ls -l /usr/local/bin
total 12
lrwxrwxrwx 1 root staff 15 Dec 7 23:58 envdir -> /command/envdir
lrwxrwxrwx 1 root staff 18 Dec 7 23:58 envuidgid -> /command/envuidgid
lrwxrwxrwx 1 root staff 15 Dec 7 23:58 fghack -> /command/fghack
lrwxrwxrwx 1 root staff 17 Dec 7 23:58 multilog -> /command/multilog
lrwxrwxrwx 1 root staff 17 Dec 7 23:58 pgrphack -> /command/pgrphack
lrwxrwxrwx 1 root staff 22 Dec 7 23:58 readproctitle -> /command/readproctitle
lrwxrwxrwx 1 root staff 16 Dec 7 23:58 setlock -> /command/setlock
lrwxrwxrwx 1 root staff 18 Dec 7 23:58 setuidgid -> /command/setuidgid
lrwxrwxrwx 1 root staff 18 Dec 7 23:58 softlimit -> /command/softlimit
lrwxrwxrwx 1 root staff 18 Dec 7 23:58 supervise -> /command/supervise
lrwxrwxrwx 1 root staff 12 Dec 7 23:58 svc -> /command/svc
-rwxr-xr-x 1 root staff 465 Dec 7 23:58 svgroup
lrwxrwxrwx 1 root staff 13 Dec 7 23:58 svok -> /command/svok
lrwxrwxrwx 1 root staff 15 Dec 7 23:58 svscan -> /command/svscan
lrwxrwxrwx 1 root staff 19 Dec 7 23:58 svscanboot -> /command/svscanboot
lrwxrwxrwx 1 root staff 15 Dec 7 23:58 svstat -> /command/svstat
lrwxrwxrwx 1 root staff 15 Dec 7 23:58 tai64n -> /command/tai64n
lrwxrwxrwx 1 root staff 20 Dec 7 23:58 tai64nlocal -> /command/tai64nlocal
lrwxrwxrwx 1 root staff 23 Dec 7 13:40 tclsh -> /usr/local/bin/tclsh8.4
-rwxr-xr-x 1 root staff 7866 Dec 7 13:39 tclsh8.4
lrwxrwxrwx 1 root staff 32 Dec 8 16:32 tclwebtest -> /usr/local/tclwebtest/tclwebtest

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

root@debian:~# ls -l /usr/local/lib
total 920
-r-xr-xr-x 1 root staff 907413 Dec 7 13:39 libtcl8.4.so
-rw-r--r-- 1 root staff 2524 Dec 7 13:39 libtclstub8.4.a
drwxrwsr-x 4 root staff 4096 Nov 25 15:21 python2.6
drwxr-sr-x 8 root staff 4096 Dec 7 13:39 tcl8.4
-rw-r--r-- 1 root staff 7466 Dec 7 13:39 tclConfig.sh
drwxr-sr-x 2 root staff 4096 Dec 15 08:53 tdom0.8.3
-rw-r--r-- 1 root staff 2000 Dec 15 08:53 tdomConfig.sh

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I think I just answered my own question by rebuilding tDOM. I was pointing to the right directory, "/usr/local/lib":

root@debian:/usr/local/src/tDOM-0.8.3/unix# make clean
test -z "libtdom0.8.3.so libtdomstub0.8.3.a" || rm -f libtdom0.8.3.so libtdomstub0.8.3.a
rm -f *.o core *.core
test -z "pkgIndex.tcl tcldomsh" || rm -f pkgIndex.tcl tcldomsh
root@debian:/usr/local/src/tDOM-0.8.3/unix# ../configure --enable-threads --disable-tdomalloc \

--prefix=/usr/local/aolserver --with-tcl=/usr/local/bin
checking for correct TEA configuration... ok (TEA 3.6)
checking for Tcl configuration... configure: error: /usr/local/bin directory doesn't contain tclConfig.sh
root@debian:/usr/local/src/tDOM-0.8.3/unix#
root@debian:/usr/local/src/tDOM-0.8.3/unix#
root@debian:/usr/local/src/tDOM-0.8.3/unix# ../configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver --with-tcl=/usr/local/
checking for correct TEA configuration... ok (TEA 3.6)
checking for Tcl configuration... configure: error: /usr/local/ directory doesn't contain tclConfig.sh
root@debian:/usr/local/src/tDOM-0.8.3/unix#
root@debian:/usr/local/src/tDOM-0.8.3/unix#
root@debian:/usr/local/src/tDOM-0.8.3/unix# ../configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver --with-tcl=/usr/local/lib
checking for correct TEA configuration... ok (TEA 3.6)
checking for Tcl configuration... found /usr/local/lib/tclConfig.sh
checking for existence of /usr/local/lib/tclConfig.sh... loading
configure: --exec-prefix defaulting to TCL_EXEC_PREFIX /usr/local
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking whether make sets $(MAKE)... yes
checking for ranlib... ranlib
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking if the compiler understands -pipe... yes
checking whether byte ordering is bigendian... no
checking for sin... no
checking for main in -lieee... yes
checking for main in -linet... no
checking net/errno.h usability... no
checking net/errno.h presence... no
checking for net/errno.h... no
checking for connect... yes
checking for gethostbyname... yes
checking dirent.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking values.h usability... yes
checking values.h presence... yes
checking for values.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for memmove... yes
checking for bcopy... yes
checking for AOLserver configuration... none found
checking for Tcl public headers... /usr/local/aolserver/include
checking for pthread_mutex_init in -lpthread... yes
checking for building with threads... yes (default)
checking how to build libraries... shared
checking if 64bit support is requested... no
checking if 64bit Sparc VIS support is requested... no
checking system version... Linux-2.6.32-5-amd64
checking for dlopen in -ldl... yes
checking for ar... ar
checking for required early compiler flags... _LARGEFILE64_SOURCE
checking for 64-bit integer type... using long
checking for build with symbols... no
checking for tclsh... /usr/local/bin/tclsh8.4
checking whether to enable dtd support... yes
checking whether to enable namespace support... yes
checking whether to enable built-in unknown command... no
checking whether to enable tDOMs block allocator... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating tdomConfig.sh
root@debian:/usr/local/src/tDOM-0.8.3/unix#
FINALLY... I got to fix the XML issue. I did 2 things..

I got tdom from

And build (the same as I was doing before):

./configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver --exec-prefix=/usr/local/aolserver --with-aolserver=/usr/local/aolserver --with-tcl=/usr/local/lib
make
make install

Then I installed xotcl 1.6.0 which I was missing... and I think THIS WAS MY REAL PROBLEM...

wget http://media.wu-wien.ac.at/download/xotcl-1.6.0.tar.gz
tar xvfz xotcl-1.6.0.tar.gz
cd xotcl-1.6.0/
export CC=gcc
./configure --enable-threads --enable-symbols --prefix=/usr/local/aolserver --exec-prefix=/user/local/aolserver --with-tcl=/usr/local/lib
make
make install

And then I got rid of the XML error.

THANKS JIM ET ALL (until my next problem...but next one is going to be a new post)