The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Myco::Admin - myco System Administration Guide.

DESCRIPTION

This guide is intended for the system administrator in charge of installing, configuring, or tuning a myco system.

QUICK INSTALLATION

Follow these instructions to install myco without having to think about anything.

  1. Install Perl 5.6.1 or greater (5.8.2 or later strongly recommended - 5.8.0 has known issues with tie and should be avoided.

  2. Install PostgreSQL 7.1 or greater.

  3. Install myco -- As root, use the CPAN module to install the myco framework perl modules plus all CPAN prerequisite modules.

     perl -MCPAN -e 'install Myco'

If you run into problems then read below for the details.

PACKAGES

The myco framework requires a lot of other components to be installed; here's a list of them:

  • Perl 5.6.1 (5.8.2 or later recommended)

  • Perl Modules:

    Bit::Vector
    Class::Accessor::Assert
    Class::Data::Inheritable
    Class::Inner
    Class::Tangram 1.57
    Config::General
    DBD::Pg
    DBI
    Data::Lazy 0.6
    Date::Calc
    Date::Manip
    Devel::StackTrace
    Devel::Symdump
    Digest::SHA1
    Error
    Exception::Class
    Locale::SubCountry
    Pod::Constants
    Set::Object 1.04
    Tangram 2.10
    Test::Unit
    WeakRef
  • PostgreSQL 7.1.3

INSTALLATION

Follow these instructions to prepare your system for myco.

Perl

The standard Perl installation should apply with no problems. If your system comes with a package manager (ex. Redhat Linux RPM, FreeBSD ports, etc.) then you can use that to install Perl.

Here is how to install Perl from source:

  • Download the Perl source tarball from http://www.perl.com.

  • Gunzip and untar the sources.

  • Change to the source directory and execute these commands:

      sh Configure
      make
      make test
      make install

PostgreSQL

PostgreSQL is an integral part of myco: it's where all of your objects are stored! Its installation is pretty straight-forward and typical, but it requires a number of extra steps that one might not expect.

If you're using Redhat Linux you may already have Postgres installed. If so, all you need to do to get it ready for use with myco is edit your postgresql.conf file (run locate postgresql.conf or find / -name postgresql.conf -print to find it) and turn on the tcpip_socket option:

  tcpip_socket = true

Otherwise, here are the installation details:

  • Download the PostgreSQL source tarball from www.postgresql.org.

  • Gunzip and untar the sources.

  • Change into the source directory and read the INSTALL file to see if you need to use any Configure commands.

  • Install PostgreSQL:

      ./configure
      make
      make install
  • If the PostgreSQL installation did not create a user named "pgsql" for you, create it now. This is the user that will start the PostgreSQL server and own the log and data files. Certain platforms (i.e. various Linux distributions) may create another user to own and run the server process. On FreeBSD (our favourite platform), "pgsql" is the user. The following instructions were written with this in mind.

  • Now make a directory in which you want to keep your PostgreSQL databases, including the myco database. Make the "pgsql" user the owner of that directory.

      mkdir /var/db/pgsql
      mkdir /var/db/pgsql/data
      chown pgsql /var/db/pgsql/data

    and set the right permissions:

      chmod -R 0700 /var/db/pgsql/data
  • Initialize the PostgreSQL database. Be sure to pass the directory you just created to the -D command.

      su - pgsql -c "initdb -D /var/db/pgsql/data"
  • Start the PostgreSQL "postmaster". On FreeBSD this looks like so:

      /usr/local/etc/rc.d/pgsql.sh start

    If you start postgres this way, you'll need to set the PGDATA environment variable first:

      su - pgsql -c "export PGDATA=/var/db/pgsql/data"
  • Now create a postgres user for yourself.

      su - pgsql -c "createuser someuser"

    Be sure to enter the postrges username, password and database name into myco.conf. The Makefile.PL script included with myco will do this for you.

And now PostgreSQL is ready to go!

Note that only a little work is required to make myco compatible with MySQL and other Tangram-supported RDBMSs - notably changing PostreSQL-specific SQL directives passed to Tangram in various Entity attribute specifications. Formal myco releases may depend on the transaction support embedded in postgres and will not provide this support by default.

Myco.pm and required Perl Modules

There are quite a few 3rd-party Perl modules required by the myco framework (see "PACKAGES" above for a list). The easiest way to install them all, together with all myco framework modules (Myco.pm et al), is to let CPAN.pm take care of the process:

  perl -MCPAN -e 'install Myco'

If you have never before used the CPAN module then you will be prompted to go through configuration process. If your computer sits behind a firewall, setting the environment variable FTP_PASSIVE beforehand can be helpful:

 export FTP_PASSIVE=yes   # sh, bash
 setenv FTP_PASSIVE yes   # csh

See CPAN for more information.

Alternatively, the process may be performed "by hand." Manual installation of each of the required modules follows the usual perl module installation process:

  • Download the package sources.

  • Gunzip and untar the sources.

  • Change to the source directory and execute these commands:

      perl Makefile.PL
      make
      make test
      make install

Deploying the Database

Now you should myco-deploy the database, assuming you were successful in installing PostgreSQL. The CPAN installation method will have already done this for you, if you answered "yes" to the "Do you plan to run the test suite?" question.

  • Set the MYCO_ROOT environment variable to point to the directory (usually 'myco' or 'myco/framework') that contains the 'classes', 'test', 'bin', and 'conf' directories. Alternatively you can set it temporarily on the command line.

  • Change to the 'bin' directory, in the source directory, and run the 'myco-deploy' script:

      cd bin
      perl myco-deploy

    or, in csh:

      env MYCO_ROOT=~/myco perl myco-deploy

Your database should now be populated. Try running 'psql' or your favourite PostgreSQL client to inspect that its OK.

If you run into problems, send a note with as much information as possible to myco-users@lists.sourceforge.net

AUTHOR

Charles Owens <czbsd@cpan.org> and Ben Sommer <ben@mycohq.com>; based on Bric::Admin by David Wheeler

SEE ALSO

Myco, Myco::Entity