Date: Sat, 2 Aug 2008 21:55:45 +0200 From: "Redd Vinylene" <reddvinylene@gmail.com> To: questions@freebsd.org Subject: Re: The best way to upgrade my FreeBSD and its jails Message-ID: <f1019d520808021255j5e09938s13f1089788130b31@mail.gmail.com> In-Reply-To: <f1019d520808021255r3cf4dd73j6aef3563548c00ab@mail.gmail.com> References: <f1019d520808011026n6c25d047y4b04e77022f8817@mail.gmail.com> <489398AD.6000900@webanoide.org> <48940CAB.9040001@quip.cz> <f1019d520808020303s43297b64k1187c9d286302b70@mail.gmail.com> <f1019d520808020726l69935eaak9716c49b571b0a91@mail.gmail.com> <f1019d520808021255r3cf4dd73j6aef3563548c00ab@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Sorry, JAILS=/usr/jail for jail in $JAILS/*; do mergemaster -p -D $jail make installworld delete-old delete-old-libs DESTDIR=$jail mergemaster -i -U -D $jail done :) On Sat, Aug 2, 2008 at 9:55 PM, Redd Vinylene <reddvinylene@gmail.com> wrote: > Sorry, > > JAILS=/usr/jail > > for jail in $JAILS/*; do > > mergemaster -p -D $jail > > make installworld delete-old delete-old-libs DESTDIR=$jail > > mergemaster -i -U -D $jail > > done > > :) > > On Sat, Aug 2, 2008 at 4:26 PM, Redd Vinylene <reddvinylene@gmail.com> wrote: >> Slight improvement, set -e replaces all the && \: >> >> - >> >> # FreeBSD/i386 mother.naoshige.net >> >> set -e >> >> csup /etc/cvsupfile >> >> cd /usr/src >> >> make buildworld buildkernel >> >> mergemaster -p >> >> make installworld installkernel delete-old delete-old-libs >> >> mergemaster -i -U >> >> JAILS=/usr/local/jails >> >> for jail in $JAILS/*; do >> >> mergemaster -p -D $JAILS/$jail >> >> make installworld delete-old delete-old-libs DESTDIR=$JAILS/$jail >> >> mergemaster -i -U -D $JAILS/$jail >> >> done >> >> chflags -R noschg /usr/obj/* >> >> rm -rf /usr/obj/* >> >> - >> >> Peace! >> >> On Sat, Aug 2, 2008 at 12:03 PM, Redd Vinylene <reddvinylene@gmail.com> wrote: >>> Thanks a lot guys for your great design insight! >>> >>> I hope others will find this thread interesting as well. Here's the >>> final upgrade script I decided to use (my shell is zsh): >>> >>> - >>> >>> # FreeBSD/i386 mother.naoshige.net >>> >>> csup /etc/cvsupfile >>> >>> cd /usr/src >>> >>> make buildworld buildkernel && \ >>> >>> mergemaster -p && \ >>> >>> make installworld installkernel delete-old delete-old-libs && \ >>> >>> mergemaster -i -U && \ >>> >>> JAILS=/usr/local/jails >>> >>> cd /usr/src >>> >>> for jail in $JAILS/*; do >>> >>> mergemaster -p -D $JAILS/$jail && \ >>> >>> make installworld delete-old delete-old-libs DESTDIR=$JAILS/$jail && \ >>> >>> mergemaster -i -U -D $JAILS/$jail && \ >>> >>> done >>> >>> chflags -R noschg /usr/obj/* >>> >>> rm -rf /usr/obj/* >>> >>> - >>> >>> Much obliged! >>> >>> On Sat, Aug 2, 2008 at 9:28 AM, Miroslav Lachman <000.fbsd@quip.cz> wrote: >>>> Mikhail Goriachev wrote: >>>>> >>>>> Redd Vinylene wrote: >>>>> >>>>>> My dedicated server is mother, its two jails are camel and box. Is >>>>>> this the best way to upgrade all of them? >>>>> >>>>> >>>>> We probably should keep this to freebsd-jail@ only. >>>>> >>>>> Had a look at http://pastie.org/245821 and have a few notes for you: >>>>> >>>>> 1.- As Miroslav already mentioned - it is not a good idea to daisy chain >>>>> everything. You should break the procedure into two steps. Firstly upgrade >>>>> the host and make sure the upgrade went well. Once you're certain that >>>>> everything is ok, then proceed upgrading jails. >>>>> >>>>> I personally disable jails (jail_enable="NO"), then reboot (to avoid any >>>>> zombie jails), perform upgrade on all jails and then enable them back on. >>>>> >>>>> 2.- Your upgrading sequence is a bit off. Have a look at /usr/src/Makefile >>>>> for further details and correct sequence: >>>>> >>>>> # make buildworld >>>>> # make buildkernel >>>>> # make installkernel >>>>> # reboot >>>>> # mergemaster -p >>>>> # make installworld >>>>> # make delete-old >>>>> # mergemaster >>>>> # reboot >>>>> # make delete-old-libs >>>>> >>>>> 3.- You don't need kernels inside your jails. Having them won't hurt you, >>>>> but they consume space. In other words, you shouldn't execute the following >>>>> (or similar): >>>>> >>>>> # make DESTDIR=$D installkernel >>>>> >>>>> 4.- The "make distribution DESTDIR=$D" should be executed only once - when >>>>> a jail is created. Otherwise you're nuking your configurations in jail's >>>>> /etc and probably somewhere else. >>>> >>>> One thing to note - If you do delete-old delete-old-libs you probably need >>>> to recompile all installed ports because of lib dependencies. >>>> >>>>> Have a go at this, you might find some use for it: >>>>> >>>>> ----------------------- >>>>> JAILSDIR=/usr/local/jails >>>>> >>>>> cd /usr/src >>>>> >>>>> for jail in `ls ${JAILSDIR}`; do >>>>> mergemaster -pD ${JAILSDIR}/${jail} >>>>> make installworld DESTDIR=${JAILSDIR}/${jail} >>>>> mergemaster -iD ${JAILSDIR}/${jail} >>>>> done >>>>> ----------------------- >>>> >>> >> > > > > -- > http://www.home.no/reddvinylene > -- http://www.home.no/reddvinylene
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f1019d520808021255j5e09938s13f1089788130b31>