Search · Index


Filtered by date 2017-06-18, 1 - 6 of 6 Postings (all, summary)

OpenACS Packaging for Debian and Ubuntu

Created by Dirk Gomez, last modified by Gustaf Neumann 18 Jun 2017, at 01:39 PM

This page is mostly obsolete. Please refer to the newer guides for Ubuntu and Debian or the generic generic installer script.


Get all required software to run OpenACS into the next release of Ubuntu Server and Debian 


  • Debian: Dates are not published. Release cycle ~2 years. The required packages mostly exist already in unstable
  • Ubuntu: Next Debian Import Freeze for the Hardy Heron (Ubuntu 8.04) release is December 13th 2007 at which point new versions of packages will be automatically imported from Debian unstable. After this date, packages will only be imported from Debian in this way by explicit request from a developer.

Prior Work 

As far as we know to this point, there are several bodies of work, including Dirk Gomez's, Jim Lynch's, and some others. While our goal is to combine, for now I'll just put a list and as we begin to work together, we'll combine how we decide to.

  • work of Jim Lynch
    • A pair of scripts and some other stuff available as an arch repository (see applicable documentation on gnu arch and below for specifics on this project). Essentially, the plan is to package by taking everything in an openacs tarball except the packages/ dir, put that into a package called openacs-base, put each openacs package into its own package whose name is specified in the .info file and make a metapackage called openacs-core which installs all of the above.
    • Overall, I want to be able to:
      • feed an openacs tarball to one of these scripts and have it then generate a pile of debian packages which represent the entire tarball, and
      • be able to package any openacs package that wouldn't otherwise come in (say) an openacs core tarball.
    • Upon installation, there will be a script which builds a service by copying all of core into a dir specified in part by the user and in part based on the service name. In this process, the config file and startup scripts are established as well as the daemontools "run" script. A database for the service is created, and the service is started. From there, the new site admin will visit the site with the browser, fill out the form and hit "install data model" as is normal, and you end up with a running service after aolserver is hammered.
    • All non-core packages can be built into debian packages as well, identically to the packaging of core packages.
    • To get: (HI! Can someone besides me (jiml at cvs.openacs) see if this works?)
      the archive's physical location is{archives}/

      the archive name (valid once you register the archive) is

      and the category, branch and version is specified as

      so you would feed the physical location to "tla register-archive", and then you can "tla get".
  • other work: [Debian%2fUbuntu_installer_developing] and [Debian%2fUbuntu_installation]
  • combination (eventual goal hopefully)

List of Packages

The following table list the packages, and version, needed to install OpenACS 5.3/5.4 or .LRN 2.3/2.4

 Package Version in debian/etch  Version in debian/sid (unstable) Recommended Version 
aolserver4  4.0.10-7 4.5.0-14 -- 
aolserver4-nspostgres  4.0-3 4.0-4+b1  --
aolserver4-nssha1  0.1-1 0.1-1.0.1  --
aolserver4-nsxml 1.5-1 1.5-1.0.1 NONE don't use nsxml
aolserver4-nsopenssl 3.0beta22-3 3.0beta22-3+b1 --
aolserver4-nscache 1.5-1 1.5-1.0.1 --
aolserver4-dev 4.0.10-7 4.5.0-14 --
tdom 0.7.8-5 N.A. 0.8.2 ??
htmldoc 1.8.27-2 1.8.27-2+b1 --
tcllib 1.8-1 1.10-dfsg-2 1.10
daemontools-installer 0.76-9.2 0.76-9.2 [contrib] --
postgresql-8.1 8.1.9 postgresql-8.1 (8.1.10-1) AND postgresql (8.2.5-4) I think Ubuntu has 8.2 now
postgresql-client-8.1 8.1.9
postgresql-client-8.1 (8.1.10-1) AND postgresql-client (8.2.5-4)
postgresql-contrib-8.1 8.1.9 postgresql-contrib-8.1 (8.1.10-1) AND postgresql-contrib (8.2.5-4) --
xotcl 1.6.0 1.6.1 1.6.1
tclthread 20030827-2 2.6.5 2.6.5


Verifying installability on Debian 4rc3 sid/unstable

Basic installation steps for oacs-5-4 based on Debian 4rc3 unstable/sid:



  1. Existing binary dependencies in Debian 4rc3 unstable/sid repository (Feb 26, 2008)
    ~$ aptitude install tcllib postgresql-8.2 aolserver4 aolserver4-nscache aolserver4-nssha1 aolserver4-nspostgres tclthread tcllib
  2. Missing binary dependencies in Debian 4rc3 unstable/sid repository (Feb 26, 2008: tdom 0.8.x, xotcl):

    a) tdom
    # build dependencies: tdom
    aptitude install tcl-dev aolserver4-dev
    # fetch tdom 0.8.3
    cd /tmp
    cvs -z3 co tdom
    cd tdom/unix
    # build tdom 0.8.3
    ../configure --enable-threads --disable-tdomalloc --prefix=/usr/lib/aolserver4 --exec-prefix=/usr/lib/aolserver4 --with-aolserver=/usr/include/aolserver4 --with-tcl=/usr/lib
    make install
    b) xotcl (based on forthcoming Debian distribution )
    # fetch temporary i386 builds from
    # package install
    dpkg -i xotcl_1.6.0-1_i386.deb
    dpkg -i aolserver4-xotcl_1.6.0-1_i386.deb
  3. OpenACS as such ...



useradd oacs-5-4 mkdir /home/oacs-5-4 chown -R oacs-5-4.www-data /home/oacs-5-4 usermod -g web oacs-5-4 usermod -d /home/oacs-5-4 oacs-5-4

cd /home/oacs-5-4 cvs -d co -r oacs-5-4 openacs-4 mv openacs4/* . su - postgres createuser -U postgres -s oacs-5-4 exit su - oacs-5-4 createdb -E UNICODE -U oacs-5-4 oacs-5-4

4. Set PostgreSQL backward compatibility flags (in postgresql.conf)

5. Whatever remains to be done (aolserver instance, edit config.tcl, ...)

Findings/ Issues related to dependency ensemble

  • Need for Debian OpenACS policy document?
    • config.tcl prototypes for debian/ubuntu (debian defaults might not be adequate, address and hostname settings etc.)
    • environment spec (user, group names, ...)
    • Distribution support roadmap
  • PostgreSQL version support / version parallelism in Debian 4rc3 sid/unstable and Ubuntu 8.04+. To some extend, there is flexibility with respect to the OpenACS compatibility roadmap (whatever it looks like in the near future). Both Debian sid/unstable and, therefore, Ubuntu preserve postgresql-8.x versions in parallel (including 8.1, 8.2, and more recently 8.3). Two issues remain:
    1. Debian sid/unstable sets older PostgreSQL 8.x versions (for now < 8.3) to deprecated and issues an upgrade notification upon fetching and installing. Ubuntu 8.04+ is more silent in this respect.
    2. PostgreSQL Compatibility flags: In either case, OpenACS package will have to change the backward-compatibility settings of the Debian PostgreSQL installation on the target system.
  • AOLServer deb installation (aolserver4 in Debian sid/unstable + Ubuntu 7.10 Gutsy): There is a permission issue in the post-installation routine of the aolserver4 package:

    ... Setting up aolserver4 (4.5.0-10ubuntu2) ... * Starting web server aolserver4 [21/Feb/2008:20:31:00][5197.3083830960][-main-] Notice: prebind: bound:    ...done. [21/Feb/2008:20:31:00][5198.3083830960][-main-] Error: log: failed to re-open log file '/var/log/aolserver4/aolserver4.log': 'Permission denied' [21/Feb/2008:20:31:00][5198.3083830960][-main-] Fatal: log: failed to open server log '/var/log/aolserver4/aolserver4.log': 'Permission denied' ...

    This only shows in post-installation phase, manual start|stop|restart work fine ... TODO: Verify again and report to package maintainer
  • aolserver4-nspostgres package: The issue with ns*.so and libns*.so files specific to Aolserver 4.5 has been resolved in the aolserver4-* family of packages:
    • In Debian sid/unstable: since version 4.5-1 on Jan 6, 2008
    • In Ubuntu 8.04 Hardy before the Feature Freeze, on December 12, 2007
    • Post 8.04 will import fixed version from Debian unstable (TODO: Verify with aolserver4-nspostgres maintainer)
    • Issue of backport to Gutsy (depending on Distribution support plan)

Resurrecting tDOM Debian Package

Access to Debian source package (via svn/svn-buildpackage)

  • SVN Browser at Debian Tcl/Tk Repository 
  • Steps to get your local working copy and build it using svn-buildpackage:

    # 1. svn checkout to <current_dir>/tdom svn co svn:// # 2. create a dir for the original tarballs mkdir tarballs (<current_dir>/tarballs) cd tarballs # grab the orig tarball from the link:


    mv tdom_0.8.3.orig.tar.gz?m=download tdom_0.8.3.orig.tar.gz

    # 3. make sure you have svn-buildpackage and pbuilder installed and set-up # 4. build binaries from source package on trunk cd ../tdom/trunk

    # When building the package, you have to use --svn-ignore when you have local changes that haven't been committed; otherwise you will get an error.

    svn-buildpackage --svn-builder="pdebuild --buildresult `pwd`/../build-area" --svn-override=origDir=../../tarballs --svn-ignore

    # voilà

    # When you're ready to see lintian warning/errors, add --svn-lintian to the build package command:

    svn-buildpackage --svn-builder="pdebuild --buildresult `pwd`/../build-area" --svn-override=origDir=../../tarballs --svn-ignore --svn-lintian

    # For linda warnings/erros, add --svn-linda to the build package command

    svn-buildpackage --svn-builder="pdebuild --buildresult `pwd`/../build-area" --svn-override=origDir=../../tarballs --svn-ignore --svn-linda

  • References on svn-buildpackage
  • Auxiliary stuff

    The orig file 

Issues of legacy source package

  • [Fixed] [carl] lintian warnings: "tdom: changelog should mention nmu"
    W: tdom source: changelog-should-mention-nmu
    W: tdom source: source-nmu-has-incorrect-version-number 0.8.3-1
    The maintainer should be Avni Khatri and Carl Blesius <>. Modify debian/changelog to reflect this. This has been fixed temporarily, but since a few us of will be committing, we will have to review the uploader/maintainer names later.
  • [Fixed] [avni] lintian warnings: "tdom: bad distribution in changes file"
    E: tdom_0.8.3-1_source.changes: bad-distribution-in-changes-file UNRELEASED
    modify debian/changelog: change UNRELEASED to unstable on line 1
  • [Fixed (local issue)][avni] lintian warnings: "tdom: directory pwd/../build-area does not exist"
    W: Build-result Directory pwd/../build-area does not exist
    Fix: To avoid using the --buildresult flag, you might put the following
    line into your ~/.pbuilderrc:


    (make sure you replace the "..." by your directory walk to the actual
    build-area dir)

  • [Fixed by geoxito] [avni] lintian warnings: "tdom: package-contains-empty-directory *"
    W: tdom: package-contains-empty-directory usr/bin/
    W: tdom: package-contains-empty-directory usr/sbin/
    the answer/ solution is simple. you have, simplisticly speaking, two ways of creating the "virtual" directory structures. By virtual, I refer to the the paths created under debian/tdom which then go into the binary (*.deb) packages. Either do it manually in the debian/rules file or use template files under debian. look at debian/dirs ... it contains two entries: usr/bin, usr/sbin ... voilà ... these are default settings, created the first time the original author debianized the package. but tdom is a so-called "internal library" package in debian jargon, there will never be anything in bin or sbin. so, simply remove the file or empty it!!!!
  • [Fixed] Which version to package: 0.8.2 / 0.8.3? it is going to be CVS Head/ 0.8.3
  • [Fixed] [geoxito] Installation paths not compliant with Debian Tcl/Tk policy
    and make sure that you change debian/rules etc. accordingly.
    Most importantly, tcl package reside under /usr/lib/tcltk and not /usr/lib/ directly.
  • [Fixed] [mr_calvin] Dedicated tdom-dev binary package. There needs to be a dedicated development binary package.
    1. Add tdom-dev entry in debian/control
    2. debian/rules needs to copy following files into tdom-dev paths:
    3. Btw. change the include path to /usr/include/tdom/*
      and subsequently change the path settings in through search/replace operations in debian/rules
      (see my xotcl examples in watch out for perl commands in there ...
  • [Fixed] [avni] Further lintian clean-up:

    > W: tdom: manpage-has-errors-from-man usr/share/man/man3/dom.3.gz  invalid option -wmac
    > W: tdom: manpage-has-errors-from-man usr/share/man/man3/domDoc.3.gz  invalid option -wmac
    > W: tdom: manpage-has-errors-from-man usr/share/man/man3/domNode.3.gz  invalid option -wmac
    > W: tdom: manpage-has-errors-from-man usr/share/man/man3/expat.3.gz  invalid option -wmac
    > W: tdom: manpage-has-errors-from-man usr/share/man/man3/expatapi.3.gz  invalid option -wmac
    > W: tdom: manpage-has-errors-from-man usr/share/man/man3/tdomcmd.3.gz  invalid option -wmac
    > W: tdom: manpage-has-errors-from-man usr/share/man/man3/tnc.3.gz  invalid option -wmac

    Fix: seems to be fixed now.
  • [Fixed] [mr_calvin] Expat integration: Using internal (expat 2.0.1 or 1.95) or external (1.95) libexpat (as provided by Debian); comment by Debian Tcl/Tk maintainers:
    "As far as I understand, the current version uses internal expat. I
    think it's unacceptable. We should use libexpat from Debian. An
    example of patches which allow to use system-wide expat could be found
    at svn://"
  • [Fixed] [geoxito] Create tdom-doc package if possible. Fix: Not really needed, because there is no other tdom documentation apart the manpages.


Installing packages


 These are instructions for installing the alpha dotlrn and openacs packages on debian (and ubuntu).

  1. Build and install tdom packages (see above, on "Resurrecting tdom").
  2. Set up a postgresql 8.2 server, and allow access for postgresql administrator user and openacs/dotlrn user from the machine where you are installing dotlrn/openacs (no need to create the dotlrn/openacs user and database).
  3. Modify your /etc/apt/sources.list file:

    # debian sid deb sid main # Ubuntu Hardy deb hardy main

  4. Update the package list and install:

    # apt-get update - dotLRN # apt-get install dotlrn

    - OpenACS # apt-get install openacs

 After that, just follow the instructions on the install ant have fun!

dotLRN - Ecommerce

Created by Caroline Meeks, last modified by Gustaf Neumann 18 Jun 2017, at 01:02 PM

Package specification Summary for package dotlrn-ecommerce

Summary: Package to tie the dotLRN, Ecommerce, Assessments and dotLRN Catalog packages together
Description: Package to tie the dotLRN, Ecommerce, Assessments and dotLRN Catalog packages together. Initially intended for the MOS and MGH projects, the goal is to create a reusable module for similar projects.
Maturity: New Submission or Maturity Unknown
This package depends on: dotlrn dotlrn-assessment dotlrn-attendance dotlrn-catalog wps-portlet ecommerce scholarship-fund
Packages that depend on dotlrn-ecommerce: None

Bug Tracker Summary for package dotlrn-ecommerce

There is no package with the name "dotlrn-ecommerce" known to bug-tracker.

Code Metrics Summary for package dotlrn-ecommerce

# Tcl Procs 68
# Tcl Lines 2581
# Automated Tests 4
# Stored Procedures PG: 0 ORA: 0
# SQL Lines PG: 0 ORA: 0
# ADP pages 115
# ADP lines 2395
# Include pages (dotlrn-ecommerce/lib/) 15
# Documentation pages 0
# Documentation lines 0
Source Not installed

Package: dotlrn Ecommerce

Description:  Integrates payment processing with course registration.

Release Info:

This is being used at Mass General Hospital [case study] and the Museum of Science

More information and a link to admin documentation can be found on the Solution Grove website

dotlrn-ecommerce provides event based email handling, to send email when  users request for a course is submitted, approved or rejected, etc. There is a proposal to generalize this at email-event-handling.

Directory of OpenACS Sites

Created by Caroline Meeks, last modified by Gustaf Neumann 18 Jun 2017, at 12:59 PM

Big Picture

The "Community" section of the OpenACS website still uses Edit This Page and has not been updated in years.  This proposal is to begin the work of updating it by replacing: an Edit This Page application, with a new package.  This package is expected to be an incremental improvement over the current page, and the current vision, and certainly the first iteration will not provide everything we might ever want to know about how OpenACS is being used.

To attract new developers we need to effectively communicate all the possibilities that can be created using OpenACS. One way to do this is to more effectively highlight existing sites.

You can add you comments to this page or the forum thread 

User Stories 

User Stories are a method of defining requirements by creating fictional users who might use the feature.

Mary - Developer considering OpenACS

 (see en:docs-eng part of en:openacs-handbook with document guidelines shaped by these requirements: en:docs-eng-reqs -Torben)

Sam - A developer who has just launched an OpenACS website

George - A current OpenACS developer who wants to see a package that he has never used in action on some existing sites 


This is a joint project between Solution Grove and Miguel Cordova of UNED.


Goals include:

  • This package is primarily a new UI for the existing functionality.
  • Improving the OpenACS Community and outreach to new developers.
  • Solution Grove is using this project as a means to give back more of our AJAX and Dynamic types experience the community.
  • Miguel Cordova is using the project to learn more about AJAX and OpenACS and he will work with his group at UNED to bring what he learns into dotLRN.
  • This package will provide a place on where people who are evaluating OpenACS can see that AJAX can be used with OpenACS without changing the user experience for current frequent users.
  • This package may be useful during sales for OpenACS vendors, including Solution Grove, to demonstrate the capabilities of our platform.
  • This package is an incremental improvement on the current Edit This Page page.  The goal is not to provide a complete solution to our desire to understand how users are using OpenACS.  However, the design should allow integration with any automated APM based solution that might be developed in the future.

The Plan

Step 1 - Use Dynamic types

Use dynamic-types and categories to create a data structure to collect metadata about OpenACS sites.  For details see Data entry screens.

Step 2 - Data Entry UI

Use an AJAX tabbed UI to collect the data

Tab 1 - Basic Information

  • Site Name - required
  • Description - required
  • site url
  • case study or video url
  • Type of site - Category list, allow multiple selections
    • Intranet
    • Extranet
    • Eccomerce
    • eLearning
    • Knowledge management
    • Content Management
  • Type of Organization - Category
    • Corporate
    • Nonprofit
    • Education Sector
    • Individual
  • Organization Location (someday we might do a google maps mashup for fun)
    • City
    • State
    • Country

Tab 2 - Technical Details

  • What functionality does this site provide - Category
    • Forums
    • FAQ
    • Chat
    • File storage
    • Bookmarks
    • Wiki
    • etc. we don't want to go quite down to the package level (eg we want forums not dotlrn-forums, forums, forums-applet)
  • If possible please provide direct links and descriptions to any interesting implementations of the above or custom functionality. Please indicate if your link is a good example of "out of the box" OpenACS functionality or customization. Both are useful. If your site requires login its great if you can provide a guest account or give an email where users can email if they would like access.
    • XINHA text input. I think we keep it simple here.
  • Companies that work on this site
    • Category list populated from our company list
    • Also "In House"
    • "Independent Contractor"
  • Languages used
  • What version of OpenACS kernel are you running? - Category list
  • When did you start development? - Date widget

Tab 3 - Additional Details

Data Entry 

Just as with the current Edit this Page Information will be entered voluntarily by site developers and owners who are  proud of their sites and wish to give back to the OpenACS community.  Only the most basic information will be required fields, everything else will be optional. 

The user who creates the entry should be able to edit it. In addition users with SWA will be able to edit information.  Undoubtedly information and links will get stale as they have in the current Edit This Page version.  The package should allow granting admin to a volunteer who could maintain information.

Search UI

The search UI should show off progressive enhancement. Functionality should include

 Filters based on categories

Tag cloud of the categories and full text search (example: library/search-categories )

Results grid with title, description, url, and other information. The url should have an image of the url when you mouse over it (look at a specific tag on and mouse over url for an example).

One Web Site Detail Page

We will also need a page for each entry where we attractively display all the information about the site.

When we list categories on this page (e.g. what features are used) these categories should be links and clicking on the link should take you back to the search interface with all other sites that have that category shown. 


  • This package is designed to be an AJAX showcase and make almost gratuitous use of AJAX.
  • The use of categories and dynamic types makes it easy to change pick options and data collected so we don't need to think too hard about these choices before we start.

More Bells and Whistles

 This is a brainstorming section, not all these ideas will be implemented

  • Notifications when a new site is added
  • Ratings with an AJAX drag your mouse over the stars interface
  • Views
  • "Hot Sites" include for the front page
  • Random featured site include for the front page.
  • Google map mashup with location and/or reverse lookup of IP
  • Mashup with something like Delicious, where we look up how often and with what tags the site has been bookmarked.
  • Integrate with RSS feeds from user tracking currently under development at UNED

Examples and Links

We are using YUI-ext. An example of what the panel UI looks like.

Tabs can be implemented in the panel interface. Tabs can also be implemented independently from the panel UI. Below is an example :

Scope Limitations

The proposed project is designed to replace one, out of date Edit This Page page.  The first iteration should be designed and developed with future features in mind but, by necessity it will not include all desired possibilities, nor will it solve all potential issues.

  • No changes to OpenACS core nor to any package that is included in dotLRN are currently anticipated.
  • It is not anticipated that many other OpenACS sites would want to use this exact package on their sites. The source code will be made available if people want to browse it.
  • This area will not be a very good demonstration area for Dynamic Types because we be exposing the web interface to change the dynamic types except to admin.  Creating a demonstration area for Dynamic Types is a good idea but a separate project. People interested in this might want to explore and talk with the folks at XArgs, its pretty cool stuff.
  • This proposal is not a beach head to put AJAX throughout, indeed it is intentionally putting AJAX demonstrations into a corner of the site that is not often used by day-to-day users  and into an area where we highlight the diversity of uses of OpenACS. It is a goal to continue to document how AJAX can be used in OpenACS.
  • Integration with contacts and replacing the company listing with contacts is not in scope of the first iteration but should be considered during development and anticipated in future iterations.
  • Automated connections to other sites is not included in the first iteration, however it is definitely something that should be considered during development and anticipated in future iterations.
  • Accessibility - Olga's points are noted and thoughtful discussion of this issue is in process
  • Maintainability -  Just as with the page it is replacing there will be maintenance issues. This is an area of the OpenACS where we gather information from humans who have developed OpenACS sites. Gathering information automatically is also a good idea, but it should be in addition to, not replace asking humans directly to describe their sites and to get insight into things like what makes this site cool, what is the purpose of this site, etc. Anything entered by humans will get stale and will need maintenance by admin. We can improve on the current version by displaying fresh sites near the top. Further mitigation ideas include a link for visitors to report out of date info or dead links, and/or automated link checking.




AOLserver administration

Created by OpenACS community, last modified by Gustaf Neumann 18 Jun 2017, at 12:52 PM

This page is mostly outdated and we keep it for a reference. For non-packaged installs on *nix systems, consider naviserver-openacs which supports systemd and upstart scripts.

Automating AOLserver startup and stop

The simplest way to start and stop and OpenACS site is to run the startup shell script provided in the OpenACS distribution, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run. This runs as a regular task, and logs to the logfile. To stop the site, kill the script.

A more stable way to run OpenACS is with a "keepalive" mechanism of some sort, so that whenever the server halts or is stopped for a reset, it restarts automatically. This is recommended for development and production servers.

The Reference Platform uses Daemontools to control AOLserver. A simpler method, using init, is next.

Configuring Daemontools

  1. Daemontools must already be installed. If not, install it.

  2. Each service controlled by daemontools must have a directory in /service. That directory must have a file called run. It works like this:

    • The init program starts every time the computer is booted.

    • A line in init's configuration file, /etc/inittab, tells init to run, and to restart if necessary, svscanboot.

    • svscanboot checks the directory /service every few seconds.

    • If it sees a subdirectory there, it looks for a file in the subdirectory called run. If it finds a run file, it creates a supervise process

    • supervise executes the run script. Whenever the run script stops, supervise executes it again. It also creates additional control files in the same directory.

    Hence, the AOLserver instance for your development server is started by the file /service/$OPENACS_SERVICE_NAME/run. But we use a symlink to make it easier to add and remove stuff from the /service, so the actual location is /var/lib/aolserver/$OPENACS_SERVICE_NAMEetc/daemontools/run.

    Daemontools creates additional files and directories to track status and log. A daemontools directory is included in the OpenACS tarball at /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools. To use it, first kill any existing AOLserver instances. As root, link the daemontools directory into the /service directory. Daemontools' svscan process checks this directory every five seconds, and will quickly execute run.

    [$OPENACS_SERVICE_NAME etc]$ killall nsd
    nsd: no process killed
    [$OPENACS_SERVICE_NAME etc]$ emacs /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run
    [$OPENACS_SERVICE_NAME etc]$ exit
    [root root]# ln -s /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run /service/$OPENACS_SERVICE_NAME/run

    Verify that AOLserver is running.

    [root root]# ps -auxw | grep nsd
    $OPENACS_SERVICE_NAME   5562 14.2  6.2 22436 15952 ?       S    11:55   0:04 /usr/local/aolserver/bin/nsd -it /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl -u serve
    root      5582  0.0  0.2  3276  628 pts/0    S    11:55   0:00 grep nsd
    [root root]#
  3. The user $OPENACS_SERVICE_NAME can now control the service $OPENACS_SERVICE_NAME with these commands:

    • svc -d /service/$OPENACS_SERVICE_NAME - Bring the server down

    • svc -u /service/$OPENACS_SERVICE_NAME - Start the server up and leave it in keepalive mode.

    • svc -o /service/$OPENACS_SERVICE_NAME - Start the server up once. Do not restart it if it stops.

    • svc -t /service/$OPENACS_SERVICE_NAME - Stop and immediately restart the server.

    • svc -k /service/$OPENACS_SERVICE_NAME - Sends the server a KILL signal. This is like KILL -9. AOLserver exits immediately. If svc -t fails to fully kill AOLserver, use this option. This does not take the server out of keepalive mode, so it should still bounce back up immediately.

  4. Install a script to automate the stopping and starting of AOLserver services via daemontools. You can then restart a service via restart-aolserver $OPENACS_SERVICE_NAME

    [root root]# cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/restart-aolserver-daemontools.txt /usr/local/bin/restart-aolserver
    [root root]# chmod 755 /usr/local/bin/restart-aolserver
    [root root]#
  5. At this point, these commands will work only for the root user. Grant permission for the web group to use svc commands on the $OPENACS_SERVICE_NAME server.

    [root root]# /usr/local/bin/svgroup web /service/$OPENACS_SERVICE_NAME
    [root root]#
  6. Verify that the controls work. You may want to tail -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME-error.log in another window, so you can see what happens when you type these commands.

    Most of this information comes from Tom Jackson's AOLserver+Daemontools Mini-HOWTO.

Table 6.1. How it Works

Program Invoked by this program ... ... using this file Where to find errors Log goes to Use these commands to control it
svscanboot init /etc/inittab ps -auxw | grep readproctitle n/a  
aolserver supervise (a child of svscanboot) /service/$OPENACS_SERVICE_NAME/run /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/error.log /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME.log svc -k /service/$OPENACS_SERVICE_NAME
postgresql Redhat init scripts during boot /etc/init.d/postgresql /usr/local/pgsql/data/server.log   service postgresql start (Red Hat), /etc/init.d/postgresql start (Debian)

init - keeping AOLserver alive

This is an alternative method for keeping the AOLserver process running. The recommended method is to run AOLserver supervised.

This step should be completed as root. This can break every service on your machine, so proceed with caution.

  • There are 2 general steps to getting this working.

    1. Install a script called restart-aolserver. This script doesn't actually restart AOLserver - it just kills it.

    2. Ask the OS to restart our service whenever it's not running. We do this by adding a line to /etc/inittab.

    Calling restart-aolserver kills our service. The OS notices that our service is not running, so it automatically restarts it. Thus, calling restart-aolserver effectively restarts our service.

  • This script needs to be SUID-root, which means that the script will run as root. This is necessary to ensure that the AOLserver processes are killed regardless of who owns them. However the script should be executable by the web group to ensure that the users updating the web page can use the script, but that general system users cannot run the script. You also need to have Perl installed and also a symbolic link to it in /usr/local/bin.

    [joeuser ~]$ su - 
    Password: ***********
    [root ~]# cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/restart-aolserver.txt /usr/local/bin/restart-aolserver
    [root ~]# chown root.web /usr/local/bin/restart-aolserver
    [root ~]# chmod 4750 /usr/local/bin/restart-aolserver
    [root ~]# ln -s /usr/bin/perl /usr/local/bin/perl
    [root ~]# exit
  • Test the restart-aolserver script. We'll first kill all running servers to clean the slate. Then, we'll start one server and use restart-aolserver to kill it. If it works, then there should be no more servers running. You should see the following lines.

    [joeuser ~]$ killall nsd
    nsd: no process killed
    [joeuser ~]$ /usr/local/aolserver/bin/nsd-postgres -t ~/var/lib/aolserver/service0/nsd.tcl
    [joeuser ~]$ restart-aolserver service0
    Killing 23727 
    [joeuser ~]$ killall nsd
    nsd: no process killed

    The number 23727 indicates the process id(s) (PIDs) of the processes being killed. It is important that no processes are killed by the second call to killall. If there are processes being killed, it means that the script is not working.

  • Assuming that the restart-aolserver script worked, login as root and open /etc/inittab for editing.

    [joeuser ~]$ su -
    Password: ************
    [root ~]# emacs -nw /etc/inittab
  • Copy this line into the bottom of the file as a template, making sure that the first field nss1 is unique.

    nss1:345:respawn:/usr/local/aolserver/bin/nsd-postgres -i -u nobody -g web -t /home/joeuser/var/lib/aolserver/service0/nsd.tcl
  • Important: Make sure there is a newline at the end of the file. If there is not a newline at the end of the file, the system may suffer catastrophic failures.

  • Still as root, enter the following command to re-initialize /etc/inittab.

    [root ~]# killall nsd    
    nsd: no process killed
    [root ~]# /sbin/init q
  • See if it worked by running the restart-aolserver script again.

    [root ~]# restart-aolserver service0
    Killing 23750

If processes were killed, congratulations, your server is now automated for startup and shutdown.

external monitoring of server uptime

starting aolserver before postgresql

Add a pause to the aolserver "run" script, for example:

    sleep 15

Alternately, John Sequeira suggests adding this code to the run script:

pid=`pidof -s postmaster`
while !([ $pid ] && /etc/init.d/postgresql status > /dev/null 2>&1)
pid=`pidof -s postmaster`
echo "checking...not yet"
sleep 1

run AOLserver on port 80 (or <1024) To run AOLserver on a port below 1024 (normally, for a webserver use port 80), edit the run script. /var/lib/aolserver/service0/etc/daemontools/run script according to the documentation found there (namely: Add the -b yourip:yourport switch)

Troubleshooting AOLserver

Check the serverlog 

To set up real-time monitoring of the AOLserver error log, from the shell, type

less /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/openacs-dev-error.log


F to show new log entries in real time (like tail -f)
C-c to stop and F to start it up again. 
G goes to the end.
? searches backward 
/ searches forward.  

Cannot view sample AOLserver welcome page There may be a problem with the server configuration. Start by viewing the AOLserver log, which is in /usr/local/aolserver/log/server.log. You should also try to find lines of the form:

[01/Jun/2000:12:11:20][5914.2051][-nssock-] Notice: nssock: listening on http://localhost.localdomain:8000 (
[01/Jun/2000:12:11:20][5914.2051][-nssock-] Notice: accepting connections

If you can find these lines, try entering the URL the server is listening on into your browser. If you cannot find these lines, there must be an error somewhere in the file. Search for lines beginning with the word Error instead of Notice.

The sample-config.tcl file grabs your address and hostname from your OS settings.

set hostname        [ns_info hostname]
set address         [ns_info address]

If you get an error that nssock can't get the requested address, you can set these manually. If you type, AOLserver will try to listen on all available addresses. Note: ns_info address doesn't appear to be supported in current versions of AOLserver.

set hostname        [ns_info hostname]
#set address         [ns_info address]
set address

NsTclInitObjs: sizeof(int) < sizeof(long) This is a 64-bit compile problem that keeps Aolserver from starting. An error detection check in file nsd/tclobj.c is causing the error, and needs to be commented out. Wrap the following code with the C style /* */ comments (as shown), then rebuild. See for more info.

    if (sizeof(int) < sizeof(long)) {
        Tcl_Panic("NsTclInitObjs: sizeof(int) < sizeof(long)");

Cannot view the OpenACS login or OpenACS Installation: Welcome page. View your error log (/var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME-error.log) to make sure the service is starting without any problems. The most common errors here are trying to start a port 80 server while not root, failing to connect because of a firewall, and aolserver failing to start due to permissions errors or missing files. If you need to make changes, don't forget to kill any running servers with killall nsd.

Modifying AOLserver configuration config.tcl

  • httpport - If you want your server on a different port, enter it here. The Reference Platform port is 8000, which is suitable for development use. Port 80 is the standard http port - it's the port used by your browser when you enter http://yourserver.test. So you should use port 80 for your production site.

  • httpsport - This is the port for https requests. The Reference Platform https port is 8443. If http port is set to 80, httpsport should be 143 to match the standard.

  • address - The IP address of the server. If you are hosting multiple IPs on one computer, this is the address specific to the web site. Each virtual server will ignore any requests directed at other addresses.

  • server - This is the keyword that, by convention, identifies the service. It is also used as part of the path for the service root, as the name of the user for running the service, as the name of the database, and in various dependent places. The Reference Platform uses $OPENACS_SERVICE_NAME.

  • db_name - In almost all cases, this can be kept as a reference to $server. If for some reason, the tablespace you are using is different than your servername, then you can set it here. You should have a good reason for doing this.

  • servername - This is just a *pretty* name for your server.

  • user_account - The account that will both own OpenACS files and connect to the database (for Postgresql).

  • debug - Set to true for a very verbose error log, including many lines for every page view, success or failure.

AOLserver is very configurable. These are some of the more commonly changed settings. For more options, read the AOLserver docs.

AOLserver command line


Installing OpenACS on win2k

Created by OpenACS community, last modified by Gustaf Neumann 18 Jun 2017, at 12:37 PM

by Matthew Burke and Curtis Galloway and others

NOTE: These instructions were valid for ACS v4, but have not been tested with OpenACS and the ArsDigita binary distributions are no longer available. Currently (Summer 2010), the best option to get OpenACS 5.6.* and .LRN 2.5.* running on Windows is to use the native windows installation Windows-OpenACS by Spazio IT (Maurizio Martignano).



With the recent release of a win32 version of AOLserver, it is now possible to run the OpenACS on Windows2000 and Windows98. This document explains the steps necessary to get the OpenACS installed and running on your machine.


We do not recommend running a production server on Windows98. But the platform is more than sufficient for working the problem sets  and for getting a feel for the OpenACS.

You'll need to use the ArsDigita binary distribution of AOLserver for the Win32 platform, which contains patches for several problems we have come across in the default AOLserver binary distribution. See the ArsDigita AOLserver 3 distribution page (from for details.

You can download the binary distribution from the ArsDigita download page (compliments of Eve Andersson) under "ArsDigita AOLserver 3 Binary Distribution for Win32." Please read the release notes in the distribution for configuration notes specific to the version you are downloading.


It is helpful if you have Oracle interMedia Text for full-text searches. We're also trying to make our system work with the PLS System, available free from

Although the zsh shell is the only command-line tool required to install the OpenACS, if you are a UNIX person used to typing ls instead of dir you'll get along much better with the Cygwin toolkit . This is a development library and set of tools that gives you a very UNIX-like environment under Windows. In particular, it includes bash, gzip and tar, which you can use to perform the OpenACS installation instead of WinZip and zsh.

Your Oracle installation

When you install Oracle, a good rule of thumb is "every default setting is wrong." We will not discuss Oracle configuration here except to mention that the OpenACS requires Oracle's NLS_DATE_FORMAT parameter be set to 'YYYY-MM-DD'. Fixing this depends on whether Oracle Administration Assistant for Windows NT (yes, that's Windows NT) will run on your machine or not (in some cases, it will complain about Microsoft Management Console not being installed).

If it runs on your machine, proceed as follows:

  1. Run Oracle Administration Assistant for Windows NT

  2. Navigate using the Explorer-style control in the left panel and select the Oracle Home for the database you wish to use.

  3. Bring up its properties dialog and add a parameter NLS_DATE_FORMAT with value 'YYYY-MM-DD' (without the quotes)

  4. Verify the date format by logging into the database using SQL Plus and run the following query: select sysdate from dual;

Otherwise you will need to perform a little registry surgery as follows:

  1. Run regedit and navigate down the registry keys to HKEY_LOCAL_MACHINE\Software\ORACLE.

  2. Choose the appropriate subtree; this will be HOME0 if you only have on einstallation of Oracle.

    If you are an Oracle achiever and have more than one Oracle installation on your machine, you will see HOME0, HOME1, HOME2, etc. Choose the subtree that corresponds to the Oracle installtion you wish to use with the OpenACS.


  3. If the NLS_DATE_FORMAT key is already present, double-click on its value and change it to 'YYYY-MM-DD' (without the quotes). If the key does not exist, choose Edit->New->String Value from the menu and type NLS_DATE_FORMAT for the name of the new value to create it. Then double-click on the empty value to change it.

  4. Verify the date format by logging into the database using SQL Plus and run the following query: select sysdate from dual;

For more information on Oracle configuration look at oracle-install or search the OpenACS forums. One other note: the "nuke a user" admin page and Intermedia won't run unless you set open_cursors = 500 for your database.

The ArsDigita binary installation

Extract the ArsDigita AOLserver distribution onto the C: drive into the default aol30 directory. You can install it on any drive, but it will make your life easier if you keep the AOLserver binary and your OpenACS instance on the same drive. For the rest of these instructions, we'll assume that you used drive C:.

Untar the OpenACS

We recommend rooting webserver content in c:\web. Since most servers these days are expected to run multiple services from multiple IP addresses, each server gets a subdirectory from c:\web. For example, would be rooted at c:\web\scorecard on one of our machines and if were on the same box then it would be at c:\web\jobdirect.

For the sake of argument, we're going to assume that your service is called "yourdomain", is going to be at and is rooted at c:\web\yourdomain in the Windows 2000 file system. Note that you'll find our definitions files starting out with "".

  • download the OpenACS (see above) into c:\temp\acs.tar.gz

  • use WinZip (or equivalent) to extract the files to c:\web\yourdomain

You'll now find that c:\web\yourdomain\www contains the document root and c:\web\yourdomain\tcl contains Tcl scripts that are loaded when the AOLserver starts up.

Feeding Oracle the Data Model

The entire server will behave in an unhappy manner if it connects to Oracle and finds that, for example, the users table does not exist. Thus you need to connect to Oracle as whatever user the AOLserver will connect as, and feed Oracle the table definitions.

  • load the states, country_codes and counties tables using the load-geo-tables shell script in the c:\web\yourdomain\www\install directory. You will need to open a console window and run

    zsh load-geo-tables foo/foopassword

    You most likely will see a slew of "Commit point reached . . . " messages. This does not indicate a problem.

  • cd to c:\web\yourdomain\www\doc\sql and feed Oracle the .sql files that you find there. There is a meta-loader file, load-data-model.sql, that includes the other files in the proper order. To use it, open a console window and run

    sqlplus foo/foopassword < load-data-model.sql
  • If you have interMedia installed, while still in c:\web\yourdomain\www\doc\sql, run

    zsh load-site-wide-search foo foopassword ctxsys-password

    Note that there's no slash between foo and foopassword here. The third argument, ctxsys-password, is the password for interMedia Text's special ctxsys user.

Configuring AOLserver

You will need two configuration files. The first is a Tcl file with configuration information for AOLserver. This should be called yourdomain and should be located in c:\aolserve3_0. The second is an .ini file that configures the OpenACS and is discussed below. Note that pathnames in yourdomain must use forward slashes rather than the Windows back slashes. This is also true for the .ini file.

The following items must be defined in yourdomain:

  • three database pools: main, subquery, and log. They must be named as such. The default pool will be "main".

  • the auxconfig directory which contains the .ini file: c:\web\yourdomain\parameters

  • the pageroot: c:\web\yourdomain\www

  • the directory containing the TclLibrary: c:\web\yourdomain\tcl

You can use our template file as a starting point (you'll need to save this file with a rather than .txt extension).

Configuring OpenACS itself

If you want a system that works, go to c:\web\yourdomain\parameters and copy ad.ini to yourdomain.ini (or any other name different from ad.ini). You don't actually have to delete ad.ini.

Each section of yourdomain.ini has a hardcoded "yourservername" in the name (e.g. [ns/server/yourservername/acs]). This means that the OpenACS will ignore your configuration settings unless your AOLserver name happens to be "yourservername". Therefore you must go through yourdomain.ini and change "yourservername" to whatever you're calling this particular AOLserver (look at the server name in the nsd file for a reference).

Unless you want pages that advertise a community called "Yourdomain Network" owned by "", you'll probably want to edit the text of yourdomain.ini to change system-wide parameters. If you want to see how some of these are used, a good place to look is c:\web\yourdomain\tcl\ad-defs. The Tcl function, ad_parameter, is used to grab parameter values from the .ini file.

Starting the Service

Now you're ready to start things up. Before installing as a Windows service, you might want to test the setup for configuration errors. Open up a console window and go to c:\aol30. Then run

bin\nsd -ft yourdomain.tcl

This will print all the AOLserver messages to the console so you can see them.

Try to connect to your new server with a web browser. If you see the message "Error in serving group pages", you probably forgot to copy the ad.ini file in c:\web\yourdomain\parameters If everything seems ok, you can kill the server with Control-c and then issue the following command to install as a Windows service:

bin\nsd -I -s yourdomain -t yourdomain.tcl

You can now configure error recovery and other Windows aspects of the service from the Services control panel. If you make further changes to yourdomain or yourdomain.ini you should stop and start the service from the Services control panel.

Configuring Permissions

Now, you need to protect the proper administration directories of the OpenACS. You decide the policy although we recommend requiring the admin directories be accessible only via an SSL connection. Here are the directories to consider protecting:

  • /doc (or at least /doc/sql/ since some AOLserver configurations will allow a user to execute SQL files)

  • /admin

  • any private admin dirs for a module you might have written that are not underneath the /admin directory

Adding Yourself as a User and Making Yourself a Sysadmin

OpenACS will define two users: system and anonymous. It will also define a user group of system administrators. You'll want to add yourself as a user (at /register/ ) and then add yourself as as member of the site-wide administration group. Start by logging out as yourself and logging in as the system user (email of "system"). Change the system user's password. Visit the directory and add your personal user as a site-wide administrator. Now you're bootstrapped!

If you do not know what the system user's password is connect to Oracle using SQL Plus and run the following query:

select password from users where last_name = 'system';

Where to Find What

A few pointers:

  • the /register directory contains the login and registration scripts. You can easily redirect someone to /register/index to have them login or register.

  • the /pvt directory is for user-specific pages. They can only be accessed by people who have logged in.

Making sure that it works

Run the acceptance tests in /doc/acceptance-test

Running Multiple Instances of the OpenACS

You can run multiple instances of the OpenACS on a physical machine but they must each be set up as a separate Windows service. Each instance of the OpenACS must have its own:

  • Oracle tablespace and a user account with the appropriate permissions on that tablespace. Each of these tablespaces must have the OpenACS data model loaded.

  • file with the appropriate settings including server name, auxconfig, ipaddress, and port.

  • Copy of the acs files in an appropriate directory under c:\web.

Suppose you wish to run two services: and You would need the following:

  • an Oracle tablespace, lintcollectors with a user lintcollectors and password secretlint

  • an Oracle tablespace, iguanasdirect with a user iguanasdirect and password secretiguanas

For each of these tablespaces/users you would load the OpenACS data model as described above. Then in c:\aolserver3_0 create files for each service, i.e. lintcollectors and iguanasdirect. These files would point to their respective pageroots, c:\web\lintcollectors\www and c:\web\iguanasdirect\www; their respective auxconfigdirs, c:\web\lintcollectors\parameters and c:\web\iguanasdirect\parameters; etc. In the respective auxconfigdirs would be the files lintcollectors.ini and iguanasdirect.ini.

Now open a console window and go to c:\aol30. You'll start up the two services as follows:

bin\nsd -I -s lintcollectors -t lintcollectors.tcl
bin\nsd -I -s iguanasdirect -t iguanasdirect.tcl

In the services control panel you should see two services: AOLserver-lintcollectors and AOLserver-iguanasdirect.


Plataforma Elearning

Created by Geovanni Hernandez, last modified by Gustaf Neumann 18 Jun 2017, at 12:32 PM

  • Plataformas Elearning

Se denominador  Aprendizaje electrónico (Also Conocido Como e-learning ) a la Educación a Distancia virtualizada A Traves de canales Electrónicos (Las Nuevas Redes de Comunicación, en especial Internet ), utilizando párr Ello Herramientas o Aplicaciones de hipertexto ( Correo electrónico , paginas web , Foros de Discusión , Mensajería Instantánea , Plataformas de Formación, Entre Otras) Como Soporte de los Procesos de Enseñanza-Aprendizaje. En un Concepto Más relacionado con lo semipresencial, tambien es Llamado b-learning ( blended learning ). 1

El b-learning Es Una modalidad Que Combina la Educación a Distancia y la Educación presencial, Retomando las Ventajas de Ambas Modalidades Y complementando EL APRENDIZAJE de los aprendices.

Also Florerias definirse Como un Sistema BASADO en la Comunicación Masiva y bidireccional Que sustituye la interaction personal en el aula del profesor y alumno, Como medio preferente de Enseñanza, Por La Acción Sistemática y Conjunta de Recursos Didácticos DIVERSOS y El Apoyo De Una organization tutorial, Que PROMUEVE EL APRENDIZAJE AUTONOMO de los Estudiantes, ademas de Reforzar La de habilidad de la Comunicación Efectiva Con Los Participantes A Traves De Las Plataformas implementadas.

  del consiste en la Educación y Capacitación through Internet. Este tipo de Enseñanza en línea permite la         interaction del usuario con el material el Mediante la utilizacion de Diversas Herramientas informáticas.

Este nuevo Concepto educativo Es Una revolucionaria modalidad de Capacitación Que posibilitó Internet, Y Que hoy se posiciona de Como La forma predominante de Capacitación En El Futuro. Este Sistema ha transformado la Educación, Abriendo Puertas al Aprendizaje individuo y organizacional. Es por Ello Que hoy en día this ocupando ONU Lugar Cada Vez Más destacado y reconocido Dentro de las Organizaciones Empresariales y Educativas.

Sigue un "Geovanni Hernández"

English Translation

E-learning is denominator (Also known as e-learning) to Distance Education virtualized through electronic channels (The new communication networks, especially the Internet) using para This Tools or Applications hypertext (E-mail, web pages, Discussion forums, Instant Messaging, Platforms Training, among others) and support the teaching and learning processes. In a concept more related to what blended learning, also called b-learning (blended learning). 1

The b-learning is a modality that combines distance education and classroom education, taking up the advantages of both modalities and complementing LEARNING apprentices.

Also Florist defined as a system based on the Mass and two-way communication system that replaces personal interaction in the classroom of teacher and student, as preferred means of education, the systematic and Joint DIFFERENT Resource Action and support of a tutorial organization, that promotes learning AUTONOMO of Students, in addition to strengthening skill of effective communication with participants through platforms implemented.

  It consists of the Education and Training through Internet. This type of online education allows user interaction with the material By using various tools.

This new educational concept is a revolutionary form of training enabled Internet, and today is positioned as the predominant form of future training. This system has transformed Education, Abriendo Puertas to individual and organizational learning. That is why today esta un Lugar occupying increasingly prominent and recognized within business and educational organizations.

Previous Month June 2017 Next Month
Sun Mon Tue Wed Thu Fri Sat
28 29 30 31 (3) 1 (3) 2 3
4 5 (2) 6 (7) 7 8 9 10
(1) 11 12 (4) 13 14 (1) 15 (4) 16 (4) 17
(6) 18 19 (2) 20 21 (2) 22 (1) 23 (5) 24
25 26 27 (1) 28 (33) 29 (47) 30 1

Popular tags

17 , 5.9.0 , 5.9.1 , ad_form , ADP , ajax , aolserver , asynchronous , bgdelivery , bootstrap , bugtracker , CentOS , COMET , CSP , CSRF , cvs , debian , emacs , engineering-standards , fedora , FreeBSD , guidelines , host-node-map , hstore , includelets , install , installation , installers , install-ns , javascript
No registered users in community xowiki
in last 30 minutes