On Thu, 7 Sep 2000, Greg Cope wrote:
> Stas Bekman wrote:
> >
> > On Wed, 6 Sep 2000, Perrin Harkins wrote:
> >
> > > On Wed, 6 Sep 2000, Bill Moseley wrote:
> > > > I hope I didn't miss anything in the Guide at install.html and in
> > > > control.html, but I was looking for any suggestions on upgrading mod_perl
> > > > and Perl on a running production machine to limit the amount of down time.
> > >
> > > We use RPMs. Some form of package, even if it's just a tarball, is a good
> > > idea. Build it on a different server and then just install it. Having
> > > multiple servers really comes in handy here because you can take some off
> > > line, upgrade them while the others are live, and then switch. Then your
> > > site remains up the whole time.
> >
> > The problem of the tar-ball is that it doesn't know to cleanup previously
> > installed files. Imagine a situation where some module that was previously
> > installed in perl5/5.00503 now installed in perl5/site_perl/5.005 -- You
> > get the problem where the old version is loaded before the new one.
> >
> > Therefore tar-ball is not a good solution, unless you scratch the whole
> > tree a moment before you untar the ball.
>
> Ah - what about this ...
>
> install (using tarballs complie target dirs) in a
> package_name-version_number directory.
>
> Then symlink to that dir from where ever you need to.
Nice.
Will work with mysql immediately.
Will work with plain Apache if you alter apachectl to invoke -d
dir_of_httpd.conf. Since you have compiled thing with a specific path.
But not Perl -- remember the @INC thingy? Probably compile on a different
machine into the normal /usr/lib/perl5 (or equivalent). Then untar it into
a different location on the production machine. When 'ln -sf' mod_perl
should see the normal path... I guess the same will work with plain
Apache.
> My /usr/local looks like this on some of my production machines:
>
> drwxr-xr-x 6 root root 4096 Jun 28 16:25 BerkeleyDB.3.1
> lrwxrwxrwx 1 root root 13 Jul 7 06:21 apache ->
> apache1.3.12/
> drwxr-xr-x 3 root root 4096 Jun 18 22:55 apache1.3.12
> drwxr-xr-x 2 root bin 4096 Jun 18 23:09 bin
> drwxr-xr-x 2 root root 4096 Jun 18 23:12 include
> drwxr-xr-x 2 root root 4096 Jun 15 18:15 lib
> lrwxrwxrwx 1 root root 30 Sep 2 11:57 mysql ->
> /usr/local/mysql-3.23.23-alpha
> drwxr-xr-x 7 root root 4096 Jul 31 17:28
> mysql-3.23.22-alpha
> drwxr-xr-x 7 root root 4096 Sep 2 11:14
> mysql-3.23.23-alpha
> drwxr-xr-x 2 root bin 4096 Jun 8 21:42 sbin
> drwxrwxr-x 9 root root 4096 May 29 11:38 ssl
>
>
> I can now roll back any new installs by just changing the symlink, and a
> tarball of the required dir does the trick.
>
> After testing I brought up new versions in the time in takes to make a
> online command with a few &&'s in and apache is backup in the time it
> takes for apache to restart - which depends on the ammount of perl
> modules it needs to deal with etc ...
>
> Greg Cope
>
> >
> > _____________________________________________________________________
> > Stas Bekman JAm_pH -- Just Another mod_perl Hacker
> > http://stason.org/ mod_perl Guide http://perl.apache.org/guide
> > mailto:[EMAIL PROTECTED] http://apachetoday.com http://jazzvalley.com
> > http://singlesheaven.com http://perlmonth.com perl.org apache.org
>
>
>
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:[EMAIL PROTECTED] http://apachetoday.com http://jazzvalley.com
http://singlesheaven.com http://perlmonth.com perl.org apache.org