portmaster -a on a live server
Tom Worster
fsb at thefsb.org
Wed Apr 22 15:37:12 UTC 2009
On 4/20/09 3:06 PM, "Matthew Seaman" <m.seaman at infracaninophile.co.uk>
wrote:
> Many ports will shut down a running instance of themselves when upgraded
> like this specifically to avoid the sort of complications that can occur
> when the running image does not match what is on disk.
>
> mysql does, apache doesn't.
>
> So upgrade mysql-server last thing before you reboot. Although I know you're
> not using portupgrade, this snippet from pkgtools.conf has been a blessing in
> minimizing outage lengths during updates on live servers:
>
> AFTERINSTALL = {
> '*' => proc { |origin|
> cmd_start_rc(origin)
> },
> }
>
> Of couse, the best course of action is to plan sufficient downtime that you
> can do the upgrades comfortably plus recover from any number of ways things
> might go wrong, but sometimes that simply isn't possible.
i went through the process with portmaster on a test machine. it's exactly
as you describe. the old apache keeps running. mysql runs throughout the
build until the install, when it stops.
a down and dirty way could be to just enter these three commands all at
once:
portmaster -agbtvwuD -x mysql\-server
portmaster -gbtvwuD mysql\-server
mysqld_safe &
i could test the exit code of portmaster on the second and third lines and
abandon if !=0 but i'm not sure it would add much.
watching the process is very dreary. i found listening to an audio book
helped.
by the by, on my test machine i ended up with python installed. seems to be
because i needed php5-gd which now depends on python. all for some simple
freetype2 calls.
More information about the freebsd-questions
mailing list