TN0088

Files which you may be able to remove from /usr/local

CD/OSS
Applications Support


Background:

Prior to ups/upd v4.x, the Fermi User Environment (FUE) included a suite of utilities and binaries which were copied into /usr/local. The required FUE utilities, with a brief description of each, were:

Since the autumn of 1999, FUE has been redesigned utilizing the new features of ups v4.x. The goals of the redesign were:

  1. Remove "chicken and egg" installation problems.

  2. Allow ups/upd to be installed without 'root' privilege.

  3. Remove hard-coded path requirements so that other systems can install products wherever they wish (and therefore remove requirements of 'root' privelege where not needed).

  4. Take advantage of the shell-independence of ups table files to avoid shell-specific coding errors. This implies that we move from a mentality of "source /usr/local/etc/somescript" to a mindset where we always use setup:

    old method new method
    source /usr/local/etc/setups.csh
    # or . /usr/local/etc/setups.sh
    source /path/to/setups.csh
    # or . /path/to/setups.sh
    source /usr/local/etc/setpath.csh
    # or . /usr/local/etc/setpath.sh
    setup setpath
    source /usr/local/etc/fermi.login
    # or . /usr/local/etc/fermi.profile
    setup login
    source /usr/local/etc/fermi.cshrc
    # or . /usr/local/etc/fermi.shrc
    setup shrc
    /usr/local/bin/Info -new setup Info; Info -new

  5. Modularize the individual pieces for maintainability.

The redesign has been very successful, and is in use on all FUE-compliant systems installed since the autumn of 1999.


Upgrading an Older System

To clean up the vestiges of the old FUE, you must first upgrade to the new FUE -- ups/upd v4_0 or higher (we recommend v4_5 at this time (January 2000)), and systools v6_0 or higher (and all of its subsidiary products). You must also convert any existing accounts' login scripts to the new FUE syntax (replace calls to the Fermi files (previously in /usr/local/etc) with the appropriate ups initialization (setups.[c]sh) and "setup xxx"). See FUE Login Methology (tn0089) for details. For example:
typical old .login snippet:
   if ( -r /usr/local/etc/fermi.login ) then
       source /usr/local/etc/fermi.login
   endif
  
replaced by new .login snippet:
   if ( -f "/fnal/ups/etc/setups.csh" ) then
       source "/fnal/ups/etc/setups.csh"
       if ( { ups exist login } ) then
          setup login
       endif
   endif
   
typical old .cshrc snippet:
   if ( -r /usr/local/etc/fermi.cshrc ) then
       source /usr/local/etc/fermi.cshrc
   endif
  
replaced by new .cshrc snippet:
   if ( -f "/fnal/ups/etc/setups.csh" ) then
       source "/fnal/ups/etc/setups.csh"
   endif
   if ( { ups exist shrc } ) then
       setup shrc
   endif
   

systools v6_0 relies on a new product called template_home, which contains the templates for the login scripts which are given to new accounts via cmd adduser (one of the systools utilities). The template_home scripts use the new FUE syntax; therefore, all new accounts created via "cmd adduser" will have the new FUE syntax.

However, existing accounts' login scripts will need to be converted to use the new FUE syntax.

The template_home product includes documentation describing the required changes to login scripts.

Once you have converted existing login scripts you may begin to think about removing the old FUE files from /usr/local.


Files Which are No Longer Distributed on a FUE System

The following files are no longer distributed in /usr/local on a fully FUE compliant system using the latest software. You may consider removing them from your system, but you do so at your own risk.

GREAT BIG DISCLAIMER

We have converted our utilities so that they no longer look for or require the old files from /usr/local.

WE HAVE NO WAY OF DETERMINING IF OTHER SCRIPTS OR UTILITIES ON YOUR SYSTEM ARE USING THESE FILES..

We make no guarantees, warrantees, or promises; remove the files below at your own risk.

files from /usr/local/bin
file originally from... replaced by... notes
funame funkern ups ($UPS_DIR/bin/funame)  
dropit funkern ups ($UPS_DIR/bin/dropit)  
logdir, logage, logdata, loggid, logshell, loguid, loguser funkern included under the systools umbrella  
grpmembers, grpname, grpnumber funkern included under the systools umbrella  
addpath, delpath funkern   not supported at this time.
Info futil separate product Info  
obtain, getlock, getdate, cwi futil included under the systools umbrella  
telephone, tele futil separate product telephone  
stock futil separate product stock  
asp2, psnup futil separate product psutils  
flpr, flpq, flpk futil separate product flpr  
gzexe, gzip, gunzip futil separate product gtools  
findcpp futil   not supported at this time
less, less.help, lesskey futil   not supported at this time
lsof futil   not supported at this time
fpasswd futil   not supported at this time
namefix futil   not supported at this time
subm, subm.cron futil   not supported at this time
vt100 futil   not supported at this time
zap, zmore, zgrep, znew, zforce, zdiff, zcat futil   not supported at this time

files from /usr/local/etc
file originally from... replaced by... notes
fermi.profile, fermi.login systools   obsolete; use "setup login" instead
fermi.shrc, fermi.cshrc systools   obsolete; use "setup shrc" instead
stdmailrc, stdprofile, stdshrc, stdcshrc systools template_home ($TEMPLATE_HOME_DIR/dotfiles.localized/.mailrc, .profile, .shrc, .cshrc)  
setups.sh, setups.csh systools ups ($SETUPS_DIR/setups.sh, setups.csh) $SETUPS_DIR is a configurable parameter; on-site systems are requested to include "courtesty links" in /usr/local/etc for backwards compatibility
setpath.sh, setpath.csh systools new product setpath "setup setpath" will cause your PATH to be set to a reasonable starting value
stdXdefaults.* systools template_home ($TEMPLATE_HOME_DIR/dotfiles.localized/.Xdefaults)  

files from /usr/local/library/systools
file originally from... replaced by... notes
sys.env, greeting, functions, genpasswd, adduser, finduser, disuser, chguser, moduser, resetuser, addmember, delmember, deldata, chmod, shells, shell, clearaccounts, renice, vipw, vigr, kill, rm, echo systools cmdscripts ($CMDSCRIPTS_DIR/library/*) Use "ups convert systools" to convert your previous scripts to the new file layout before removing these scripts!
addlocal, dellocal systools   not supported at this time
addproduct, delproduct, modproduct systools upd  


Files Which are Still Distributed on a FUE System

The following files are still expected to be found in /usr/local on an on-site fully-compliant FUE system.

files still supported in /usr/local
file parent product technical details notes
/usr/local/etc/setups.[c]sh ups Symbolic links to the system-specific $SETUPS_DIR/setups.[c]sh scripts. These are referred to as the courtesy links. They are not required, but are strongly requested on all on-site nodes. They are for the convenience of the CD personnel who are called upon to assist on many different systems. The links are created once, and never need to be updated again.
/usr/local/bin/setup_and_run_perl (and /usr/local/bin/perl, /usr/local/bin/perl, /usr/local/bin/perlbug, /usr/local/bin/perldoc, /usr/local/bin/sperl, /usr/local/bin/suidperl) perl All links to the same file, setup_and_run_perl The /usr/local/bin/perl is what allows people to use #!/usr/bin/env perl in their scripts (for portability) and be able to run these scripts in environments where "setup" is not necessarily an option (e.g., cgi scripts). "setup_and_run_perl" sets whatever environment is necessary for perl, as a "setup perl" would have done. These links are not required; but if they aren't present, then users must setup perl before it can be used.
/usr/local/bin/tcsh, /usr/local/bin/bash shells   Login shells. Default systools configuration assumes that these files live in /usr/local/bin; if you move them, you will need to reconfigure systools.

In addition, there may be certain security tools or administration utilities which will create files in /usr/local. (They are not documented here, because this document is only covering the old systools/futil/funkern files, not all files that could have been found in /usr/local).


This document was created in January 2000 by llc.
Updated: May 2000 by llc (point to the template_home documentation for converting user login files).