« Previous - Version 15/21 (diff) - Next » - Current version
Mark Donohoe, 04/30/2012 10:33 pm


Installing FOSSology on Debain

Packages for deb based distributions are available from different sources, depending on release. Consult the appropriate instructions below for the line to add to your /etc/apt/sources.list file.

Debian squeeze (currently stable)

FOSSology 2.0 debs, produced by the FOSSology team. These debs have not yet been submitted to debian upstream. Older versions of FOSSology are available from the debian and ubuntu repositories. To use the FOSSology produced debs add the line below to your /etc/apt/source.list file.

http://fossology.org/releases/2.0.0-rc1/Debian/squeeze/ 6.0 contrib

Single vs. Multi-system installs:

The FOSSology software has been split into separate packages by function and analysis agent in order to make it easy to add, update and install individual agents.

For a single system package install, (as root) type apt-get install fossology This will install all packages needed to run FOSSology on a single system.

For a cluster install, follow these steps (as root):
  1. Install the FOSSology server... db, web server, agents, etc...
    apt-get install fossology
  2. Install the "agent" systems where the analysis agents will run.
    apt-get install fossology-common fossology-buckets fossology-copyright fossology-delagent fossology-mimetype fossology-nomos fossology-pkgagent fossology-ununpack fossology-wgetagent
  3. edit fossology.conf & Db.conf on the server and copy to the agents
    Db.conf
    dbname=fossology;
    host=<server_hostname>;
    user=fossy;
    password=fossy;
    

    fossology.conf
    ; proxy settings that will be used by fossology agents
    ; examples:
    ;http_proxy = http://server:8080
    ;ftp_proxy = http://server:3128
    ;no_proxy = localhost,10.1.2.3
    

    [HOSTS]
    localhost = localhost /etc/fossology  10
    <agent1_hostname>= <agent1_hostname> /etc/fossology  10
    <agent2_hostname>= <agent2_hostname> /etc/fossology  10
    

    [REPOSITORY]
    <server_hostname>[] = * 00 55
    <agent1_hostname>[] = * 56 aa
    <agent2_hostname>[] = * ab ff
    

    Don't forget to copy these conf files to each of your agents!
  4. Make your repository available to the entire cluster. This is highly dependent on your storage and filesystem type. These instructions are for a distributed, nfs cross-mounted repository as per the [REPOSITORY] section of the fossology.conf file above.
    a) Cross-mount filesystems for your repository data on all systems (in this case, the 3 systems are server, agent1 & agent2) and create a link called localhost pointing to the host where it's created:
    root@server# ls -al
    total 20
    drwxrwx--- 5 fossy fossy 4096 Apr 12 15:58 .
    drwxrwx--- 3 fossy fossy 4096 Apr 10 15:12 ..
    drwxrws--- 3 fossy fossy 4096 Apr 10 13:27 agent1
    drwxrws--- 3 fossy fossy 4096 Apr 10 05:40 agent2
    lrwxrwxrwx 1 root  root     5 Apr 12 15:58 localhost -> server
    drwxrws--- 2 fossy fossy 4096 Apr 10 14:32 server
    

    root@agent1# ls -al
    total 20
    drwxrwx--- 5 fossy fossy 4096 Apr 12 15:58 .
    drwxrwx--- 3 fossy fossy 4096 Apr 10 15:12 ..
    drwxrws--- 3 fossy fossy 4096 Apr 10 13:27 agent1
    drwxrws--- 3 fossy fossy 4096 Apr 10 05:40 agent2
    lrwxrwxrwx 1 root  root     5 Apr 12 15:58 localhost -> agent1
    drwxrws--- 2 fossy fossy 4096 Apr 10 14:32 server
    

    root@agent2# ls -al
    total 20
    drwxrwx--- 5 fossy fossy 4096 Apr 12 15:58 .
    drwxrwx--- 3 fossy fossy 4096 Apr 10 15:12 ..
    drwxrws--- 3 fossy fossy 4096 Apr 10 13:27 agent1
    drwxrws--- 3 fossy fossy 4096 Apr 10 05:40 agent2
    lrwxrwxrwx 1 root  root     5 Apr 12 15:58 localhost -> agent2
    drwxrws--- 2 fossy fossy 4096 Apr 10 14:32 server
    

    Make sure your user:group is fossy:fossy and permission are 2770 on all systems in your cluster.
    b) Create repository sub-directories on all systems in the cluster and set permissions to 2770 (setgid bit on):
    cd localhost
    mkdir files gold logs ununpack wget
    chown -R fossy:fossy *
    chmod 2770 *
    
  5. Create & test ssh keys for user fossy
    a) Create SSH keys for the fossy user and distribute them on all hosts. The keys should NOT include a pass-phrase. (Since the scheduler cannot enter a password, a require pass-phrase will cause the remote execution to fail.)
    b) Test the keys (including accepting the server key for the first connection). You should be able to login without a password.
  6. Other configuration?
    a) postgresql?
    b) apache2?
    c) php?