Painlessly Update FreeBSD
boarder8925 writes "Over at BSDnews, Steve Wingate has written an article on how to easily update FreeBSD. Wingate begins his article by saying, "One of the greatest advantages that *BSD has over other Unix variants is the cvsup/make world process. Unlike most Linux distributions it isn't necessary to wait months for a new version to be released for you to upgrade your system. The cvsup/make world process allows you to update your system at any time. I'm going to show you how to make the process as painless as possible." The article discusses the following: installing CVSup, choosing a cvsup server, configuring make.conf, and, finally, performing the upgrade. The piece is also available as a .pdf file."
~~~
in the handbook how?
Gentoo has this aswell. There are no distribution versions, a simple 'emerge -uDav world' will update the system.
In case the site's Slashdotted ...
.pdf file
Google cache of article
Google cache of
Keep your eyes to the sky.
HEY!
Has anyone else noted the creepy resemblance between BSD users and Hagfish, the creatures shown in Deep Rising (1998) ?
Witness:
They both live in darkness (Hagfish: deep ocean, BSD users: mother's basement)
They both exhude a thick foul smelling slime as a defense mechanism (Hagfish: against predators, BSD users: against bullies and women)
They both cannot stand warm waters (Hagfish: coastal currents, BSD users: washing water)
They both have odd, sucker shaped mouths (Hagfish: for feeding, BSD users: genetic reasons)
Both possess extraordinary sensitivity (Hagfish: To make up for their poor eyesight, BSD users: To create unending needless flamewars)
They are both abhorred by normal human beings (Hagfish: For being freakish slimy horrors, BSD users: Same reason)
and of course...
They both feed off dead sunken corpses (Hagfish: Whales, BSD users: *BSD)
Would anyone like to comment on this extraordinary coincidence?
Linux isn't dead.
:P
*ducks*
Mod me troll if you must, but I know I'm funny
Karma: Bad (mostly due to all those "In Soviet Russia" jokes)
# apt-get update; apt-get dist-upgrade
Wasn't that hard?
Anybody know if cvsup will ever be rewritten in C instead of Modula-2 or whatever the heck that is?
I'm hoping someday Gentoo will use cvsup because it's a bit more efficient (it doesn't have to re-compute all deltas every time like rsync).
I use both FreeBSD and gentoo heavily but portage generally feels a lot slower than BSD ports, syncing as well as the various cache or dependency operations or whatever it does when it sits there spinning at me.
Oh where, oh where is my BSD?
I just loaded it yesterday.
It's gone to heaven, so I've got to be good,
So I can see the OS when I leave this world.
I'd started to load it in my roommate's Dell,
the hard drive was taking it pretty well.
During the load, it crashed the heads,
the distro was stalled, *BSD was dead.
I couldn't stop, so I yanked the cord.
I'll never forget, the sound , oh Lord--
the screamin' drives, the speaker's blast,
the painful scream that I-- heard last.
Oh where, oh where is my *BSD?
That load took it away from me.
It's gone to heaven, so I've got to be good,
So I can see *BSD when I leave this world.
When I woke up, the sparks were pourin down.
There were admins standin all around.
Some fragments of chips gotten in my eyes,
but somehow I found my *BSD that night.
I lifted the CD, it looked at me and said,
"Load me darlin just a little while."
I held it close, I kissed the CD label--our last kiss.
I found the love that i knew i had missed
well now it's gone, even I loaded it right
I lost my *BSD and my Dell-- that night.
Oh where, oh where is my *BSD?
The load took it away from me.
It's gone to heaven so I've got to be good,
So I can see *BSD when I leave this world.
I have never used a linux distribution which lacks a tool for updating software without upgrading to the next official release. Redhat had one, mandrake had one, suse had one..and most importantly, debian has one.
:)
okay, minor lie; linux from scratch had no such tool. on the other hand, linux from scratch had no installer and consisted entirely of a manual explaining how to compile the software.
If cvsup && buildworld && installworld is the easy solution, I wonder what he considers this to be:
freebsd-update fetch
freebsd-update install
Yeah, ok, FreeBSD Update is only about tracking the release branch. But really, this story just covers the standard technique which people have been using for... well, longer than I've been using FreeBSD.
Tarsnap: Online backups for the truly paranoid
Given the amount of software I have on my Linux box, I think a BSD/Gentoo-like build process just wouldn't be practical for me.
The underlying problem is really that C/C++ code has so much information compiled into each object file: even common, minor changes may require huge amounts of recompilation. While we practice abstraction and encapsulation at the source level, at the binary level, it is still mostly lacking.
The choice shouldn't been between huge amounts of recompilation from source (Gentoo, BSD) or laborious hand-packging and version tracking (Debian, RedHat, etc.), this needs to be addressed by changing the underlying software infrastructure. Let's hope we'll move more towards JITs, dynamic binding, dynamic typing, and component-based software. Then we can finally get away from these massive recompilations and version hell.
It is official; Netcraft confirms: *BSD is dying
One more crippling bombshell hit the already beleaguered *BSD community when IDC confirmed that *BSD market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.
You don't need to be a Kreskin to predict *BSD's future. The hand writing is on the wall: *BSD faces a bleak future. In fact there won't be any future at all for *BSD because *BSD is dying. Things are looking very bad for *BSD. As many of us are already aware, *BSD continues to lose market share. Red ink flows like a river of blood.
FreeBSD is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: FreeBSD is dying.
Let's keep to the facts and look at the numbers.
OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the *BSD market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.
Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.
All major surveys show that *BSD has steadily declined in market share. *BSD is very sick and its long term survival prospects are very dim. If *BSD is to survive at all it will be among OS dilettante dbblers. *BSD continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, *BSD is dead.
Fact: *BSD is dying
Yeah. And I'm using it right now.
I see dead OSes, see?
FreeBSD: Because Computers Can Be Fun... Again.
This is particularly annoying because this is one of the main reasons I switched to BSD from Debian-- with Debian, unless you're running stable, the dependencies for any new binary package you install can cascade up the dependency graph and then back down, so that you need to download and install 150MB worth of upgrades just for one little program. Building ports from source is much better this way-- the port normally will just compile against whatever is in your system. Except when it doesn't, like in this case.
Are you adequate?
Is it really the first time you see a BSD is dying post?
The article is nice and well written. I would however change one step. /usr/src && make update && make world && make kernel && mergemaster' /usr/src && mergemaster -p && make update && make world && make kernel && mergemaster'
alias rebuild 'cd
to
alias rebuild 'cd
The prebuildworld mode for mergemaster is a life saver. Read man mergemaster.
I was scanning this... Got 1/2 way through and was wondering if he stole it, cause I swore i read it somewhere.
Then I realized: Issue #3?November 9, 2003
How the hell is this news? I love FreeBSD, its all I use. the only thing dead about it is bsd.slashdot.org
Of course not. But it's my first bad joke about a BSD is dying post.
FreeBSD: Because Computers Can Be Fun... Again.
Elegy For *BSD
I am a *BSD user
and I try hard to be brave
That is a tall order
*BSD's foot is in the grave.
I tap at my toy keyboard
and whistle a happy tune
but keeping happy's so hard,
*BSD died so soon.
Each day I wake and softly sob
Nightfall finds me crying
Not only am I a zit faced slob
but *BSD is dying.
Have you ever used Debian? It's a similar experience.
One thing this paper leaves out is reading UPDATING. You really really should check out the file /usr/src/UPDATING after you sync your tree but before you start building. Of course, the handbook will tell you that you should also be subscribed to the proper mailing list (freebsd-current or freebsd-stable) but at the very least, reading UPDATING is a Good Thing.
Have you ever deployed a component solution? I'm all for language agnostic component solutions, but there is tons of version hell in both the .NET and JAVA worlds.
.NET and Java don't solve this problem. That's both because they have many other dependencies between modules and because their byte code format unnecessarily encodes too many dependencies.
Yes, indeed there is.
Nevertheless, JITs are an important part of the solution because they allow you to remove almost all compiled-in dependencies between object files without sacrificing efficiency.
That is, all object file A has to know about structure X in object file B is that structure X contains a field called Q; where that field is located inside the structure doesn't matter, or whether there are other fields. It doesn't even necessarily need to know the exact type of Q. Yet, a JIT can make access to Q as fast as if the structure definition for X had been included in file A as a header file and had been hard-compiled in. That means that with a JIT and good language semantics, the definition and implementation of Q can change in almost arbitrary ways without ever requiring recompilation of A.
So, again, JITs aren't the solution by themselves, but they are an important part of the solution, because, when implemented right, they remove the need to compile in knowledge about data structures and codes in different modules.
When I first saw the headline about "painlessly updating", I thought this might be a great article about some new innovative way to update. Its not really anything new or interesting though, the whole article is basically saying: "cd /usr/src && make world && make kernel && mergemaster will update you system"
Not wanting to sound rude, but no shit sherlock! Yes, this is a painless way to update your system. It is also the way to update your system, as is very well spelled out in the excellent FreeBSD Handbook so I'm not sure why it warrants an article....
Maybe its just me but I think an article about portupgrade or something would have been more useful.
The article is actually riskier IMO.
/etc/defaults/make.conf /etc/make.conf /etc/make.conf accordingly (compile options, whether ports openssl/openssh overwrites the base openssl/openssh etc)
/etc and stuff to what your local custom config is like)
/usr/src /usr/
/usr
/etc/make.conf was correct etc.
/usr/ports/blahblah/softwarename
Firstly: he doesn't track the RELENG_4_9 branch, he tracks the STABLE branch (RELENG_4 - e.g. the latest of whatever is considered stable for Release 4) - which is more likely to break working stuff than the RELENG_4_9 branch which is FreeBSD 4.9 that has just the updates for security problems. Yes many ppl don't have problems with RELENG_4, but if your job and reputation is on the line - only use it if RELENG_4_9 doesn't work (hardware, required features etc).
Secondly: He skips the mergemaster -p step.
The way I recommend is what's been in the FreeBSD handbook for years:
Step 1: Synchronize your source Use cvsup. It's better. And track the RELENG branch.
e.g. cvsup mycustomcvsupfile
Where mycustomcvsup is like the stable-supfile but with the following tag instead of RELENG_4:
*default release=cvs tag=RELENG_4_9
Step 2: Building and Installing world
optional step before:
cp
edit
Then
make buildworld
make buildkernel KERNCONF=YOURKERNELNAME
make installkernel KERNCONF=YOURKERNELNAME
reboot and go to single user mode
mergemaster -p
(preliminary mergemaster stuff if things are too different between your config and what the new FreeBSD stuff is)
make installworld
mergemaster
(to merge what's new in
reboot
***multiple machines.
Here's where you might do things differently.
Read this for some background: tracking for multiple machines
Now once you built everything, you don't have to rebuild it on a different machine if you are using a compatible architecture. For example you specify a 686 CPU in your make.conf and kernel config, you can only reuse it on stuff which supports 686 class CPUs.
I didn't bother with the NFS part (not applicable for some situations) - I just did the synchronize of src and ports and did the build on a fast machine with a fast connection.
The default was 4-stable which tracks the current stable source of Release 4. For production machines I recommend tracking RELENG releases and not STABLE.
Then build the kernel and sources.
cd
make buildkernel KERNCONF=kernelformachineA
make buildkernel KERNCONF=kernelformachineB
make buildkernel KERNCONF=kernelformachineC
make buildworld
cd
Then tarball the results: tar -zcvf src.tar.gz src && tar -zcvf obj.tar.gz obj && tar -zcvf ports.tar.gz ports
Then I copied the tarballs (via CDR) to the slow machine which did not have a cvsup connection (not allowed by firewall policy etc)
Then installed the results on the machine.
cd
rm -rf src obj ports
tar -zxvf src.tar.gz && tar -zxvf ports.tar.gz && tar -zxvf obj.tar.gz
Then I ensured that the
Then: make installkernel KERNCONF=therelevantkernel && make installworld.
Note: to save the trouble of building desired ports software on the slow machine you have to make packages on the fast machine.
e.g.
cd
make package
---
You should also check out freebsd-update.
freebsd-update is more like binary updating of stuff affected by security issues.
Redhat is simpler on one hand and more complex on the other- sure you can ftp all the rpms and run a freshen. But it's harder to be sure everything is really consistent
Oct. 23 -- BSD resumed receiving life-sustaining care yesterday in a
Florida hospital room, but many experts said there is virtually no hope
that it will ever recover, despite it fan boy's desperate hopes.
"IF IT'S over a year, BSD's not ever going to get up," said Fred Plum, a
professor emeritus at Weill Cornell College in New York. "You'd just
don't see it. It just doesn't happen."
BSD, 39, has been in a persistent vegetative
state since its heart stopped for unknown reasons in 1990. A feeding
tube in BSD's stomach was removed this past Wednesday after its husband,
Theo De Ratt, who said his wife had told him she (BSD) would not want to
be kept alive under such circumstances, won a long series of court
battles to have life-sustaining nourishment withdrawn so she (BSD) could
die.
Let's put all *BSD users in concentration camps.
While we're at it, let's put all people who don't wear Nike shoes in camps too.
An update system that offers to overwrite /etc/passwd (and presumably every other security file) hardly seems like a safe or easy upgrade process.
:-( & :-)
I can't say my DoC (SuSE) has it better -- they don't ever seem able to upgrade my system in a sane or coherent manner. Last time around, it upgraded my squid 3.0 to squid2, tried, unsuccessfully to put my named in a basement mail (when it hadn't even been bad), but it was thrown in the basement w/o the root servers file and when the root servers all expired some large amount of time (~3-4 months) later, various TLD's started disappearing. It was bizzare watching large sections of internet just "go away" a few days before it completely consumed itself. Then I found the problem -- it hadn't copied in the root servers file from the previous upgrade (and/or didn't install a new copy). I tried grabbing some updates with their Yast Online solution, but it kept downloading copies of 8.2 binaries when I have 9.0 loaded. I never had 8.2 loaded -- I went straight from 8.1 to 9.0. Later, I found, buried in some paragraph of fine print somewhere that their updates only support updating from the immediately preceding version -- this was after it had removed all unknown packages fro the package database. At this point I had all the 8.1 packages installed, but no longer noted as "installed" in the database over which it automatically upgraded and installed about 10-15 packages out of the 100-150 it should have installed (I guess ~10-15 packages kept some same valid name). I'm always rather afraid to do an upgrade under SuSE as I know it will usually involve lots of pain.
On the flip side -- a fresh install of 9.0 for a never-used-linux user went real smooth -- they were able to navigate their way around after only one or two hiccups -- like buttons weren't where they used to be under Win, but I just told them they'd have to experiment a bit and find out how things were arranged differently. Once they experiemented some, they started finding what they needed surprisingly well.
-l
*BSD needs a new icon. Get rid of the devil. Use something like this, but without the clinton-era word balloon.
"Unlike most Linux distributions it isn't necessary to wait months for a new version to be released for you to upgrade your system."
Either this is a joke, or this guy never installed a Linux distro. Or maybe it was Debian Stable and he didn't realize what "stable" means.
Sure, the BSD ports system is nice. But there's no need to make a blind comparative with "most Linux distributions" to justify it. It just feed trolls without actually helping anyone.
{{.sig}}
I wanted a new slackware-current system, but all I had were the 9.1 release cd's, from last year! What was I to do? I could download it from an ftp server and try to make a bootable iso inside Windows (all I had available), or try something else...
I installed slackware linux 9.1 with the packages I wanted. Then I installed SWARET by downloading a tarball and using "installpkg". I edited swaret.conf to change the version of slackware from 9.1 to current, then I typed "swaret --update" to update the package database. "swaret --upgrade" downloaded all the new versions of the packages I installed in 9.1 from the closest mirror, installed them, and it was done.
This didn't take months, it took 2 hours. Sorry *BSD, you smell bad.
They upgraded libraries in a *prerelease* version? Why, was there a major showstopping bug found in the old version? I hope so, because that's a pretty poor development methodology otherwise.
I'm sorry, I've spent 15 years developing commercial software, and the first rule you learn (okay, the first rule you learn is 'Always make backups of everything') is not to upgrade any of the libraries, tools, or whatever in the middle of a project unless there's a really compelling reason. That doesn't even take into accout the effects of forcing all of your installed base to upgrade a major part of their system.
I've used gimp and it's a great app. I'm sure it's even better now, but I wish the developers would be more careful. If you want to develop professional software, you have to take a relatively professionial attitude towards the process.
Java: the bastard demon spawn of C++ and Ada
I don't know what version he is using but I'm running 5.2.1 and there is no /etc/defaults/make.conf, only an /etc/make.conf and that doesn't contain all the tags. and in /usr/src there is no Makefile. Am I doing something wrong here?
Upgrading the base system is great and it works most of the time. I'd only wish cvsup/cvs were able to fetch a consistant source tree, but as long as CVS doesn't provide some kind of ACID semantics, it would be very hard to do so. There's always the risk of updating /usr/src in the midst of a commit.
The ports are actually more painful to upgrade than FreeBSD proper. portupgrade does a great job at this, but it's not a panacea. First of all, portsdb -uU takes a hell of a time to generate a new INDEX.db, then you still have to fix some stale dependencies etc... This is the same problem as with Linux distros, and there is no easy solution to this.
cpghost at Cordula's Web.
Hello everyone!
You may know me as the "troll" that posts the "BSD IS DEAD" to every BSD story on slashdot. Many people wonder why I do it. The answer is that we must remove BSD as an option for people who want to learn *nix.
As a Linux advocate, I must convince casual Slashdot readers that BSD is a dead OS and that Linux is the only option for them. If BSD were to gain a bigger marketshare, corporations such as IBM and Sun might be distracted from their interest in Linux.
If you know any BSD users, you must convince them to convert to Linux. These people are slowing down open source developement because developers are distracted from working on Linux programs to make them work with BSD. We need the entire open source community to get behind one operating system so that open source developers and can focus on achieving our goal, OS dominance.
We can all agree that Microsoft has to go. We cannot allow any other proprietary operating system to take it's place. That narrows it down to the open source operating systems, of which to 2 major options are Linux and BSD. Since Linux already has the larger marketshare, we need to kill off BSD. Once we convert all the BSD developers to Linux, we will have a stronger army.
So what can you do to help? Easy. Find BSD users and developers and convince them to switch to Linux. Do by any means necessary. Sure, you can start out being nice. Be persistent. Don't give up, no matter what.
There can be only one open source operating system. Divided we fall. Together we shall rule.
the article was on how FREEBSD can be updated in a simple manner. why all the comparisons to linux zealot's flavour of the week update process?
i could care less how gentoo updates. or debian. i wanted to read an article and comments on how FREEBSD can be updated. if i wanted linux update articles, i would have skipped this one and searched for them.
the comments reek of AOL's "me too!", as in "hey we do that too! look at us!" or, even worse, "even though CVSup and the FREEBSD update system in general is highly regarded, our bandaid solution is far better, in our limited trials, bug fixes, and opinion"
it really is comments like these that make me not want a slashdot account and only browse occasionally.
Is there a way to upgrade your FreeBSD install using PACKAGES (bins) rather than CVS or ports (src)??
Prevent linux based DDOS's!
http://linux.denialofservice.org/
I can do this with windows. windowsupdate.com
(this is the exact same format as a gentoo, debian, slackware, mandrake, suse, fedora, osx user would do so I'm only a troll if you're biased)