Page History

Turn Off History

Related Contents

Background

Old Condor rpm is basically a Condor tar ball packaged inside RPM. It will install Condor into /opt/condor-{version} and runs condor_configure during post install.

Condor Packages by 3rd parties

Fedora - Current Condor package is based on this one.
http://cvs.fedoraproject.org/viewvc/rpms/condor/
Debian
http://www.dcl.hpi.uni-potsdam.de/debian/binary/
Ubuntu - by Ian
http://packages.ubuntu.com/lucid/condor

Design Ideas

  1. Use dynamic tar file as a source, Condor native package just relocate stuff in tar file to comply with FHS.
  2. During upgrade, there is no need to explicitly restart Condor because the Master daemon will detect file changes and gracefully restart the daemons by itself.
  3. Minimize post installation logic by using condor_config parameters than match the standard configuration of each distribution. This will allow RPM to detect configuration file changes. However, when using relocate feature, condor_config will be modified during post install.
  4. In multi-instance installation scenario, the second instance will be installed without touching the first instance. Thus, the proper upgrade path is to remove the second instance and then upgrade the first instance.

Implementation

RPM Installation Behavior

pre (pre-install)

  1. Add condor user/group if not exists

postinst

  1. (If relocated) Update condor_config, /etc/sysconfig/condor to match new location
  2. (If relocated) Install init script only if this is the first instance.
  3. (If relocated) Create soft link to man folder in same level as bin/sbin folder so man can automatically find manpages.
  4. Add Condor service (chkconfig --add)
  5. Run ldconfig (Might not be necessary because we do not put any lib directly into /usr/lib)
  6. Modify SElinux policy of condor_startd binary (Copy from Fedora package)

preun

  1. Call init script to stop Condor only if we are removing the last instance of Condor (not include upgrading). If the init script fails, abort the uninstall
  2. Remove Condor service (chkconfig --del)
  3. (If relocated) remove init script

postun

  1. Run ldconfig (Might not be necessary because we do not put any lib directly into /usr/lib)

Debian Installation Behavior

preinst

  1. Add condor user/group if not exists

postinst

  1. Add Condor service (update-rc.d)
  2. Change owner of some folders to condor

prerm

  1. (If remove) Stop condor

postrm

  1. Remove condor service
  2. (If purge) remove files created Condor daemons

Condor currently provide native packages in Debian and RPM format. Location of the repositories are listed below:

http://www.cs.wisc.edu/condor/yum
http://www.cs.wisc.edu/condor/debian

Related Tickets

Ticket #1166: Add native Linux distro packaging into the build process