Slashdot Mirror


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."

123 comments

  1. Of course it's painless. by Anonymous Coward · · Score: -1, Troll
    It's dead !!!

    ~~~

  2. This is different from the cvs guide by RLiegh · · Score: 3, Insightful

    in the handbook how?

  3. Gentoo has this.. by pilot1 · · Score: 2, Informative

    Gentoo has this aswell. There are no distribution versions, a simple 'emerge -uDav world' will update the system.

    1. Re:Gentoo has this.. by GigsVT · · Score: 1

      I guess we'll never see any serious commercial apps for gentoo then.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:Gentoo has this.. by afabbro · · Score: 1

      Well, yeah, that's why he said "most".

      --
      Advice: on VPS providers
    3. Re:Gentoo has this.. by Anonymous Coward · · Score: 0

      Explain.

    4. Re:Gentoo has this.. by Da+Masta · · Score: 1

      Well, yeah, that's why he said "most".

      I think he's still wrong out of that respect. The major distros I know support this include:

      Gentoo
      Slackware
      Debian
      Redhat
      Mandrake

      This leaves very few major distros that don't. Considering that the majority of the remaining distros are based on one of the above, or on the fringe, I can't see how his point is all that valid.

    5. Re:Gentoo has this.. by UnseenEnigma · · Score: 4, Interesting

      The only issue with gentoo is the lack of a central binary repository like the redhat channels system (official anyway - chinstrap is decent for those willing to stray). It was discussed at great length several months ago and decided not to be created despite having the backend infrastructure already in place. The great advantage of gentoo, and in a way the failure of bsd (and pretty much every commercial linux) is the ability to choose complex compile and build options with ease. For this same reason and the fact a binary repository could never handle a fraction of the possibilities it was never created :(. If however you consider implementing gentoo in a work environment with say 10-100 systems they could all be set to use a central compile server to your organisation or/and through distcc compile kickass fast! Although installs of gentoo are a pain (hopefully better if the installer gets built) it is by far the easiest to update, and customise of any linux. And (big + for me) none of the bs of no or modified media players, browsers, burner software etc of suse, redhat or mandrake because of cautios legal practises. I've been finding more and more things i like about the portage system the more i use it. Any new reasonably popular package seems to make it on the tree in less than a day. If their is a piece of software that isnt on the tree u need (happened to me once) u can either find or make a ebuild and submit it for inclusion in the tree My Conclusions Ms Windows - ah get it away from me!!!! Evil Redhat/Suse/Mandrake - Better but canabalises some stuff and out of date packages The BSD Trio - Stable, fast, easy update, and faster update due to binary Gentoo - Stable, fast, easy update and more customizable due to all source (usually)

    6. Re:Gentoo has this.. by drinkypoo · · Score: 1
      Most of a gentoo install can be automated by a fairly simple script of just a few lines which you could ftp to the system and execute. An installer would speed things up a little bit but it's a pretty trivial install as it is. If you always partition the same, use the same services and so on, you can automate the interactive steps which take the longest, which is to say creating/editing config files.

      I picked up a R4400SC-powered Indy system recently and decided to put Gentoo/MIPS on it - I'm not sure it's ready for production work as most of the interesting packages are masked away from mips, and others are oddly broken (for example one of the requirements for gnome 2.6 has a version of the config.* files for autoconf which does not suppport linux-unknown-gnu-mips or however that string goes.) But in any case I have distcc cross-compiling on my firewall and in a gentoo vmware system, and compiles on my indy go pretty much as quick as they do on anything else around here.

      Gentoo on x86 is great. Gentoo on anything else is probably a mistake at this point. I'm having fun with my Indy but I have to tweak package.keywords to get stuff to even try to build, and then it fails :)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    7. Re:Gentoo has this.. by Anonymous Coward · · Score: 0

      So what?

      Anyway, tagging (as in FreeBSD) is a release engineering task, so it can be added to the Gentoo pool when feeled that needed.

    8. Re:Gentoo has this.. by Anonymous Coward · · Score: 0

      are gentoo sources modified?

      I use slack because the kernels and other base packages on other distros are always "tweaked".

  4. Just in case ... by boarder8925 · · Score: 3, Informative

    In case the site's Slashdotted ...

    Google cache of article
    Google cache of .pdf file

  5. Wow, just noticed by Anonymous Coward · · Score: -1, Troll


    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?

    1. Re:Wow, just noticed by billcopc · · Score: -1, Troll

      You are a sick yet cruelly funny trollbot.

      Being one disappointed server admin that was forced to use FreeBSD, I wholly agree with you. It may be a rather pure OS, but I prefer Dirty Linux and the non-sextagenary developers that spend more time building neat and useful features, rather than complaining about how us young folk have it too easy :)

      --
      -Billco, Fnarg.com
  6. And the advantage Linux has over BSD... by xoran99 · · Score: 0, Funny

    Linux isn't dead.

    *ducks*

    Mod me troll if you must, but I know I'm funny :P

    --

    Karma: Bad (mostly due to all those "In Soviet Russia" jokes)

    1. Re:And the advantage Linux has over BSD... by rawg · · Score: 2, Informative

      Wow, BSD is dead?

      I just migrated all my Linux server over to FreeBSD because FreeBSD is so much easier to maintain. It seems faster also.

      --
      The above is not worth reading.
    2. Re:And the advantage Linux has over BSD... by Anonymous Coward · · Score: 0

      Any pain in doing so? I've been asked by quite a few companies to do the same, I've done it on my production, development and test systems in my lab without much hassle. It's running very good now, thank god for FreeBSD/OpenBSD!

    3. Re:And the advantage Linux has over BSD... by Khazunga · · Score: 2, Insightful
      Faster, you say? I'd say numbers contradict your impression.

      You can say a lot of good stuff about *BSD, but it currently does not match the quality and quantity of great minds work that is being put into the linux kernel.

      --
      If at first you don't succeed, skydiving is not for you
    4. Re:And the advantage Linux has over BSD... by Anonymous Coward · · Score: 0

      too many cooks in the kitchen

    5. Re:And the advantage Linux has over BSD... by wirelessbuzzers · · Score: 2, Informative

      Err. Read your own link? His conclusion frome those benchmarks were that OpenBSD is slow. He says specifically:

      Linux 2.6 scales O(1) in all benchmarks. Words fail me on how impressive this is. If you are using Linux 2.4 right now, switch to Linux 2.6 now!

      FreeBSD 5.1 has very impressive performance and scalability. I foolishly assumed all BSDs to play in the same league performance-wise, because they all share a lot of code and can incorporate each other's code freely. I was wrong. FreeBSD has by far the best performance of the BSDs and it comes close to Linux 2.6. If you run another BSD on x86, you should switch to FreeBSD!


      His only major complaint about FreeBSD was its mmap performance: the system seems to do more work ahead of time than is actually necessary. It's not clear to me that his benchmark is actually relevant, since he measured the cost of mmapping 10000 pages, but only reading one (in which FreeBSD thrashed all the other systems), whereas one generally reads most of the pages mmapped anyway.

      In many of the benchmarks, FreeBSD beat Linux 2.6 by a sizeable margin, in particular the "many files" and connections benchmarks.

      --
      I hereby place the above post in the public domain.
    6. Re:And the advantage Linux has over BSD... by Khazunga · · Score: 2, Insightful

      Quick summary:

      • socket(2): All systems presented less than O(n) values, with call times measured in the 10k CPU cycles range (extremely short execution time). Advantage to FreeBSD
      • bind(2): O(1) scaling by Linux 2.6 and FreeBSD with no clear advantage for either.
      • fork(2): O(1) scaling by Linux 2.6, with a severe scalability issue for FreeBSD
      • mmap(2) with subsequent touch and read: Clear win by Linux 2.6 due to FreeBSD mmap times scaling O(n) while Linux scales O(1)
      • HTTP request operation sequence (connect plus serving) Both scale O(1) with similar answer times

      From that, I read a tiny FreeBSD advantage in the socket call (in terms of absolute execution time) and two FreeBSD scalability issues: one rather serious, and one O(n) versus O(1).

      Again, one can't be less than astonished by the Linux kernel development over the last two years. Not that one would notice the difference between Linux and FreeBSD on everyday use, or less than stressfull server deployments. They're both in the same league but, as of now, Linux is more polished. Scaling O(1) for almost every algorithm in there is amazing.

      --
      If at first you don't succeed, skydiving is not for you
    7. Re:And the advantage Linux has over BSD... by tigga · · Score: 1
      Faster, you say? I'd say numbers contradict your impression.

      Those numbers are microbenchmarks. They may show something but do not relate to real life performance.

      You can say a lot of good stuff about *BSD, but it currently does not match the quality and quantity of great minds work that is being put into the linux kernel.

      You may say whatever you want, but it just sounds as zealotry.

    8. Re:And the advantage Linux has over BSD... by iggymanz · · Score: 1

      There's more to quality than kernel performance. I've had the 2 popular Linux filesystems (reiserFS and ext3) puke on me at various times because the disk isn't always in a consistent state as it is with FFS (which also raises issues with complex SAN operations). Until Linux gets a decent mature nonproprietary filesystem my servers will run BSD.

    9. Re:And the advantage Linux has over BSD... by Khazunga · · Score: 2, Informative

      Funny that my 1TB mail servers at Portugalmail run on ReiserFS and have been quite stable for the last three years, while serving 30k users a day. Go guess...

      --
      If at first you don't succeed, skydiving is not for you
    10. Re:And the advantage Linux has over BSD... by iggymanz · · Score: 1

      the problems I had was when power interrupted, 90% of the time Reiser is ok but about one time out of ten the filesystem gets hosed beyond repair. SGI's XFS filesystem is journalling but always in consistent state (great for SAN breakaway mirror too); I'll be testing that soon

    11. Re:And the advantage Linux has over BSD... by rawg · · Score: 1

      I have done four out of seven server's so far. I've only had one problem. My main router has a LMC PCI T1/CSU/DSU card. I could not get FreeBSD to work in Frame Relay mode with that card. The drivers come up and it goes into T1 mode just fine. But I can't figure out how to get Frame Relay to work with it. But in a month or so, I won't have to worry about that. I'm going to a dual T1 router to increase bandwidth.

      I am having problems getting Radius to work with my email and VPN servers. But that's a side project that I started after the migration. I should have that done this weekend.

      The Web servers were very easy. I installed FreeBSD minimum, then used portinstall to load Apache+PHP onto them. My next conversion is my Postgres Database server.

      Oh, another problem. Be sure to cvsup ALL the ports when doing upgrades. I was only getting the ports that I thought I wanted, but there are dependancies that are in the strangest places.

      --
      The above is not worth reading.
    12. Re:And the advantage Linux has over BSD... by Anonymous Coward · · Score: 0

      Not to mention that 5.x is still a developement release and have a lot of debug code in it.
      He should wait until 5.x become stable before doing that test.

      From: http://www.freebsd.org/releases/5.2.1R/early-adopt er.html

      A certain amount of debugging and diagnostic code is still in place to help track down problems in FreeBSD 5.X's new features. This may cause FreeBSD 5.X to perform more slowly than 4-STABLE.

  7. Anonymous Coward's Guide to Updating Debian by Anonymous Coward · · Score: 1, Insightful

    # apt-get update; apt-get dist-upgrade

    Wasn't that hard?

    1. Re:Anonymous Coward's Guide to Updating Debian by Anonymous Coward · · Score: 0

      # pacman -Syu

      Wasn't that hard? (ArchLinux by the way; a binary distro :)

      Recompiling everything to do an update is stupid. Try "updating" KDE in FreeBSD on a 366 Mhz Celeron.

    2. Re:Anonymous Coward's Guide to Updating Debian by rsax · · Score: 5, Insightful

      Yes APT is great. It's easy to use and requires less effort than the FreeBSD upgrade process but it's too bad Debian stable is so hopelessly out of date. FreeBSD isn't. It's a stable operating system with upto date third party software delivered using the ports system. I've said this before and I'll say it again since this Debian comparison has been brought up.... I hear this argument from Debian advocates a lot: "Do you want a stable server or do you want bleeding edge?" Well with FreeBSD I get stable servers and still have packages that aren't a year or two [or sometimes more] old...... it is possible. And before anyone recommends that I run Debian testing instead please remember that the Debian Security team claim that they don't support anything besides the stable releases. I could use a Debian stable system and then mix match packages from unstable or testing and risk instability in the end or higher maintenance due to no security alerts from one source but then why not use FreeBSD instead in the first place?

    3. Re:Anonymous Coward's Guide to Updating Debian by dasunt · · Score: 2, Interesting

      Yes APT is great. It's easy to use and requires less effort than the FreeBSD upgrade process but it's too bad Debian stable is so hopelessly out of date.

      Three words: "End of Life"

      If we are looking at updates, the last extended support release of FreeBSD was 4.8, which was released in April, 2003.

      Its end-of-life is March, 2005.

      Debian Potato was released August, 2000 and end-of-lifed in June, 2003.

      Debian Woody was released in July 2002, and, assuming that tradition holds, will be supported til at least May 2005. [ Debian seems to keep security updates going for one year after the date of the next release. ]

      Its rather nice not to change software in 3 years or so. ["Change" as in "new software version" -- debian does security patches, but they are backported to the version that ships with the release to minimize breakage. ]

      Ne'ermind that binary upgrades are damn nice.

      [ Don't feel bad -- OpenBSD has a lifespan of 1 year on its stuff, and no binary updates, which *really* annoys me -- otherwise its a fine OS which I like to use. ]

    4. Re:Anonymous Coward's Guide to Updating Debian by JamieF · · Score: 2, Funny

      >Its rather nice not to change software in 3 years or so.

      Sure, if you like using 4 or 5 year old hardware. If you want to use newer hardware, you have to run a "testing" kernel. Case in point: a 160GB hard disk attached to an ATA/133 card... gotta have 2.4.20 to handle it. I would have been limited to using 127MB of it, and accessing it thru the mobo's blazingly fast UltraDMA/33 ports, if I was determined to stay with "stable".

    5. Re:Anonymous Coward's Guide to Updating Debian by Anonymous Coward · · Score: 1, Informative

      Yeah, Debian stable is pretty out of date... For Desktop systems.

      I use Debian stable on all of my servers; it still gets the security updaes, and stable is... Well, stable. Great for production servers.

      Debian testing works great on desktops, though. I'm running testing now, with kernel 2.6.5, and everything is wonderful, and best of all...modern. And pretty stable, too.

      If you don't need the fancy gui stuff, testing is the way to go. Most of the server oriented stuff is very up to date in stable.

    6. Re:Anonymous Coward's Guide to Updating Debian by tigga · · Score: 1
      Recompiling everything to do an update is stupid. Try "updating" KDE in FreeBSD on a 366 Mhz Celeron.

      I agree. port_upgrade -PP works better.

    7. Re:Anonymous Coward's Guide to Updating Debian by Anonymous Coward · · Score: 0

      Great for production servers.

      Except when your production servers need relevant, timely versions of stuff, like oh I dunno, you're running a webserver and you want to use a version of PHP that isn't from the dark ages?

      Face facts. Debian stable is a pain. The very moment you need something newer than what stable has to offer, it's all over. You're out in the wilderness, compiling, backporting, adding to sources.list, or dist-upgrading, or whatever. And you lose that nice stable state. FreeBSD is better.

  8. cvsup in C? by Anonymous Coward · · Score: 2, Informative

    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.

    1. Re:cvsup in C? by cperciva · · Score: 3, Informative

      Anybody know if cvsup will ever be rewritten in C instead of Modula-2 or whatever the heck that is?

      Yes. It is being done, and there is (mostly) working code.

    2. Re:cvsup in C? by CoolVibe · · Score: 4, Interesting

      There's also cvsync, which is a good cvsup alternative, written in C.

    3. Re:cvsup in C? by craig2787 · · Score: 0

      A guy on IRC told me he has one working, at least in console mode. He told me to keep it under wraps because he fears people will tell him that it's a stupid idea, or somesuch. Personally, I can't wait for it to be released.

  9. *BSD Anthem: Last Disk by Anonymous Coward · · Score: -1, Troll
    [to the tune of Last Kiss by pearl jam]

    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.

  10. "unlike most linux distributions"? by mkavanagh · · Score: 1, Informative

    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. :)

    1. Re:"unlike most linux distributions"? by gmhowell · · Score: 1

      Article (or at least the blurb here) is (Score: -1, Troll)

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    2. Re:"unlike most linux distributions"? by hayds · · Score: 3, Informative

      Yes, linux has always had software to update software to the latest official release. What he is saying is that with BSD you can update the system to the latest software too, without waiting for the next version.

      In other words, on RedHat or Debian, I can update to the latest apache pretty easily with apt or rpm. Same on BSD. But on BSD I can also easily download and install the very latest updates to the kernel and base system straight from the official CVS without having to wait for binary updates to come. In Linux distros, binary updates to core packages in the base system are often not released (unless they are security related of course) until the next version of the distro. On BSD the latest is always available for download.

    3. Re:"unlike most linux distributions"? by mkavanagh · · Score: 0

      Attention: Word recognition and interpretation.

      First word: NECESSARY

      Example of usage: "Unlike most Linux distributions it isn't NECESSARY to wait months for a new version to be released for you to upgrade your system"

      Second word: USUAL

      Example of usage: "Unlike most Linux distributions it isn't USUAL to wait months for a new version to be released for you to upgrade your system"

      The mention of Linux is flamebait, and an irrelevant comparison. I judge Linux by the quality of the best*, not the average of all.

      Or should we judge BSD while including OpenBSD and its atrocious scalability/hardware support? Perhaps Mac OS X and its cost, case insensitivity and platform specificity? Hell, maybe we should judge the GNU project by how greasy RMS' beard is.

      * `Best' is defined herein as debian unstable with judicious usage of ../project/experimental and /etc/apt/preferences.

    4. Re:"unlike most linux distributions"? by Anonymous Coward · · Score: 0

      Yo lamer, check the damn ports and you will see that such a tool does exist.

    5. Re:"unlike most linux distributions"? by Brandybuck · · Score: 2, Insightful

      If that's true, then how come every time there's a new linux kernel version, hordes of slashdotters come out querying when it's going to included in their distro. With Linux you either have to wait until someone updates a kernel package (or emerge script), or go grab it and built it yourself manually. It's not going to happen instantaneously.

      That's the essence of what the article blurb is saying. No need to get all defensive about it. You chose to use a system that someone else integrated together for you from many different disparate projects. You can't expect that integrator to provide instant updates to every part of the base system you're interested in. For most distros a new kernel version takes a few weeks to make it into an upgrade package.

      --
      Don't blame me, I didn't vote for either of them!
    6. Re:"unlike most linux distributions"? by mkavanagh · · Score: 0
      The length of time this takes will vary depending on your Internet connection speed and how often the process is run. Once this has completed you can begin the task of rebuilding the system. The various targets for the 'make' process can be found in the Makefile in the /usr/src directory. Many people choose to run make buildworld followed by make installworld. The buildworld target rebuilds the entire base operating systems (not including installed ports) while the installworld target actually installs everything built by buildworld. I prefer the make world target, which combines the two steps into one. This step takes about 25 minutes on my Xeon system and a couple of hours on my Celeron 400MHz mail/dns/nfs server. Take a peek at the screen every now and then to make sure the process hasn't resulted in any errors.

      After you're sure the make process has completed successfully you're ready to build a new kernel. To do this simply type make kernel in the same /usr/src directory. The system will build a new kernel using the configuration file you named in the KERNCONF=KERNELNAME entry in /etc/make.conf.
      Seems to me that the kernel is an afterthought to the process. By your own implicit admission most linux distros have between-version updates tools; yet this is what the article claims they mostly lack.
      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.
      The article blurb is just a copy/paste of the article intro; it is saying exactly what the article intro says.
  11. That's the easy solution? by cperciva · · Score: 4, Insightful

    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.

    1. Re:That's the easy solution? by Anonymous Coward · · Score: 0

      Where exactly can you find a list of servers that offer binary updates? I have an old pentium that could benefit from staying up to date and not having to compile, but I can't seem to find a good list of who offers up these services.

  12. too many dependencies by hak1du · · Score: 4, Insightful

    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.

    1. Re:too many dependencies by CaptainPinko · · Score: 1

      FreeBSD also provides binary packages like gentoo does too. In gentoo the flag is -K IRC, FreeBSDs I can't remember

      --
      Your CPU is not doing anything else, at least do something.
    2. Re:too many dependencies by josepha48 · · Score: 3, Insightful
      "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."

      No kidding. My NetBSD box taks hours to compile all these packages. If all you want to do is upgrade xscreensaver, all you have to type is make update ( or is it upgrade ). But what happens in the background is that it probably has newer requirements, like an updated gtk, which depends on pango updates, and that depends on .. and so on and so on, and then suddenly updating one program becomes updateing the WHOLE gnome desktop and compiling from sources. On an old 233Mhz that is a long time. But hey NetBSD and FreeBSD install on on old 233Mhz with only 64Megs of RAM, Redhat doesn't, ( debian does though ).

      I agree "The choice shouldn't been between huge amounts of recompilation ..." but I can't see having the whole GUI using JITs. Also most of these programs use dynamic binding.

      See the problem is that the maintainers of these packages, upgrade the requirements of the packages based on new features in these packages or just because it is the latest in the release tree and assumed to have less bugs. IE. xscreensaver probably would have compiled fine in teh above example with the gtk onn my system, but the Makefile for it has a requires gtk 2.2.x+ or something like that in it which it then checks to see if it is installed on the system. It should really have done, if gtkversion == 2.0 compile with gtk 2.0, and leave our whatever features that it is missing. Chances are there are none that require gtk 2.2 and 2.0 wont work just fine. However if it was gtk = 1.2 then update. A better example is programs that still use gtk 1.2. Is there really a difference between gtk 1.2.10 and 1.2.10nb2? Probably not enough that you are required to upgrade all the programs on the system. They should add an option, and call it make update_all which updates ALL the dependancies and then the default behavior should be make update just this one program. That's what the problem is with this compile stuff. I use Linux, NetBSD, FreeBSD, Windows, Sun, and Mac. They all have their plusses and minuses. It really depends on what you think is important.

      --

      Only 'flamers' flame!
      Does slashdot hate my posts?

    3. Re:too many dependencies by noselasd · · Score: 1

      This doesn't help. If you have a managed/jit'ed language, one still wants the latest and the greatest. That means updating to that. Had gtk as the example were been a java/python whatever project, it still wouldn't
      be any less painful of updating if you want the latest. And interfaces
      are just as important here,.
      Change the interface and all dependant application needs to be updated
      to take adjust for that.
      Then there is the choice of what to update. If installing a new xscreensaver is what I want, pkgsrc on my NetBSD "suddenly" changed to gtk2.4 and there isn't much I can do about it(changing the Makefiles/etc. ofcourse but..), even though that xscreensaver really runs ok with gtk 2.2.

      While this might sound like a troll, it is actually not meant so, but in this area I salute MS. They have feature finished libraries/interfaces that doesn't change. And that in many areas
      very good. I see the Windows developers at my workplace make apps on
      win2k and it runs on just about any windows version. Great for the users. And thats what matters most. The users.
      It is though hell for
      atleast library developers keeping this compability all the time I can
      imagine. And I fell sorry for those that needs to struggle with MFC.
      But again, the user matters more imho.
      (Ofcourse, you cannot keep this compatability forever, but breaking everything every other month isn't that nice either.)

    4. Re:too many dependencies by Screaming+Lunatic · · Score: 1
      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.

      What are you talking about? Major recompilation is a development issue, not an end-user issue.

      Whenever a new version of a package is installed, it is compiled from scratch. End users do not keep object files from previous versions of a package. Upgrading a package means recompiling all the binaries from scratch.

      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.

      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.

    5. Re:too many dependencies by Anonymous Coward · · Score: 1, Interesting

      The problem isn't too many dependencies, the problem is that all current package managers suck. If I'm trying to migrate to the newest GIMP, I must first resolve all the dependencies for the new GIMP. This is only a problem because I'm forced to do it all at once. I have to first remove all of the old packages I'm going to replace with the new GIMP's dependencies, meaning my current system is unstable based off of a pending upgrade of one package. After that, I can compile/install the new GIMP, but I also have to make sure that none of my other packages depended on specific old versions of libraries that I might've just replaced. These are the sort of problems package managers are supposed to solve.

      Instead of lumping everything together in /usr/local, wouldn't it be better if packages binaries were separated by directory as well as symlinks to library dependencies? For example, if GIMP-2.0 installed to /usr/pkg/gimp/gimp-2.0, then I don't have to worry about removing the old GIMP at all. It doesn't matter if it takes it a week to compile, because I still have a working version of GIMP and all of its dependencies in place. Furthermore, instead of linking the GIMP binaries to /usr/local/lib/libgtk.so.0 (or whatever), it could be linked to /usr/pkg/gimp/gimp-2.0/dep/libgtk.so.0 which could then be made to point to any specific version of GTK2 I wanted. Dividing the various programs and libraries by source package makes the most sense of all, because that's how they're installed. Under a system like this, there's no cause to worry about what library version you have installed because they don't conflict.

    6. Re:too many dependencies by Anonymous Coward · · Score: 0

      They have feature finished libraries/interfaces that doesn't change.

      Yeah right. Do a search sometime for msvcrt.dll and tell me how many different versions you find. Vendors solved the dll hell problem by shipping versions of needed libraries with their programs, completely defeating the purpose of dynamic libraries.

      The Windows library organization paradigm is shit.

    7. Re:too many dependencies by 00420 · · Score: 1

      Gentoo has very very few binary packages. But, most Gentoo users (like me) accept compiling as part of using it.

      If you're looking for a power-user Linux with binaries, Debian would probably be a better way to go.

      And, I don't understand how this article is at all news. Hasn't FreeBSD had this for years?

    8. Re:too many dependencies by Fizzl · · Score: 2, Funny

      Watch out people!
      This is a disgiused Java advocate! Don't be fooled to think; 'I wish there would be a language for that'.

      As soon as you'd say that, the Salesmen of The Sun would be knocking on your door.

    9. Re:too many dependencies by hak1du · · Score: 1

      I wouldn't advocate the use of Java in OSS because Java is highly proprietary and has many design flaws.

      I would advocate the use of Mono/C#, however, since it is open source, non-proprietary, and fixes many of Java's problems. And I don't "disguise" that at all--why should I?

      Unfortunately, neither Java nor C# were designed to deal specifically with this problem, so neither of them is a complete solution. But they help, and if you know what you are doing, they can actually help a lot. Another language that is an improvement over C/C++ in this regard and is a bit "closer to the metal" is Objective-C (although, frankly, I wouldn't recommend using Objective-C either at this point).

    10. Re:too many dependencies by hak1du · · Score: 1

      If you're looking for a power-user Linux with binaries, Debian would probably be a better way to go.

      Debian indeed gives you a great selection of packages and does a good job on the dependency management.

      But that doesn't mean that the dependency problem has been solved--you are still paying the price for it. To make the Debian magic happen requires an enormous amount of labor and coordination. Even with that, there are dependency problems (fewer than if you try to do the same thing by hand with RedHat or SuSE, but they still occur), and "apt-get upgrade" results in huge downloads with regularity.

    11. Re:too many dependencies by hak1du · · Score: 1

      The problem isn't too many dependencies, the problem is that all current package managers suck. If I'm trying to migrate to the newest GIMP, I must first resolve all the dependencies for the new GIMP.

      With Debian, you don't have to: apt will do it for you. But that doesn't remove the dependencies--you still pay the price. What's the price? Huge downloads and enormous amounts of human effort going into this.

      Instead of lumping everything together in /usr/local, wouldn't it be better if packages binaries were separated by directory as well as symlinks to library dependencies?

      How does that help? The package specifications already contain the library dependencies and use it to minimize necessary package upgrades.

      No, the real problem is that if someone adds a field to the Gtk+ Window structure, every piece of software that included that structure definition (all Gnome applications, etc.) need to be recompiled. If you use a binary distribution, then all binary packages of software using that header file need to be downloaded again. And that's not a packaging problem, it's a problem with the underlying programming language and its implementation.

    12. Re:too many dependencies by ci4 · · Score: 1
      make update
      can be PITA. I even had a poster in my cubicle in the office saying "DON'T USE make update!"... The results may be difficult to predict... and you don't want all your KDE or Gnome packages suddenly disappear because of some weird dependency. I have also an occasion I found myself in a loop - a needs b needs c ... needs a...

      What I normally do nowadays on my NetBSD systems is use just 'make'; if there are dependencies, it will 'make install' them and if there were older versions of these in place already, it will fail. At this moment one has to use a bit of judgement - cd to the failed package directory and issue 'make replace' - and there is a good deal of chance you will get away with it (well, you may have to manually create a few links in /usr/pkg/lib...).

      I know NetBSD purists will say that this is wrong, but it has worked for me more or less OK for about a year; I am on NetBSD 2.0D now, just finished KDE3.2.2 compile (Gnome 2.6 a few days earlier - rocks!), and generally very happy with NetBSD.
    13. Re:too many dependencies by Anonymous Coward · · Score: 0

      if someone adds a field to the Gtk+ Window structure, every piece of software that included that structure definition (all Gnome applications, etc.) need to be recompiled.

      That's true if the Gtk+ developers are dipshits. Changing the API in such a way that it breaks previous versions is not only usually not done, but it's big enough to trigger a major version number change when it's done.

      Also, if the developers do change a library that way, it doesn't matter what language it's written in. If the new API isn't compatible with the old one, then all those dependencies will have to be upgraded too.

    14. Re:too many dependencies by hak1du · · Score: 1

      Also, if the developers do change a library that way, it doesn't matter what language it's written in. If the new API isn't compatible with the old one, then all those dependencies will have to be upgraded too.

      But the new API is compatible--merely adding a field (or method) does not change any of the semantics of the object. And, in fact, there are many languages in which you don't have to recompile.

      That's true if the Gtk+ developers are dipshits. Changing the API in such a way that it breaks previous versions is not only usually not done, but it's big enough to trigger a major version number change when it's done.

      The Gtk+ developers are just responding to the irrational limitations of the C language; there is no intrinsic reason why adding a field or method to an existing object is anything to be avoided. Quite to the contrary: the workarounds that are being used with C/C++ in the name of binary compatibility are far worse.

    15. Re:too many dependencies by Anonymous Coward · · Score: 0

      But the new API is compatible--merely adding a field (or method) does not change any of the semantics of the object.

      If it didn't break binary compatibility, then there's no reason to worry about it anyway. Adding a new function to a library doesn't (I don't believe) break applications linking to a generic version of that library.

      And, in fact, there are many languages in which you don't have to recompile.

      and

      The Gtk+ developers are just responding to the irrational limitations of the C language; there is no intrinsic reason why adding a field or method to an existing object is anything to be avoided.

      Yes there is. It's serous business to change a library's API, although adding functionality without changing existing functionality is a lot different from altering how a function works (or what arguments it takes). With interpretted languages (I'll use MATLAB for an example because it makes my case the best) it's the same thing, there's no trouble at all _adding_ functions, but if you change the way a function works you have to be concerned with what other M-files are using that function.

      At any rate, this isn't a language problem, it's a versioning problem.

    16. Re:too many dependencies by Brandybuck · · Score: 1

      Let's hope we'll move more towards JITs, dynamic binding, dynamic typing, and component-based software.

      Coincidentally, right now I'm in the middle of a rather lengthy recompile of Java...

      To the point at hand, the problem isn't compiled languages, it's developers not taking upgrades into account. If you change the functionality of an application, it stands to reason that you have to rebuild that application (or at least the components that have changed). I don't see where this is any more onerous than having to locate, download and install a whole bunch of HLL components and keeping them in sync. A system that will automate that will easily automate a compile as part of the process.

      The real problem comes around when you change your interfaces. Suddenly all of the dependent applications have to be changed. Regardless of whether you use a compiled or interpreted language, a change to the API will break dependents. Compiled languages have the problem of changing ABIs as well, but they can be easily managed. This is where it's the fault of the developer if you have problems. When upgraded glibc breaks your whole system, bitch to GNU for not following their own library release rules. Because it's not the language's fault.

      --
      Don't blame me, I didn't vote for either of them!
    17. Re:too many dependencies by Anonymous Coward · · Score: 0
      You're not wrong. Using make replace is much better
      than what I used to do, namely remove the package information
      in /var/db/pkg or just rename it so NetBSD thinks
      I am already running the new version. :)


      Now I'm sure that's the wrong way.


      I'm glad I'm not the only one who has this pet peeve.
      The first time I discovered it was when I did a make
      replace (or maybe update) on libiconv and then wondered
      where KDE and GNOME went.

    18. Re:too many dependencies by Anonymous Coward · · Score: 0

      You introduce latency to the underlying infrastructure by doing something like that.

      Sure, Java is 'easier', but it's not faster.

      When it comes to the core of your OS, it should be kept as fast as possible, which means, no intrepreted languages.

      Such languages could, should and do reside ontop of a binary/object/assmber/opcode layer, not in lieu of it.

      This debate reminds me of endianess.

      Big is easier to read, little is more efficient.

      In the real world of computers, where 99.9999999999999999999999999999 % of the time humans 'never' interfere with the underlying infrastructure, nor scrutanise it by hand, making the environment human friendly at the cost of efficiency is madness.

    19. Re:too many dependencies by drinkypoo · · Score: 1

      Whenever a new version of a package is installed, it is compiled from scratch. End users do not keep object files from previous versions of a package. Upgrading a package means recompiling all the binaries from scratch.

      Please see ccache.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    20. Re:too many dependencies by Anonymous Coward · · Score: 0

      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.

      You've got to be kidding me. The reason why I can rebuild FreeBSD from scratch in just a few hours time is that it doesn't rely on all that stuff. The point of open source is that you can recompile if it needs updating instead of depending on the vendor to tack on some other feature to make things work together. If FreeBSD had all that crap, the OS would be as bloated as Windows, which probably takes months to compile, assuming that they can get that far half the time.

    21. Re:too many dependencies by Anonymous Coward · · Score: 0

      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.

      Unfortunately everything will still take as long to do, because dynamic languages are slo-o-o-o-w, and although it's announced every year that somebody's proven that a JIT could theoretically run as fast or faster than native code, so far nobody's actually built one that can do so outside contrived tests.

  13. In Soviet Linux ... by Anonymous Coward · · Score: -1, Troll

    ./configure
    make
    make install
    open4free (c)
  14. NETCRAFT NOW CONFIRMS: *BSD IS DYING by Anonymous Coward · · Score: -1, Flamebait

    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

  15. Re:NETCRAFT NOW CONFIRMS: *BSD IS DYING by IamScared · · Score: 1

    Yeah. And I'm using it right now.

    I see dead OSes, see?

    --
    FreeBSD: Because Computers Can Be Fun... Again.
  16. Oh, yes. by Estanislao+Mart�nez · · Score: 1
    I happened to have the bad luck to upgrade from a gimp-2.0pre3 built before gnome 2.6 hit the CVS, to a gimp-2.0 final from after gnome 2.6 entered. That was really awful, because the FreeBSD gimp port wouldn't build against the older libs the way you describe.

    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.

  17. Re:NETCRAFT NOW CONFIRMS: *BSD IS DYING by Anonymous Coward · · Score: -1, Offtopic

    Is it really the first time you see a BSD is dying post?

  18. Recommended step by Understudy · · Score: 2, Informative

    The article is nice and well written. I would however change one step.
    alias rebuild 'cd /usr/src && make update && make world && make kernel && mergemaster'
    to
    alias rebuild 'cd /usr/src && mergemaster -p && make update && make world && make kernel && mergemaster'
    The prebuildworld mode for mergemaster is a life saver. Read man mergemaster.

    1. Re:Recommended step by cos(x) · · Score: 3, Informative

      Actually, for 'mergemaster -p' to do what it's intended to do, you need to have the current source code downloaded already. So, you would need to exchange the order of this command and 'make update':

      alias rebuild 'cd /usr/src && make update && mergemaster -p && make world && make kernel && mergemaster'

  19. Issue #3?November 9, 2003 by beefdart · · Score: 4, Interesting

    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

    1. Re:Issue #3?November 9, 2003 by Anonymous Coward · · Score: 0

      "How the hell is this news? I love FreeBSD, its all I use. the only thing dead about it is bsd.slashdot.org"

      This is a zealot site for Sad Linux Fanboys
      don't expect anything relevent or truthfull about BSD or any other OS

      SlashDot - News For Turds Stuff That Splatters

    2. Re:Issue #3?November 9, 2003 by Anonymous Coward · · Score: 0

      It's slashdot, what do you expect? Quality?

    3. Re:Issue #3?November 9, 2003 by Anonymous Coward · · Score: 0

      Not really surprising, BSD users are experts at necromancy.

  20. Re:NETCRAFT NOW CONFIRMS: *BSD IS DYING by IamScared · · Score: 1

    Of course not. But it's my first bad joke about a BSD is dying post.

    --
    FreeBSD: Because Computers Can Be Fun... Again.
  21. Elegy For *BSD by Anonymous Coward · · Score: -1, Flamebait


    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.


  22. so true by Anonymous Coward · · Score: 0

    Have you ever used Debian? It's a similar experience.

  23. read UPDATING by knightbg · · Score: 2, Informative

    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.

  24. JITs are part of the solution by hak1du · · Score: 1

    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.

    Yes, indeed there is. .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.

    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.

    1. Re:JITs are part of the solution by Screaming+Lunatic · · Score: 1
      Yes, indeed there is. .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.

      You can use reflection.

      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.

      They don't remove compiled-in dependencies. They compile just-in-time. (Hence the acronym)

      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.

      The JIT solution and the C/C++ solution both need to recompile the translation unit. They do them at differnet times. And once again, if the header (interface declaration) changes, you still need reflection for the JIT solution.

      A JIT is not a silver-bullet. Not even close.

      Your solution is anagolous to the monolithic versus micro-kernel debate. Either the complexity is in the code or in the messages sent between modules. Pick and choose.

      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.

      Wrong. Reflection removes interface coupling between different modules. JITs compile code just-in-time.

      The C/C++ standards are mostly mute on modules. You are confusing modules (dll,so files) and translation units (.cpp files).

  25. Why is his method special? by hayds · · Score: 3, Insightful

    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.

    1. Re:Why is his method special? by drinkypoo · · Score: 1

      Not only that but it's actually harder than updating some of the other systems. Redhat is officially updated with up2date, right? Gentoo is emerge -uD world and then an etc-update process (which frequently sucks, but never mind that - I don't mind it too much when I'm updating.) He makes it sound like it's difficult to update other free Unixes/Unixalikes, which generally just ain't the case.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:Why is his method special? by takeda64 · · Score: 1

      I've used gentoo some time ago but process of updating gentoo is almost same as FreeBSD, emerge does job same as make world/kernel and etc-update as mergemaster. So comparing them and telling that is easier it's not really true, I would say that difficulty is actually equal in both systems.

  26. It's more risky than following the handbook. by TheLink · · Score: 4, Informative

    The article is actually riskier IMO.

    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 /etc/defaults/make.conf /etc/make.conf
    edit /etc/make.conf accordingly (compile options, whether ports openssl/openssh overwrites the base openssl/openssh etc)

    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 /etc and stuff to what your local custom config is like)
    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 /usr/src
    make buildkernel KERNCONF=kernelformachineA
    make buildkernel KERNCONF=kernelformachineB
    make buildkernel KERNCONF=kernelformachineC
    make buildworld
    cd /usr/
    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 /usr
    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 /etc/make.conf was correct etc.
    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 /usr/ports/blahblah/softwarename
    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

    --
    1. Re:It's more risky than following the handbook. by animus9 · · Score: 1

      Mergemaster is a painful step, and one that can often be confuse the user. It can usually be ignored.

      Mergemaster, in theory, is used to update the files in /etc. It is very kludgy, slow, and painful though. It makes a whole bunch of diffs between the existing files and the newly proposed files, then forces you to decide whether or not you want to replace them. The questions it asks are confusing, and it's not entirely intuitive as to what is going on. To me, it seemed as though it increased the likelihood of accidents that could be very hard to track down in the future.

      I could have wasted 3 hours sitting around looking at diffs trying to figure out what the hell was going on -- after about 20 mins I just gave up.

      In DFBSD you can use "make upgrade" which safely updates the important /etc files without having to mess around with mergemaster. There was a discussion a while back on the DFBSD mailinglist where it was determined that mergemaster wasn't a terribly useful step.

      --
      I eat bees -- they taste stingy.
  27. Feeding Tube Re-inserted into *BSD by Anonymous Coward · · Score: -1, Troll

    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.

  28. Re:NETCRAFT NOW CONFIRMS: *BSD IS DYING by Anonymous Coward · · Score: -1, Troll

    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.

  29. offer to overwrite /etc/passwd? Safe? UG! by lpq · · Score: 2, Informative

    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

    1. Re:offer to overwrite /etc/passwd? Safe? UG! by takeda64 · · Score: 1
      An update system that offers to overwrite /etc/passwd (and presumably every other security file) hardly seems like a safe or easy upgrade process.

      In FreeBSD /etc/passwd is provided for compatibility you can even erase it and system will work correctly (some programs may stop).
      This file is generated from /etc/master.passwd using command pwd_mkdb with option -p
  30. *BSD needs a new icon by Anonymous Coward · · Score: -1, Offtopic

    *BSD needs a new icon. Get rid of the devil. Use something like this, but without the clinton-era word balloon.

  31. Waiting months for a new version? by chrysalis · · Score: 1

    "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}}
    1. Re:Waiting months for a new version? by Anonymous Coward · · Score: 0

      Debian-stable ought to be renamed Debian-archaic. dpkg is a buggy piece of crap.

  32. Months? Huh? by Anonymous Coward · · Score: -1, Offtopic

    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.

  33. Wait a minute by Anomalous+Cowturd · · Score: 1

    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

  34. Hmm?? by lindmark · · Score: 1

    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?

    1. Re:Hmm?? by lindmark · · Score: 1

      Okay.. When I manually ran cvsup -g -L 2 stable-supfile it added a Makefile and stuff in /usr/src but if the article is supposed to be a beginners look at upgrading the system, why does he assume that we have upgraded once before? And still no sign of /etc/default/make.conf..

    2. Re:Hmm?? by ffsnjb · · Score: 1

      make.conf doesn't exist in a /etc on a fresh system. You moved it instead of copying it (ie mv /etc/default/make.conf ../ instead of cp /etc/default/make.conf ../ )

      If you run mergemaster after you cvsup, you'll get a fresh copy in /etc/default.

      --
      "Why do you consent to live in ignorance and fear?" - Bad Religion
    3. Re:Hmm?? by lindmark · · Score: 1

      No I havn't moved anything from /etc/defaults. If I had moved it it would still contain the defaults. The one in /etc/ only contains perl related tags. I have three 5.2.1 systems and not one of them has an /etc/defaults/make.conf And even after having run mergemaster there is still no make.conf there. Do you use 4.x or 5.x?

    4. Re:Hmm?? by ffsnjb · · Score: 1

      I hadn't checked on my 5-current box, but it appears you're correct, it doesn't exist on cvsweb (src/etc/defaults). My last comment was for 4.x machines, I guess I should have mentioned that. I didn't read the article, as it's rather irrelevant to me. I'm guessing the article is for 4.x?

      --
      "Why do you consent to live in ignorance and fear?" - Bad Religion
    5. Re:Hmm?? by lindmark · · Score: 1

      Yeah it must be for 4.x I guess. It would be nice if he mentioned that in the article though. The only way someone can tell it's for 4.x is that there is no mention about editing stable-supfile and changing RELENG_4 to something else.

    6. Re:Hmm?? by Anonymous Coward · · Score: 0

      I dont have a 5.x box right now. The job is requiring me to get "cozy/smarter" with linux and give up a 5.x machine to use for linux. It is different for the 5.x versions. I cant remember the exact location, it is somthing like /usr/local/examples/etc/make.conf.

      If you have run the box for more than a week the locate and whereis database will be there which is what these commands search, if not trigger them manualy. /etc/periodic/weekly/310.locate && /etc/periodic/weekly/320.whatis & a few minutes later (depending on what is loaded/stored on your system) you will be able to use either the "locate make.conf" or "whereis make.conf"

      Luke Watson

    7. Re:Hmm?? by unstable23 · · Score: 1

      5.2.1 doesn't work the same way as 4.x, for whatever reason - I guess a lot of the stuff in /etc/defaults/make.conf wasn't used in the same way /etc/defaults/rc.conf is, so they changed it.

      Anyway, you can find an example make.conf in /usr/share/examples/etc/make.conf

      Just copy that to /etc/make.conf and edit to taste.

    8. Re:Hmm?? by lindmark · · Score: 1

      Okay I will have a look at it. Thank you very much!

    9. Re:Hmm?? by Anonymous Coward · · Score: 0

      5.x have that file in different place (from memory) it is now in: /usr/share/examples/etc
      In 4.x it's located /etc/defaults
      Since 5.x is not called stable yet, many people still use 4.x.

    10. Re:Hmm?? by cgh4be · · Score: 1

      /usr/share/examples/etc/make.conf

      It changed in the 5.x series

  35. Ports upgrading is more painful by cpghost · · Score: 2, Interesting

    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.
    1. Re:Ports upgrading is more painful by ffsnjb · · Score: 1

      portsdb -uU takes a hell of a time to generate a new INDEX.db

      This just took me 10 minutes on a server that was under 50% load at start time, with a ports cvsup on Saturday. The machine is a k6-2 350.

      I don't think that's unreasonable considering how old my servers are, and the number of ports it has to chew through (10,000+, maybe 11,000 now.)

      --
      "Why do you consent to live in ignorance and fear?" - Bad Religion
  36. REASON WHY BSD IS DEAD by Anonymous Coward · · Score: -1, Troll

    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.

    1. Re:REASON WHY BSD IS DEAD by Anonymous Coward · · Score: -1, Flamebait
      You may know me as the "troll" that posts the "BSD IS DEAD" to every BSD story on slashdot.
      You can't be the BSD is dying troll. I am.
    2. Re:REASON WHY BSD IS DEAD by lindmark · · Score: 2

      Your post is disturbing on so many levels man. What ever happened with "best solution for the problem". Do you think your attitude of forcing people to write stuff for a certain system is gonna attract more people to linux? That's just insane. People use BSD because they like it and think it's good. People use linux because the like it and think it's good. I can't understand people who say that a certain system is better. If you think linux is better, use it!! But don't force your opinions on other people. It's one thing to argue that something is good but assuming your point of view is the right and the only way is just arrogant.

    3. Re:REASON WHY BSD IS DEAD by Anonymous Coward · · Score: 0

      I agree with you, for many people like me, linux is not really good choice. I chose BSD (FreeBSD) because I like it. Biggest advantages (for me) are that great handbook, cvsup tools, possibility, to build entire system from scratch, without big problems, ports, every program that I install (from ports) give me feel that is perfectly cooperating with rest of the software, I guess it's because there are no conflicts, everything is compiled, also I don't see so many advisories.

      If I would need to use Linux I would choose gentoo, since it tries to acomplish many things that makes FreeBSD great.

  37. who cares how gentoo/debian/redhat update... by Anonymous Coward · · Score: -1, Troll

    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.

  38. Update FreeBSD using PACKAGES not CVS / Ports? by skrowl · · Score: 1

    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/
    1. Re:Update FreeBSD using PACKAGES not CVS / Ports? by Anonymous Coward · · Score: 0

      Yes it is, but it doesn't seem to be very popular:
      http://www.freshports.org/security/freeb sd-update/

      Personally I like to do upgrade using source

  39. Wait a minute by Stevyn · · Score: 1

    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)