LAST UPDATE June 16, 2003

On this page we describe the experiences of the Simon Fraser group setting up UPS/UPD databases on a RedHat 9.0 machine in June 2003. The goal was to install D0 Software (D0RunII product) and so the datbases are tailored for that type of installation.

REFERENCES

SETTING UP UPS/UPD

This should look a lot like http://www-d0.fnal.gov/software/cmgt/install_ups.html but is perhaps more up-to-date.

  1. register your machine to download paqckages from the central fermilab servers by filling out the form at: http://computing.fnal.gov/forms/upd_registration.html
  2. download ups/upd bootstrap RPMS from fermi-linux 9.0 server You will need two RPMS: upsupdbootstrap-2.2-8.i386.rpm upsupdbootstrap-generic-2.2-2.i386.rpm If you are using a different (older) version of redhat you can look under a very similar path replacing 90rolling with the appropriate fermilinux version. For convienience a copy of the RPMS are also available here upsupdbootstrap-2.2-8.i386.rpm and upsupdbootstrap-generic-2.2-2.i386.rpm .
  3. install upsupdbootstrap-2.2-8.i386.rpm. Edit /var/tmp/upsupdbootstrap/prd/bootstrap/v2_2/configs/generic to setup the databases you need. I have included my bootstrap_config.txt file here to show which ones I set up. These include a general FNAL products area /D0/ups, a D0-specific products area /D0/usr and a code distribution area /D0/dist.
    rpm -i upsupdbootstrap-2.2-8.i386.rpm
    cp bootstrap_config.txt /var/tmp/upsupdbootstrap/prd/bootstrap/v2_2/configs/generic
    
  4. install upsupdbootstrap-generic-2.2-2.i386.rpm. This is just a set of scripts which move everything to the right directories, etc.
    rpm -i upsupdbootstrap-generic-2.2-2.i386.rpm
    
  5. make permissions on /D0/* such that any member of the products group can write there. This saves you having to become user "products" to do any installations.
     
      chown -R products.products /D0
      chmod -R g+w /D0
    
  6. edit upd configuration to make upd aware of your 3 different databases (/D0/ups, /D0/usr/, /D0/dist). A version of /D0/ups/db/.updfiles/updconfig is provided here. This sets things up to automatically put D0RunII and D0RunII-bin products in the /d0dist/dist/releases area and defines default location rules for other products as well. This also sets things up so that any member of the "products" group can write to any new area created by the installation of any given package (stolen from clued0 version).
    cp updconfig /D0/ups/db/.updfiles/updconfig
    
  7. Make sure all three databases use this same updconfig. You can edit your ups configuration such that all three of your databases (/D0/ups, /D0/dist and /D0/usr) use the same updconfig file. Copies of my dist ups config and ups ups config and usr ups config.
    cp usr-ups-dbconfig /D0/usr/db/.upsfiles/dbconfig
    cp dist-ups-dbconfig /D0/dist/db/.upsfiles/dbconfig
    
  8. make some softlinks. So far we have /D0/ups, /D0/dist and /D0/usr. We also want /d0dist/dist to point to /D0/dist /d0usr to point to /D0/usr Do this by creating softlinks in your root directory. As root
       cd
       mkdir d0dist
       cd d0dist
       ln -s /D0/dist dist
       cd
       ln -s /D0/usr d0usr
      
    OK, ups/upd is now set up. Next you need to ensure that users typing "setup" get the ups/upd "setup" and not the system "setup". I suggest defining an alias either for yourself or for all users
    tcsh (alias in /etc/csh.cshrc)
    ----
    alias setup 'source /D0/ups/etc/setups.csh; source ups setup \!*'
    
    bash (function in /etc/bashrc)
    ----
    setup(){
       source /D0/ups/etc/setups.sh
       setup $@
           }
    
    This is cleaner than having the script sourced automatically whenever you login. Often the directory containing the UPS area is mounted from another machine and if it is down you still want to be able to login.

    Now you should be able to login, type "setup upd" and install some packages. I usually do a test listing of available versions of root

    upd list -a root
    
    and install one just to test that everything is ok eg.
    upd install root v3_05_04b -f Linux+2.4 -q GCC_3_1