If you run a machine that is frequently disconnected from the network, like a laptop, or don't want to set up an NFS-shared software installation, it is possible to install the software to your local machine.
There is a script in the programs tree that can be used to copy the appropriate branch from a shared installation to your laptop or workstation.
Copy /programs/share/bin/localsync from the machine that has the software to your home directory on the standalone machine:
scp your.server.name:/programs/share/bin/localsync ~/
Then run the script like this:
chmod 755 ~/localsync ~/localsync yourusername@your.server.name
The script will prompt you for your sudo (admin) password in order to create the programs directory, and then it will prompt you for your login password to the server that hosts your programs installation.
Here is an example run on my workstation:
$ ./localsync bene@sbgrid-dev-architect Running 'sudo mkdir /programs && sudo chown bene /programs' [sudo] password for bene: Syncing site master with local i386-linux installation. The initial sync can take a while... receiving file list ...
This will copy the entire branch for your architecture to your local hard drive. For the OS X branches, this will use approximately 30 GB of disk space. At this point in time, there is no way to copy a single program in an automated fashion.
You should use a network cable for the initial download, since the download is fairly large. Subsequent runs of the 'localsync' script are differential; they will only copy new or changed files, so they can be run over a wireless connection. The script can be run at any time to make your local installation match the installation on your local server.
While we recommend that sites export their software installation via NFS to their workstations, it is possible to use rsync to copy the master installation to each workstation. This method has the drawback that it requires manual intervention on the part of the local sysadmin, and updates will not be instantaneous or simultaneous for all machines.
On each client machine, you'll need an 'sbgrid' user. That user will have a passphraseless ssh key that lets it log into the machine that hosts your primary installation. Each client machine will have a cron job for that sbgrid user that runs at 2 AM that will sync the programs from the master installation to the client machine.
Here is a basic command run down. 'server1' holds the programs installation and 'client1' is what will be connecting to it.
mkdir /programs chown -R sbgrid:sbgrid /programs
ssh-keygen -d
(hit enter to confirm default file location, no passphrase, etc)
cat ~/.ssh/id_dsa.pub | ssh server1 'cat - >> ~/.ssh/authorized_keys'
scp sbgrid@server1:/programs/share/bin/localsync .
(May prompt to accept the host key. If you can't login without a password, the ssh key stuff above has failed, and you'll need to troubleshoot that.) </code> chmod 755 localsync ./localsync sbgrid@server1 </code> (This will take a while depending on the speed of the machines/network.)
tcsh source /programs/sbgrid.cshrc
or
bash source /programs/sbgrid.shrc
(You should get a message like this: )
Welcome to SBGrid!
********************************************************************************
Your use of the applications contained in the /programs directory constitutes
acceptance of the terms of the SBGrid License Agreement included in the file
/programs/share/LICENSE. The applications distributed by SBGrid are licensed
exclusively to member laboratories of the SBGrid Consortium.
To hush this license message, run 'touch ~/.agree2sbgrid'.
********************************************************************************
Please submit bug reports and help requests to: <bugs@sbgrid.org> or
<http://sbgrid.org/bugs>
This installation last updated: 20110411
********************************************************************************
Total time to initialize: 1 second(s)
echo "0 2 * * * ~/localsync sbgrid@server1" | crontab
crontab -l
You're done!