Freeside:1.7:Documentation:InstallingUsingRPM

From Freeside
Revision as of 06:38, 9 July 2007 by Rsiddall (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Installing Freeside from RPMs

Warning!

The RPM installation of Freeside is experimental! The instructions below may be incomplete or incorrect and are subject to change. You should only attempt to use the RPM installation if you are prepared to work around omissions and inaccuracies, and can recover data in the event of a loss.

Introduction

RPM is a build-once, install-many package manager for system management. Originally for RedHat, it is now used on a wide range of Linux distros including Fedora, SUSE, etc. Well-structured RPMs include dependency information that RPM can use to warn you that additional components are required. Tools such as yum and apt-get (RPM version) can use this dependency information to download additional components from a repository and include them in the installation. This has the potential to make installing Freeside almost as easy as installing a Windows program. (Check the /install and /debian directories in the Freeside tarball for scripts and notes on installing on various distros.) Installing the RPM version of Freeside may not be a good idea if you plan to do development on Freeside. The RPMs may not include all the files supplied in the tarball.

Installation using RPM

Installation is much easier if you have a repository that works with a tool such as yum or apt-get. If you only have rpm and wish to use that, enter:

  rpm -Uvh --test freeside-1.5.7-1.noarch.rpm freeside-''interface''-1.5.7-1.noarch.rpm freeside-''backend''-1.5.7-1.noarch.rpm perl-Business-OnlinePayment-''processor-version''

Where:

  • interface is the web framework you wish to use for the Freeside interface (either mason or apacheasp). See the main installation document for which frameworks are supported.* backend is the database you wish to use as the Freeside back-end (either postgresql or mysql). See the main installation document for which databases are supported.
  • 1.5.7-1 is the version of Freeside and the release of the RPM.
  • processor is the credit card processor you wish to use for real-time transactions and version is the current version of the corresponding RPM.

The command should result in some warnings about unsatisfied dependencies. Find the corresponding RPMs and add them to the list on the command line. Keep doing this until the command results in no warnings, then issue the command one last time without the --test to actually install all the RPMs. Installing the freeside RPM will install the freeside-install command line utility that you can use to finish the installation.

Installing using yum

  • First, find a repository containing all the required RPMs. If no such repository exists, you can create your own.
  • Next, add the repository to your /etc/yum.repo.d directory or /etc/yum.conf file.
  • Finally, install the required components by issuing the command:
yum install freeside freeside-''interface'' freeside-''backend'' perl-Business-OnlinePayment-''processor''

At this point all the required components should be installed and the freeside user account created. You can now complete the installation with freeside-install.

Installing using APT

  • First, find a repository containing all the required RPMs. If no such repository exists, you can create your own.
  • Next, add the repository to your /etc/apt.conf file.
  • Finally, install the required components by issuing the command:
apt-get install freeside freeside-''interface'' freeside-''backend'' perl-Business-OnlinePayment-''processor''

At this point all the required components should be installed and the freeside user account created. You can now complete the installation with freeside-install.

Finishing the installation with freeside-install

RPM does little more than installing files and creating users. To allow automated installation and upgrading, well-structured RPMs may not interact with the user. Since part of the Freeside installation is interactive, at some future date a command line utility called freeside-install will be included in the RPM to help you complete the installation. For the moment, just work through the standard install, ignoring the steps which are done by the RPM, i.e. installing files and creating the freeside user. The RPM does not do any steps that require entry of a password, or which have to be done after a password is specified.

  • You can skip straight to "Allow the freeside user full access to the freeside database," but be aware that if there are errors in the RPM dependencies, then some of the prerequisites may not be installed.
  • Then "Add the freeside database to your database engine:"
  • Apache configuration is reduced to editing your httpd.conf file as specified in the last bullet point. (This will be automated in a later Freeside RPM.) You'll also have to modify httpd.conf to implement web interface security.* All the final steps to create the first Freeside user, setup the database, populate the message catalog, and start freeside-queued must be done by hand.
  • As with the usual install, you need to do initial administration after completing the install.

Creating your own repository

If you can't find an APT/yum repository for your operating system, you can create your own.

  • Create the Freeside RPMs:
wget freeside.tar.gz
tar zxvf freeside.tar.gz
cd freeside/contrib/rpm
rpmbuild -ba freeside.spec
  • Configure CPAN:
cpan
install Bundle::CPAN
  • Install Ovid:
cpan
install Ovid
quit
rpm -Uvh ovid.rpm
  • Use Ovid to create RPMs for all the Freeside dependencies you require:
ovid Bundle::HTML::Mason

or:

ovid Bundle::Apache::ASP
  • Use Ovid to create RPMs for the main Freeside dependencies:
cd freeside/contrib/rpm
cp Freeside.pm ~/.cpan/Bundle/
ovid Bundle::Freeside
  • Use Ovid to create RPMs for the main RT dependencies (if installing RT):
cd freeside/contrib/rpm
cp RT.pm ~/.cpan/Bundle/
ovid Bundle::RT ''(for optional RT installation)''
  • Fix up RPMs that did not build.
  • Fix up RPMs that have inadequate dependency information: perl-HTML-Mason-*.rpm
  • Copy all generated RPMs into your web server space:
cd /usr/src/redhat/RPMs/i386
mkdir /var/www/html/fedora/7/
cp *.rpm /var/www/html/fedora/7
  • Download any programs needed to build the repository. For newer, XML-based versions of yum, you'll need createrepo. If it's in a yum repository, this can be as simple as:
    yum install createrepo
  • Create the repository:
createrepo /var/www/html/fedora/7
  • Make sure the web server is started

At this point your web server is acting as a yum repository with a URL of http://localhost/fedora/7/ and you can proceed to install Freeside from the repository. On distros using older versions of yum (e.g. FC2 and earlier), you'll need to use yum-arch instead of createrepo to generate the repository metadata. yum-arch should be installed as part of the yum RPM, so there's no need to install another RPM.

Upgrading

Introduction

If you have an existing Freeside installation that was installed from the tarball, following the instructions for installing or upgrading from RPM may result in an operational system where the RPMs have overwritten most or all of the files installed from the tarball or CPAN.

Upgrading using RPM

When there's a new version of Freeside available as RPM, just download the new RPMs and upgrade them:
  rpm -Uvh --test freeside-1.5.7-1.noarch.rpm freeside-''interface''-1.5.7-1.noarch.rpm freeside-''backend''-1.5.7-1.noarch.rpm

Upgrading using a repository

If you installed the RPM version of Freeside from a repository, and a new version is available on the repository, then you can install the new files on your system using the package manager:

yum update

or:

apt-get update

To avoid unplanned upgrades, you may wish to mark the repository containing Freeside as disabled, or remove it from your yum or apt configuration files.

Finalizing the upgrade using freeside-install

This will not perform any database upgrades, so you should refer to the tarball upgrade documentation and do any database changes by hand. (A future version of freeside-install may be able to perform the database changes needed in an upgrade.)