OpenBSD: Upgrade anxiety

| | Comments (3) |

My main laptop has been running OpenBSD 4.4 for a few months now, and that laptop has pretty much become my main PC for getting things done both at home and at the office.

And I've been quite happy with the stability and performance of the operating system as well as the applications I've installed from packages and ports. I'm using things like Firefox, Opera, Pidgin, Thunderbird, Geany, Nano, vi, OpenOffice, the GIMP, gFTP, Rox-filer, Xpdf, Adobe Reader (yep, I added it from ports) ... and really that's enough to keep me going day to day.

My anxiety comes from upgrading. OpenBSD is on a six-month upgrade cycle. Version 4.5 will be out in May. While I've been using OpenBSD off and on since 4.2, I've only done one upgrade, from 4.2 to 4.3, and while it wasn't the most painful experience, neither was it as easy as firing up Synaptic or running apt-get update apt-get upgrade in Debian. Not by a long shot.

As I recall, the system is able to update all of the applications installed as precompiled packages. But now I'm using a few selected ports (applications that are either fetched from other sites in binary form and installed in OpenBSD for reasons of licensing, or that are fetched in source form and compiled on the system). What do I do about those ports?

Most hard-core OpenBSD users run -current, which is the continually developing tree of the OS and which is supposed to be pretty stable in its own right. From what I understand of -current, it is relatively easy to update the entire tree, even if quite a bit of time is required for compiling everything.

But I'm running -release. I should be running -stable, which is -release (in this case 4.4) plus patches. But I've never taken the time to figure out how to patch OpenBSD. I really should. But I'm Linuxishly lazy about it. I could barely keep a Slackware system updated with update-pkg. I was always falling behind and welcomed slapt-get and its apt-get-like ability to automate the process.

I don't have that many ports running: Opera and its Flash plugin are really just Linux binaries, as is the Adobe Reader. And I'm in the middle of installing Java, which appears to be the big daddy of OpenBSD ports. I've already downloaded a bunch of binary and source files from a bunch of different places, as directed by the output from the make install of the java port. Tomorrow if I get my act together, I'll start the make install again and see if it'll compile by evening.

So how do I take my ports from 4.4 to 4.5? Do I delete them completely and start anew? I'll have to download a new ports tree, so perhaps the process is somewhat taken care of during the package upgrade since an OpenBSD port's purpose is to fetch, compile if necessary and otherwise prepare a binary package that's installed in the same manner as is a precompiled package on the system.

Another school of thought on upgrading OpenBSD — and more than a few Linuxes as well — is not to upgrade but to reinstall. After backing up /home and /etc, of course, completely reinstall the OS, creating new partitions for everything but /home (and /etc if you're so inclined; merging /etc is part of the "traditional" OpenBSD upgrade process, but if your /etc isn't heavily modified, a complete reinstall of it as well might not be a tragedy. Or it could be ... I'm not enough of an expert at present to say one way or the other).

A reinstall of everything, including /usr, where all the apps live, tends to really clean things up, and it's fairly easy to reinstall one-, two- or three-dozen binary packages, providing you remember exactly what they are. Run pkg_info and save the output — that way you'll have a list of everything you've added, both precompiled binary packages and packages made by the ports system.

I still love running OpenBSD, but I'm thinking pretty hard about how much easier this would all be if I were running Debian, Ubuntu or even FreeBSD, which I have a feeling has some crafty ways of dealing with package and port updates.

Clearly much of this has to do with gaps in my own knowledge, and running OpenBSD is, if anything, a learning experience, so I imagine that learning will continue.

Still, there's the matter of having an up-to-date system that works. To borrow and butcher Ford's moldy slogan, quality (and being as fully patched as possible) is job No. 1.

3 Comments

Shagbag Author Profile Page said:

I agree. I keep a manual journal of my pkg_adds, ports and configs on my web site. That way I can re-install a new RELEASE in a shorter time than it takes to recompile CURRENT.

Jeff Flowers Author Profile Page said:

Personally, I just do a clean install, regardless of the OS involved. I just anal that way.

A clean install is a very good idea.

Keeping good records of what I did to get my system to where it is now would make this choice a lot more palatable. I think I have most of what I did documented. Saving at least the critical files in /etc and merging, even by hand, could work.

It probably doesn't hurt to start from scratch with added packages and ports just to clean up all the orphaned packages that might be in the system for apps I decided to delete (although I've been careful this time to both provide ample /usr space — just not enough to build all of Java — and to be more methodical in what I do install.

I did the upgrade from 4.2 to 4.3, so it can be done. But even Seth Fulton, who I met at the OpenBSD booth at SCALE last month, does reinstalls regularly. He boots from a server on his network via PXE and has scripts set up to make the install do what he wants. It takes a lot of the repetitive config work and automates it.

And since most OpenBSD installs have separate partitions for everything (including /home and /etc), it's easier to reinstall than on a system with everything in one big slice.

Leave a comment

Tech Talk column

Steven Rosenberg's weekly Tech Talk column, which appears Saturdays in the Los Angeles Daily News, is now available on the Daily News Technology page.

About this blog

New ways to sign in to comment: I just added the ability for prospective commenters on this blog to sign in using their AOL, Yahoo! and Wordpress.com accounts (for the past 200 posts anyway ... more than that will take an extensive, middle-of-the-night rebuild). That's in addition to the other sign-in choices, which include starting a Movable Type account on this blog, Typekey, OpenID, Live Journal and Vox. If you have trouble getting your Movable Type account verified, or any of the other sign-in options are not working properly, please e-mail me. With these added ways of signing in, there's more reason than ever for you to make a comment (or several!).




Steven Rosenberg aims to learn what he does not know. He writes about it here.



About this Entry

This page contains a single entry by Steven Rosenberg published on March 4, 2009 6:00 PM.

Tech Talk's new home in print was the previous entry in this blog.

OpenBSD: Against all odds, I'm building Java is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Recent Comments

Steven Rosenberg on OpenBSD: Upgrade anxiety: A clean install is a very good idea. Keeping good records of what I d ...

Jeff Flowers on OpenBSD: Upgrade anxiety: Personally, I just do a clean install, regardless of the OS involved. ...

Shagbag on OpenBSD: Upgrade anxiety: I agree. I keep a manual journal of my pkg_adds, ports and configs on ...

Powered by Movable Type 4.25

LXer

Links

Daily News technology
LXer
Distrowatch
Linus' Blog
David Pogue
BoingBoing
Linux Today
TuxRadar
Linux.com
Linux Planet
The Open Road
Linux Outlaws podcast
Dan Lynch
Fabian Scherschel
The VAR Guy
Larry the Free Software Guy
Chess Griffin
Linux Reality podcast
Desktop Linux
Practical Technology
Linux Devices
ZDNet
ZDNet U.K.
iTWire
CNet News
TechCrunch
The Register
Ars Technica
Reg Developer
Computerworld
Computerworld blogs
Steven J. Vaughan-Nichols at Computerworld
Debian
Planet Debian
Debian Forums
Debian News
debianHELP
debiantutorials.org
The Debian User
Wolfgang Lonien
Debian-News.net
Debian Administration
Debian Admin
Debian Weather
Ubuntu
Xubuntu
Kubuntu
Edubuntu
Gobuntu
Planet Ubuntu
Ubuntu Forums
Ubuntu Geek
Works With U
Dustin Kirkland
Ubuntu UK Podcast
Popey
gNewSense
CrunchBang Linux
OpenBSD
OpenBSD Journal
OpenBSD Ports
OpenBSD 101
Planet.OpenBSD.nu
jggimi's OpenBSD live CD
DaemonForums
BSDanywhere
Marc Balmer
Denny's OpenBSD blog
Polarwave's OpenBSD Tips and Tricks
Binary Updates for OpenBSD
Puppy Linux
Damn Small Linux
Tiny Core Linux
PCLinuxOS
Mandriva
Red Hat
Red Hat News
Red Hat Blogs
Red Hat: Truth Happens
Red Hat Magazine
CentOS
Planet CentOS
Fedora
Slackware
Slackbuilds
Robby's Slackware Packages
Slackblogs
dropline GNOME for Slackware
GNOME Slackbuild
GWARE - GNOME for Slackware
Wolvix
Zenwalk Linux
Vector Linux
Slax
Splack Linux — Slackware for Sparc
Nonux
How to Forge
marc.info BSD and Linux mailing list archive
FreeBSD
FreeBSD, the Unknown Giant
A Year in the Life of a BSD Guru
NetBSD
PC-BSD
DesktopBSD
DragonFlyBSD
DragonFlyBSD Digest
DesktopBSD
BSD Talk podcast
OpenSolaris
MilaX
BeleniX
DeLi Linux
Linux Loop
Electronista
Engadget
Gizmodo

Advertisement

Other blogs

Johnson Update in Inside USC with Scott Wolf
Has Bynum outgrown Kareem? in Inside the Lakers
Can the Angels just get to the end of this thing without an injury? in Farther Off the Wall
Neuheisel On: in Inside UCLA with Jon Gold
U.S. Roster for Final Two WCQ Announced in 100 Percent Soccer