How to make a simple misc collection for your own machine: ========================================================== Configure your program to install somewhere other than /usr/local, ie: ./configure --prefix=/usr/local/depot/myprog or ./configure --prefix=/afs/cs/user/me/depot/myprog Install your program there: make install The install process should create the directories /usr/local/depot/myprog/bin, /usr/local/depot/myprog/lib, etc. Add the following line to /usr/local/depot/depot.pref.local to tell depot where to find your program: path mycollectionname /usr/local/depot/myprog Run "dosupdepot". This will symlink your collection in with all the other collections in /usr/local. How to make a misc collection to share: ======================================= First off, look at the facilities web page for this -- it has lots of documentation about this. Then, come back and read this quick tutorial... http://www.cs.cmu.edu/~help/collections/TOC.html Ok, are you back now? Good. Now let's start working. Email the help desk (or use the nice form on the page linked above), and tell them what program you want to compile. They will give you disk space in AFS to put it in. For example, I created a mozilla collection, and facilities created two directories for me: /afs/cs.cmu.edu/misc/mozilla -- this is where the copy of the collection that everyone uses resides. I can't access this copy, since it is read-only. /afs/.cs.cmu.edu/misc/mozilla -- this is my copy of the collection which I can edit and change. In the middle of the night any changes I make here are copied over to the main copy of the collection. Note that it may take a bit of time for both directories (AFS volumes, actually) to appear. At first, both paths may point to the same directory. This is normal. If you want to release your changes to everyone "right away" you can do this by telnetting to jeeves, and "releasing" the volume in question. (To figure out what the cryptic name of a volume is, type "fs examine ." in the directory you want to release. To do the release, select afs->misc->release in jeeve's menus.) In my collection directory I have several subdirectories. Each of these lives on a separate AFS volume, with a separate quota. If you want to add a new machine, you can create a new volume for it using jeeves (afs->misc->create in the menus). common/ -- this contains files which are used on all the different types of machines my collection runs on. In particular, in common/conf/coll.conf I have a file which configures the entire collection. src/ -- you might put the source code for the collection here. i386_rh71/ -- mozilla compiled for RedHat 7.1 machines sun4x_59/ -- mozilla compiled for SunOs 5.9 machines Under i386_rh71 I have different versions of mozilla. Which version gets used on a particular machine is determined by the configuration file common/conf/coll.conf. For example, let's look at mozilla 1.4 for RedHat 7.1 machines, in i386_rh71/1.4/: i386_rh71/1.4/depot.image -- this file is a cache generated automagically by depot -- don't worry about it. i386_rh71/1.4/bin/ -- I have a shell script called "mozilla" in here. It will get copied (or symlinked) into /usr/local/bin/mozilla on every user's machine. Make sure that any files you put here do not conflict with filenames from other collections. i386_rh71/1.4/libexec/ -- The actual mozilla program lives in here. Now how do you compile a program to be used as a misc collection? Pretty much the same as you did for the local collection above. For example, using autoconf I would configure it like this: ./configure --prefix=/usr/local Then install it into the misc collection directory: make DESTDIR=/afs/.cs.cmu.edu/misc/mozilla/i386_rh71/1.4 install cd /afs/.cs.cmu.edu/misc/mozilla/i386_rh71/1.4/usr/local mv * ../../ rm -rf usr One difference is you never need to be root to do this -- everything you are doing is in your space in AFS.