Upgrading to 7.0 - stupid requirements
Michael Grant
mg-fbsd3 at grant.org
Wed Mar 19 05:46:09 PDT 2008
My server is live and serving customers. I can't afford to take the
box down for a whole day while I upgrade ports. Is there any
intelligent way to do this?
For example, could I do everything on a second disk while running the
live system on the first disk? For example using a chroot so it
thinks it's
For example, might this work?
1) upgrade system in the canonical way:
# make buildworld
# make buildkernel
# make installkernel
# reboot
# mergemaster -p
# make installworld
# mergemaster
# reboot
2) make sure misc/compat6x is installed
3) on a second disk or in a directory somewhere like /new
a) nullfs mount read-only all the things one needs inside a chroot to
work except /usr/local
b) create a writable /usr/local, /usr/X11R6, /compat/linux and /var/db
in the chroot
4) then for each package installed, install it within the chroot
5) when all that's done, drop into single-user mode and move
/usr/local, /usr/X11R6, /compat/linux, and /var/db/pkg to the real
system (saving the old ones)
6) reboot
Warning, I have never tried this.
-Mike
On Wed, Mar 19, 2008 at 11:47 AM, Oliver Fromme <olli at lurza.secnetix.de> wrote:
> Hello Marko,
>
> I'm very sorry that you have trouble updating your FreeBSD
> installation, but there are very good technical reasons to
> update your packages, as others have already explained in
> detail (i.e. library conflicts).
>
> When I updated my home workstation from FreeBSD 6 to 7,
> I used the opportunity to clean up my installed packages,
> which was long overdue anyway.
>
> First I saved the output from "pkg_info" in a file. Then
> I edited it and removed everything that I don't need.
> There was lots of superfluous crap in it, like ports that
> I installed once out of curiosity but never continued to
> use them, and ports that were installed as a dependency
> once but aren't required anymore because the dependent
> software is long gone.
>
> Then I did "pkg_delete \*", checked for left-overs in
> /usr/local because not everything was removed cleanly,
> and then installed the ports from my text file again.
> I chose to compile from ports instead of installing
> precompiled packages because the machine is fairly fast
> (if you have a slow machine, installing packages will
> be much faster, of course).
>
> It certainly went a lot quicker than if I had blindly
> updated all ports without cleaning up. And now all of
> my installed packages are guaranteed to be fresh and
> up to date, and I only have the stuff on my harddisk
> that I really need.
>
> Really, such situations where you should update all of
> your packages is the best opportunity to clean up the
> mess that has accumulated on your disk in a long time.
> I recommend that everyone considers doing that, too,
> instead of blindly running portupgrade. Of course,
> the latter would work, too, but it takes longer and
> will rather add to the mess instead of cleaning it. ;-)
>
> Best regards
> Oliver
>
> --
> Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
> Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung:
> secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
> chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
>
> FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd
>
> Python is executable pseudocode. Perl is executable line noise.
>
>
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>
>
More information about the freebsd-stable
mailing list