-{section: Creating a personal HTCondor from prebuilt binaries}
+When we say "Personal HTCondor" we mean two things which are actually independent, but which normally go together
 
-{wiki: CreatingPersonalHtcondorTheHardWay A more complicated recipe that doesn't use condor_install}
+1: A single node HTCondor pool
+1: A HTCondor pool in which all of the daemons and jobs run as a single user
 
-{subsection: Building HTCondor}
+These instructions show you how to set up HTCondor to be both of these things, but keep in mind that they are actually independent, and you can easily change have a multi-node pool running as a single user, or a single-node pool where the daemons run as root and jobs run unprivileged.
 
-Note this section is optional -- if you are on a CSL machine, you can skip to the "Settting up your Personal HTCondor" section
+{section: Get HTCondor binaries}
 
-Pretend you have your build in =/scratch/roy/v66=.
-Pretend you have you want to set up a personal HTCondor in =/scratch/roy/personal-condor=.
-Substitute pathnames appropriately.
+Downloading the tarball/zip release
 
-First, build HTCondor as described in {wiki: BuildingHtcondorOnUnix here}. After you run make, do "make install" (note: in older versions of the code, this used to be "make release"). You'll find that you have a new directory =/scratch/roy/v66/release_dir=, and if you look inside it, you will see something like:
-{code}
-> ls /scratch/roy/v66/release_dir/
-bin/  include/  lib/  man/  sbin/  src/
-{endcode}
-This is very similar to what a HTCondor installation has in it.  Note that if you have a version of HTCondor 7.5.5 or later, do not do the "make release" command.
+*: {link: https://research.cs.wisc.edu/htcondor/downloads/ Download HTCondor}
 
-{subsection: Setting up your Personal HTCondor}
+Or build HTCondor and tar/zip the release_dir directory from the build
 
-There are lots of ways to set up a personal HTCondor: I'll show you one way. You want to set up your =PATH= to point at the =bin= and =sbin= directories in your release directory. You want to set =CONDOR_CONFIG= to point at a =condor_config= file. You want to edit your =condor_config= file appropriately. Here is what I do:
-{subsubsection: Make a link to your release directory}
+*: {wiki: BuildingHtcondorOnUnix Build HTCondor}
+and then tar it up.
 {code}
-cd /scratch/roy/personal-condor
-ln -s /scratch/roy/v66/src/release_dir .
+# assuming that you build HTCondor V8_4_0-branch in /scratch/build/condor
+cd /scratch/build/condor/release_dir
+tar czf ../condor-8.4.0-x86_64_RedHat6-unstripped.tar.gz .
 {endcode}
-With the new {link: https://condor-wiki.cs.wisc.edu/index.cgi/wiki?p=BuildModernization build} system using cmake, you will want to remove the =src/= part of the path in the above =ln= command, (for versions of HTCondor later than 7.5.5.)
 
-Or, if you want to use the pre-built binaries in the CS pool, the release directory is in "/unsup/condor", and you don't need to make the subdirectories below.
+For Personal HTCondor we use the tarball/zip release because this lets you control where the binaries will be installed, and will allow you have more than a single version of HTCondor running at once.
 
-Make some directories for HTCondor
-{code}
-mkdir execute
-mkdir log
-mkdir spool
-{endcode}
-{subsubsection: Set up your environment}
-This commands are for tcsh: you'll need to edit them for bash.
-{code}
-cat > setup
-setenv PATH /scratch/roy/personal-condor/release_dir/bin:${PATH}
-setenv PATH /scratch/roy/personal-condor/release_dir/sbin:${PATH}
-setenv CONDOR_CONFIG /scratch/roy/personal-condor/condor_config
-(control-d)
-{endcode}
-When you do source setup your environment will be set up for your personal HTCondor.
-{subsubsection: Create your HTCondor configuration file}
+{section: Setting up your Personal HTCondor}
+
+The remainder of this guide will assume that you downloaded or built the
+condor-8.4.0-x86_64_RedHat6-unstripped.tar.gz tarball.  If you are working with a different tarball, adjust the commands accordingly.
+
+{subsection: Unpack the HTCondor binaries (setting up "RELEASE_DIR")}
+
+We refer to the place where the HTCondor binaries live as RELEASE_DIR, you can unpack the tarball to create this directory using the following commands.
 {code}
-cp /scratch/roy/v66/src/condor_examples/condor_config.generic condor_config
-touch condor_config.local
+> cd /scratch
+> tar xf <path-to-tarball>/condor-8.2.10-x86_64_RedHat6-unstripped.tar.gz
+# optionally rename the directory to something simpler
+> mv condor-8.4.0-x86_64_RedHat6-unstripped condor84
 {endcode}
-Now you need to edit your =condor_config= file. Search for the following configuration variables, and set them as follows (using the correct pathnames and email address for you):
-{code}
-CONDOR_HOST             = $(FULL_HOSTNAME)
-RELEASE_DIR             = /scratch/roy/personal-condor/release_dir
-LOCAL_DIR               = /scratch/roy/personal-condor
-LOCAL_CONFIG_FILE       = $(LOCAL_DIR)/condor_config.local
-CONDOR_ADMIN            = your-email@cs.wisc.edu
-UID_DOMAIN              = $(FULL_HOSTNAME)
-FILESYSTEM_DOMAIN       = $(FULL_HOSTNAME)
 
-COLLECTOR_HOST  = $(CONDOR_HOST):11000
-# Not necessary for late versions of HTCondor
-NEGOTIATOR_HOST = $(CONDOR_HOST):11001
+The directory */scratch/condor84* will now contain the HTCondor binaries, it will contain subdirectores bin, sbin, libexec, etc and several others.  We call this directory *RELEASE_DIR*.
+
+{subsection: Create configuration (setting up "LOCAL_DIR")}
 
-WANT_SUSPEND            = $(TESTINGMODE_WANT_SUSPEND)
-WANT_VACATE             = $(TESTINGMODE_WANT_VACATE)
-START                   = $(TESTINGMODE_START)
-SUSPEND                 = $(TESTINGMODE_SUSPEND)
-CONTINUE                = $(TESTINGMODE_CONTINUE)
-PREEMPT                 = $(TESTINGMODE_PREEMPT)
-KILL                    = $(TESTINGMODE_KILL)
-PERIODIC_CHECKPOINT     = $(TESTINGMODE_PERIODIC_CHECKPOINT)
-PREEMPTION_REQUIREMENTS = $(TESTINGMODE_PREEMPTION_REQUIREMENTS)
-PREEMPTION_RANK         = $(TESTINGMODE_PREEMPTION_RANK)
+HTCondor needs configuration files, and at least 3 runtime directories: log, spool and execute.  The condor_install script will create all of these as children of a directory we call *LOCAL_DIR*.  LOCAL_DIR can be the same directory as RELEASE_DIR, or it can be different. In this example we will make it different.
 
-DAEMON_LIST             = MASTER, STARTD, SCHEDD, COLLECTOR, NEGOTIATOR
+{code}
+> mkdir /scratch/local/condor84
+> cd /scratch/condor84/condor_install --local_dir=/scratch/local/condor84
+# optional, copy the script that sets up the environment to local_dir
+> cp /scratch/condor84/condor.sh /scratch/local/condor84
 {endcode}
-_Note:_ Pick different numbers for the COLLECTOR_HOST and the NEGOTIATOR_HOST. These are port numbers, and each personal HTCondor running on a machine needs to have different ports. Probably randomly picking numbers that are greater than 1024 will be sufficient.
 
-_Note:_ It may be useful to set =CONDOR_HOST = localhost= or =CONDOR_HOST = localhost.localdomain= if the machine running this does not have a valid IP address, is a virtual machine, or the administrator wants HTCondor to look only at that machine.
+The directory */scratch/local/condor84* will now contain directories log, spool, and execute.  It will also have a condor_config.local file ready for you to begin customizing the configuration.
 
-This looks like a lot of things to edit. Why is it so hard? Well, our installation script normally sets things up for you, but because you are using a build environment, it is harder to use the installation script. Also, it is useful for you to be familiar with these settings, so you understand better how HTCondor works.
+The condor.sh script will contain commands to setup the environment so that you can use the HTCondor you have just created. It puts the HTCondor binaries into your path, and sets the CONDOR_CONFIG variable. If you use the sh or bash shell, you can use it like this
+{code}
+source /scratch/condor84/condor.sh
+{endcode}
 
-{subsubsection: Run HTCondor}
+{subsection: Run your Personal HTCondor}
 
-First, make sure that you will run the correct HTCondor. Which should tell you the one you expect to see:
+First, make sure that you will run the correct HTCondor. The =which= command can be used to find out if you will run the correct condor_master:
 {code}
-> source setup
+> source /scratch/condor84/condor.sh
 > which condor_master
-/scratch/roy/personal-condor/release_dir/sbin/condor_master
+/scratch/condor84/sbin/condor_master
 {endcode}
 Then run condor_master:
 {code}
@@ -104,10 +79,4 @@
 condor_off -master
 {endcode}
 
-{subsubsection: Advanced configuration and problem solving}
-
-If you are debugging a daemon, you may want to have additional debugging information. For instance, if you are debugging the collector, you can edit COLLECTOR_DEBUG. For instance, you might do:
-{code}
-COLLECTOR_DEBUG = D_FULLDEBUG D_PROTOCOL
-{endcode}
-Note that this set up described above is rather nice for working with different versions of HTCondor. Just change the link to the release directory, and you can test a different version of HTCondor.
+{wiki: CreatingPersonalHtcondorTheHardWay A more complicated recipe that doesn't use condor_install}