Documentation

Prerequisites

To install RPMDE v1.0 you will require the following:

  • Apache 2.x with mod_perl 2.0
  • Perl 5.8.x
  • mySQL 3.23 or later (earlier versions may work as well)
  • A good understanding of Linux!
The front-end server also requires a working ftp server.  The back-end build daemon uses the ftp protocol for downloading sources, patches and spec files.

The back-end requires the setup of at least one chroot environment.  See the specific installation instructions for the build daemon for more information on this subject.

Setup the Database

The first real step is setting up the database to house the RPMDE information.  Follow these steps:

cd rpmde-release-1.0/rpmde-1.0/database

mysql -e "create database rpmde"

mysql -e "GRANT select,insert,update,delete ON rpmde.* TO rpmde@localhost IDENTIFIED BY 'PASSWORD'"

mysql -e "GRANT select,insert,update,delete ON rpmde.* TO rpmde@BUILD_SERVER_HOST  IDENTIFIED BY 'PASSWORD'"

mysql -e "FLUSH PRIVILEGES"
mysql -urpmde -pPASSWORD rpmde < rpmde.sql

The database only needs to be setup on the server that is housing the front-end web interface.

The BUILD_SERVER_HOST text above should be replaced with the hostname or IP address of the build server.

Configure Common Modules

Next, we need to configure the common modules to access the database.

cd rpmde-release-1.0/common-modules-1.0/Kaizen/RPMDE

In this directory you will find a find called DBI.pm. Using your favorite editor change the following line to match your database settings.

__PACKAGE__->set_db('Main', 'dbi:mysql:DATABASENAME:HOSTNAME', 'USERNAME', 'PASSWORD'); 

Each server running an aspect of the RPMDE (front or back end) require a copy of the common modules to be installed.  Be sure to configure the HOSTNAME appropriately for each copy.

Install Perl Modules from CPAN

There are some additional perl modules that need to be installed now.  Achieve this with the following:

perl -MCPAN -eshell
install MODULE_NAME 

Different modules are required for the front-end and back-end.  Here's the list of required modules for each system.

Class::DBI::mysql
Class::DBI::Plugin::RetrieveAll
Class::DBI::Plugin::CountSearch
Class::DBI::AbstractSearch
HTML::Template
Mail::Sender
CGI::Cookie
Log::LogLite
Date::Calc
Time::Piece
Math::Round
File::Find
Net::FTP
Digest::MD5
Parse::PlainConfig 

Class::DBI::mysql
Class::DBI::Plugin::RetrieveAll
Class::DBI::Plugin::CountSearch
Class::DBI::AbstractSearch
Log::LogLite
IO::Handle
Net::FTP
Digest::MD5
Time::Piece
File::Copy