Source Install

This document is designed to help you get FOSSology configured and ready
to use. Its intended audience is the system administrator who wants to
quickly get a local FOSSology instance up and running from source, or a distribution developer looking to create packages.

For other system administrator documentation, including where to download the source, see our System Administrator Documentation.

Short Installation Instructions

(In examples, # is as root, $ is mortal)
  1. If you have any old FOSSology installs you want to remove from the system you can run the fo-cleanold script
      # utils/fo-cleanold
    

    If you have an existing install that you want to transition, be sure to
    back up your repository, database, and config files before proceeding.
  2. Install dependencies
       # utils/fo-installdeps
    

    NOTE:This program requires the lsb_release command. On Debian based systems this is probably in the lsb-release package, on Fedora/RedHat systems it is probably the redhat-lsb package.
  3. Build FOSSology
    $ make

    If you want to do a non-standard build, see the file fossology/HACKING
  4. Install FOSSology
    # make install
  5. Configure and tune the system
  6. Run the postinstall script
    # /usr/local/lib/fossology/fo-postinstall
  7. login to FOSSology with the default fossy/fossy user and
    password and:
    1. create yourself a user with administrative privileges
    2. change the default password for user fossy
  8. Test that things are installed correctly
    # /usr/local/etc/fossology/mods-enabled/scheduler/agent/fo_scheduler -t
  9. Start the fossology scheduler daemon
    # /etc/init.d/fossology start

You're done, point your web browser at the new install
(http://yourhostname/repo/) and start using FOSSology!

Dependencies

We provide a script, fo-installdeps (see above), to install needed dependencies. FOSSology uses lots of different existing tools and software and expects to find them installed on the system.

  • For Debian nearly all packages can be found in main, unless you want
    the non-free version of unrar
  • For Ubuntu you will need a universe apt source setup
  • For RHEL you can find needed packages from EPEL
    (http://fedoraproject.org/wiki/EPEL) or rpm.pbone.net.

If fo-installdeps doesn't support the distro you are running (or fails
to install everything that's needed) please report a bug.

The fo-installdeps command provides output that can be helpful in
figuring out what dependent packages you will have to install either
from your distro or some other location.

The script, fo-installdeps itself will install the fossology core dependencies. Then every module, like scheduler, www, nomos, pkgagent, etc., will install any specific dependencies that they require with a script called mod_deps. For example, fossology/src/scheduler/mod_deps.

fo-postinstall

It is highly recommended that you run the fo-postinstall script. However,
you may want to know the details of what the script is doing. This may be out
of academic curiosity, or more likely because you may have to troubleshoot
something gone wrong.

  • Setting up Users and Groups
    You are expected to already have a "postgres" user as part of the
    system postgresql install, and a "www-data" user as part of the
    apache2 install. Note that some versions of Apache (like the one
    shipped with RHEL) use the user apache, not www-data. Whichever user
    your Apache uses, make sure that the user (www-data or apache) gets
    added to the "fossy" group.

FOSSology requires a system user and a system group both named
"fossy".

The /etc/passwd entries for these user should look
something like (Note: your uid & gid values may be different):

fossy:x:107:1002:fossology,,,:/srv/fossology:/bin/bash

and the /etc/group entry

fossy:x:1001:fossy,www-data

On a system with the useradd and groupadd commands (all LSB systems
including Debian, Fedora, etc) you can create the above system user
and group with the following commands as root:

groupadd fossy
useradd -c FOSSology -d /srv/fossology -g fossy -s /bin/false fossy

Alternatively, you can use the adduser command:
adduser --gecos "FOSSology" --home /srv/fossology --system --group fossy

You can see the rest of what fo-postinstall does in fossology/install/fo-postinstall.