Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Aug 2007 13:33:22 -0700
From:      Jeremy Chadwick <koitsu@FreeBSD.org>
To:        Rakhesh Sasidharan <rakhesh@rakhesh.com>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: How did upgrading applications happen before portupgrade etc?
Message-ID:  <20070811203322.GA78245@eos.sc1.parodius.com>
In-Reply-To: <20070811145314.A47727@obelix.home.rakhesh.com>
References:  <20070811115642.L34115@obelix.home.rakhesh.com> <20070811083357.GA34007@eos.sc1.parodius.com> <20070811145314.A47727@obelix.home.rakhesh.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Aug 11, 2007 at 03:02:53PM +0400, Rakhesh Sasidharan wrote:
>> 5.  pkg_delete port
>
> I see. In step 5, "pkg_delete port" wont work if port is required by others 
> right? So you delete those apps too? Could be a lot of stuff to uninstall, 
> right?

Absolutely correct.  That might seem like a nightmare to most people,
but to me it's not.  I suppose this is also why I avoid ports that have
too many dependencies (mail/p5-Mail-SpamAssassin, for example, is
starting to make me consider using dspam instead).

>> Note that we keep all of our configuration files in a directory called
>> /conf/ME and in /usr/local simply use symlinks.  (Matt Dillon might be
>> grinning over /conf/ME, since it's a Best Internet-ism :) ).  I don't
>> trust that all ports will "play nice" with existing configuration files
>> in /usr/local, and I have seen much evidence of this in the past (nuking
>> files without your knowledge, mainly.  "Oh crap! It nuked our entire
>> configuration for the apache/mail/whatever server!!!").
>
> That's a smashing idea! Thanks for mentioning that here. :-)
>
> What does the "ME" stand for in /conf/ME btw?

"ME" stands for me, e.g. "myself".  I guess it'd help if I explained how
it worked:

The /conf directory on all machines contained the configuration files
for itself as well as every other machine on the network.  So for
shell01.whatever.com you'd find this in /conf:

  /conf/ME --> /conf/shell01.whatever.com
  /conf/mail01.whatever.com/
  /conf/shell01.whatever.com/
  /conf/shell02.whatever.com/
  /conf/sql01.whatever.com/
  /conf/test.whatever.com/

Each directory contained configuration files specific to that system.

During system install, either done automatically or manually (I forget),
the /conf directory on a machine is populated, and the ME symlink is
made.  Then the script would populate /usr/local with symlinks, and I
believe also did a mkdir -p on directories.  For example, if /conf/ME
contained:

  etc/Muttrc
  etc/apache22/httpd.conf
  etc/mail/spamassassin/local.cf
  etc/pine.conf
  etc/sudoers

You'd find this in /usr/local:

  etc/Muttrc  -->  /conf/ME/etc/Muttrc
  etc/apache22/httpd.conf  -->  /conf/ME/etc/apache22/httpd.conf
  etc/mail/spamassassin/local.cf  -->  /conf/ME/etc/mail/spamassassin/local.cf
  etc/pine.conf  -->  /conf/ME/etc/pine.conf
  etc/sudoers  -->  /conf/ME/etc/sudoers

I believe the reason each machine had a copy of all the other machines'
configs was in case one got munged on the repository server (or if you
needed to "roll back" and didn't make a backup of your changes, oops),
and/or if you wanted to change the "role" of a machine on the fly.

All of the packages/ports installed on all the machines were 100%
identical; that is, every machine, regardless of role, had the same
packages/ports installed.

> Thanks for sharing your traditional steps with here btw.

No problem.  :-)  You asked a good question, so hopefully you'll get
some good answers back.

-- 
| Jeremy Chadwick                                    jdc at parodius.com |
| Parodius Networking                           http://www.parodius.com/ |
| UNIX Systems Administrator                      Mountain View, CA, USA |
| Making life hard for others since 1977.                  PGP: 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070811203322.GA78245>