Freeside:1.9:Documentation:InstallingUsingRPM
Contents
Introduction
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.
Information
The currently available packages are for the i386 and x86_64 architectures. The packages are built on CentOS 5 and currently tested on CentOS and RHEL 5. Packages for CentOS/RHEL 4 are no longer available.
Packagers for other distributions are welcome; see creating RPM repositories. You can also read about our own RPM build system.
Installing the RPM version of Freeside may not be a good idea if you plan to do development on Freeside as the RPMs may not include all the files supplied in the tarball.
Status
The RPM version of Freeside does not include Request Tracker at this time. The self-service RPM has not been fully tested. Both PostgreSQL and MySQL back-end databases should work. The version and release of the RPM are shown in the "Billing Main" page in Freeside.
Installation
RPM installation can preferably be done with a tool such as YUM or APT (or up2date on RHEL). As a last resort, you can install with RPM directly.
Installing using yum
Setup YUM
- If you are installing to a machine behind a proxy server, you may need to set up the proxy directives in /etc/yum.conf for yum to work correctly.
- Make sure the yum priorities plugin is installed by running
yum install yum-plugin-priorities
for CentOS v4, oryum install yum-priorities
for CentOS v5. - Make sure the yum priorities plugin is enabled by editing the
/etc/yum/pluginconf.d/priorities.conf
file, and ensuring that it contains the following lines:
[main] enabled=1
- Edit
/etc/yum.repso.d/CentOS-Base.repo
, adding the following lines to the [base] and [update] sections, and adding the [centosplus] section:
CentOS v4:
[base] exclude=php* httpd* postgres* MySQL* mysql* perl perl-DBD-MySQL perl-DBD-Pg perl-DBI perl-suidperl unixODBC* mod_auth_mysql mod_auth_pgsql mod_perl mod_perl-devel mod_ssl priority=1 [update] exclude=php* httpd* postgres* MySQL* mysql* perl perl-DBD-MySQL perl-DBD-Pg perl-DBI perl-suidperl unixODBC* mod_auth_mysql mod_auth_pgsql mod_perl mod_perl-devel mod_ssl priority=1 [centosplus] enabled=1 priority=2
CentOS v5:
[base] exclude=php* httpd* MySQL* mysql* perl perl-suidperl unixODBC* mod_auth_mysql mod_auth_pgsql mod_perl mod_perl-devel mod_ssl priority=1 [update] exclude=php* httpd* MySQL* mysql* perl perl-suidperl unixODBC* mod_auth_mysql mod_auth_pgsql mod_perl mod_perl-devel mod_ssl priority=1 [centosplus] enabled=1 priority=2
- Select a repository containing the required RPMs, and add the repository to a new file in your /etc/yum.repo.d directory or directly to the /etc/yum.conf file. If no such repository exists, you can create your own.
HEAD/1.9 testing repository
CentOS/RHEL v5 i386:#Packages used in Freeside [freeside] name=Freeside-5 baseurl=http://www.freeside.biz/~rsiddall/repo/centos/5/freeside-1.9/testing/i386 gpgcheck=1 enabled=1 priority=2 gpgkey=http://www.freeside.biz/~rsiddall/RPM-GPG-KEY-FreesideCentOS/RHEL v5 x86_64:
#Packages used in Freeside [freeside] name=Freeside-5 baseurl=http://www.freeside.biz/~rsiddall/repo/centos/5/freeside-1.9/testing/x86_64 gpgcheck=1 enabled=1 priority=2 gpgkey=http://www.freeside.biz/~rsiddall/RPM-GPG-KEY-Freeside
Install
- Install the required components by issuing the commands:
yum install httpd mod_perl mod_ssl perl postgresql-server yum install perl-File-Temp perl-CGI.pm perl-Test-Simple yum install freeside freeside-mason freeside-postgresql perl-Business-OnlinePayment-AuthorizeNet
with these changes:
- Replace posgresql with mysql if you wish to use MySQL instead of PostgreSQL for the main Freeside database.
- Replace AuthorizeNet with the name of the Business::OnlinePaymet module for the credit card gateway you wish to use.
- Add the RPM name of any additional Business::OnlinePayment gateways you wish to install.
At this point all the required components should be installed and the freeside user account created. You can now complete the installation.
Troubleshooting
- If you are using a repository that is normally disabled, use
yum --enablerepo=Freeside-4 install ...
where Freeside-4 is the name of the repository. - If you get an error such as:
Transaction Check Error: file /usr/share/man/man3/File::Temp.3pm.gz from install of perl-File-Temp-0.18-1 conflicts with file from package perl-5.8.8-4.el4s1
then you're using an operating system with a badly packaged Perl. You will have to force the installation of the RPM which conflicts with the Perl, using something like:
rpm -Uvh --force /var/cache/yum/freeside/packages/perl-File-Temp-0.18-1.x86_64.rpm
This installs the conflicting RPM from yum's cache for the "freeside" repository. You can then retry installing from yum.
Installing using up2date
Mainly for vanilla RHEL (tested on 4.5, 4.7); if you are running CentOS, the yum or apt-get instructions may be preferable.
Setup up2date
- Select a repository containing the required RPMs and add the repository to your /etc/sysconfig/rhn/sources file. If no such repository exists, you can create your own.
- Import GPG keys:
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4 rpm --import http://www.freeside.biz/~rsiddall/RPM-GPG-KEY-Freeside
HEAD/1.9 testing repository
(not yet available)
Install
- Install the required components by issuing the commands:
up2date httpd mod_perl mod_ssl perl postgresql-server tetex-latex perl-Digest-SHA1 perl-XML-Parser up2date perl-File-Temp #this will fail, that's okay for now rpm -Uvh --force /var/spool/up2date/perl-File-Temp-0.18-1.x86_64.rpm #to force File::Temp 0.18 installation, for now up2date freeside freeside-mason freeside-postgresql perl-Business-OnlinePayment-AuthorizeNet
with these changes:
- Replace posgresql with mysql if you wish to use MySQL instead of PostgreSQL for the main Freeside database.
- Replace AuthorizeNet with the name of the Business::OnlinePaymet module for the credit card gateway you wish to use.
- Add the RPM name of any additional Business::OnlinePayment gateways you wish to install.
At this point all the required components should be installed and the freeside user account created. You can now complete the installation.
Troubleshooting
- Does up2date show a "freeside" channel when doing
up2date --show-channels
, but won't install packages from that repository? Make sure/etc/sysconfig/rhn/up2date
has a line designating a blank proxy:
httpProxy=
Installing using APT
Setup APT
Select a repository containing the required RPMs and add the repository to your /etc/apt.conf file.. If no such repository exists, you can create your own.
HEAD/1.9 testing repository
(not yet available)
Install
- Install the required components by issuing the command:
apt-get install freeside freeside-mason freeside-postgresql perl-Business-OnlinePayment-AuthorizeNet
with these changes:
- Replace posgresql with mysql if you wish to use MySQL instead of PostgreSQL for the main Freeside database.
- Replace AuthorizeNet with the name of the Business::OnlinePaymet module for the credit card gateway you wish to use.
- Add the RPM name of any additional Business::OnlinePayment gateways you wish to install.
At this point all the required components should be installed and the freeside user account created. You can now complete the installation.
Installation using RPM
Installation is much easier if you have a repository that works with a tool such as yum, apt-get or up2date. If you only have rpm and wish to use that, enter:
rpm -Uvh --test freeside-1.9.0-1.noarch.rpm \ freeside-mason-1.9.0-1.noarch.rpm \ freeside-postgresql-1.9.0-1.noarch.rpm \ perl-Business-OnlinePayment-AuthorizeNet-3.17-1.i386.rpm
Where:
- 1.9.0-1 is the version of Freeside and the release of the RPM. Change this if necessary.
- postgresql is the database you wish to use as the Freeside back-end. Replace freeside-postgresql with freeside-mysql if you wish to use MySQL. See the main installation document for which databases are supported.
- Replace AuthorizeNet with the name of the credit card processor you wish to use for real-time transactions. Also replace 3.17-1.i386 with the current version, release, and architecture of the corresponding Business::OnlinePayment 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.
At this point all the required components should be installed and the freeside user account created. You can now complete the installation.
Finalizing the installation
- Start the database:
with PostgreSQL
chown -R postgres:postgres /var/lib/pgsql /sbin/service postgresql start
or with MySQL
/sbin/service mysqld start
- Allow the freeside user full access to the freeside database.
with PostgreSQL
$ su - postgres $ createuser -P freeside Enter password for user "freeside": Enter it again: Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) y Shall the new role be allowed to create more new roles? (y/n) n CREATE ROLE
or with MySQL:
$ mysqladmin -u root password 'set_a_root_database_password' $ mysql -u root -p mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP on freeside.* TO freeside@localhost IDENTIFIED BY 'set_a_freeside_database_password';
- Edit
/etc/freeside/secrets
and replace the third line (currently blank) with the password you entered in the last step.
- Add the freeside database to your database engine:
with Postgres:
$ su freeside $ createdb -E sql_ascii freeside
or with MySQL:
$ mysqladmin -u freeside -p create freeside
- As the freeside UNIX user, run
freeside-setup -d your.domain.name
to create the database tables and initial data.
$ su freeside $ freeside-setup -d example.com
- Create the Freeside system users:
$ su freeside $ freeside-adduser -g 1 fs_queue $ freeside-adduser -g 1 fs_daily $ freeside-adduser -g 1 fs_selfservice
- Create one or more Freeside users (your internal sales/tech folks, not customer accounts):
$ su freeside $ freeside-adduser -g 1 username $ htpasswd /etc/freeside/htpasswd username Password:
Additional users can be added using the same command or from the web interface.
-
/sbin/service freeside start
-
/sbin/service httpd restart
- Log into the web interface using the username and password you entered above.
- Now proceed to the initial administration of your installation.
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
Upgrading can be done with a tool such as YUM or APT (or up2date on RHEL), preferably, or as a last resort, with RPM directly.
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.
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.9.0-1.noarch.rpm freeside-mason-1.9.0-1.noarch.rpm freeside-postgresql-1.9.0-1.noarch.rpm
Finalizing the upgrade
- As the freeside UNIX user, run
freeside-upgrade username
, passing the username of an internal Freeside user. - If freeside-upgrade hangs, try stopping Apache, all Freeside processes, and anything else connected to your database, especially on older PostgreSQL versions.
- Restart Apache and Freeside:
/etc/init.d/httpd restart /etc/init.d/freeside restart
- You may want to check your ACLs under Configuration->Employee->View/Edit employee groups and grant some of the new rights to one or more groups.
Known issues
- yum will not automatically upgrade Perl modules bundled in the main Perl RPM to the newer versions on the Freeside repository due to the lack of version information in the main Perl RPM. (It cannot determine that the newer versions are newer.) So, you have to install them as a separate operation. This applies to the
perl-File-Temp perl-CGI.pm perl-Test-Simple
RPMs.
- ssh -X in as root and run system-config-securitylevel (can't seem to do this from -tui. may need to
yum install xauth xorg-x11-fonts-*
)- firewall options, open up www and secure www
- selinux options: enforcing -> permissive (otherwise freeside can't even create /etc/freeside/masondata/obj etc.)