## Distributed access to Bsoft

The most efficient way to manage Bsoft (and other software) in a laboratory with many workstations, and potentially a variety of platforms, is to provide a central location for software. Under Unix, this means designating a common disk on the network as a software disk and mounting it on all computers. This allows upgrading the software in only one location, as opposed to every computer.
In addition, the setup proposed below becomes important for distributed processing using a package such as Peach, which requires a common disk not only for access to the programs, but also for the data.
Here is an example setup for a typical laboratory. Assume there are four different platforms with three of them capable of either 32- or 64-bit addressing: Mac OSX (Darwin), Linux, SGI (IRIX) and Tru64 (Alpha OSF1). The choice for the names comes from the result of the command "uname -s" and can be used in an environmental resource file.

- /common_disk/
  - Darwin/
    - bsoft
    - bsoft32
  - Linux/
    - bsoft
    - bsoft32
  - IRIX64/
    - bsoft
    - bsoft32
  - OSF1/
    - bsoft

The 32-bit versions of Bsoft are required for computers not capable of 64-bit processing (old Macs and 32-bit Linux boxes), or for associated packages. Under Mac OSX 10.4, the Tcl/Tk libraries are still 32-bit which means that the 32-bit version is still required. The 64-bit capable Macs (G5 and Intel) need only one Bsoft directory because all the required versions are incorporated into universal binaries and libraries.

## Setting up the environment

The environment can be set in every user account or on every computer. However, it is more efficient to use the common disk and provide a file that sets up all the common software for the whole group. The following resource file should be set up on the common disk and sourced by the system or user resource file on every computer.

### Example C-shell resource file text

# Example setup script for paths to Bsoft
# Bernard Heymann
# 20050809
set OS = `uname -s | cut -f1 -d"-"`
# Common programs disk
setenv PROGS /common_disk
# Program directories
setenv BSOFT ${PROGS}/${OS}/bsoft
setenv BSOFT32 ${PROGS}/${OS}/bsoft32
if ( $OS == "Darwin" ) then
set V = `uname -r | cut -f1 -d"."`
if ( $V < 8 ) setenv BSOFT $BSOFT32
if ( `machine` != "ppc970" ) setenv BSOFT $BSOFT32
if ( $?DYLD_LIBRARY_PATH ) then
setenv DYLD_LIBRARY_PATH ${BSOFT32}/lib:${BSOFT}/lib:$DYLD_LIBRARY_PATH
else
setenv DYLD_LIBRARY_PATH ${BSOFT32}/lib:${BSOFT}/lib
endif
endif
setenv PATH ./:${BSOFT}/bin:$PATH
if ( $OS == "IRIX" || $OS == "IRIX64" ) then
if ( $?LD_LIBRARYN32_PATH ) then
setenv LD_LIBRARYN32_PATH ${BSOFT32}/lib:$IMOD_DIR/lib32:$LD_LIBRARYN32_PATH
else
setenv LD_LIBRARYN32_PATH ${BSOFT32}/lib:$IMOD_DIR/lib32
endif
if ( $?LD_LIBRARY64_PATH ) then
setenv LD_LIBRARY64_PATH ${BSOFT}/lib:$LD_LIBRARY64_PATH
else
setenv LD_LIBRARY64_PATH ${BSOFT}/lib
endif
endif
# Program parameters
setenv BPARAM $BSOFT/parameters/
set symlinks=none