I've decided to finally call it a day as far as FreeBSD is concerned. While I really like the base system and the FreeBSD approach to system configuration, the biggest drawback in my book is the ports system.
For those unfamiliar with
ports, reading the
Wikipedia page would be handy from this point onward.
Now the majority of people in the BSD world swear by ports. Indeed reading on online forums, I got the impression that the ports system is why people choose FreeBSD over Linux. In many of the cases, I get the distinct impression that these people haven't really considered the real benefits of a thoroughly tested and workable binary package management system like Debian. I don't want to get into the debate over which is better: compiling from source or using binary pre-compiled software. All I can say is that I hate to waste my time waiting endlessly for software to compile. My experiences with Gentoo in the past have taught me that it's near impossible to keep a source-only distribution updated frequently without sacrificing a huge chunk of your productive time.
You see, in FreeBSD there
are two methods of installing software: ports and pre-compiled packages. The problem with people who don't want to compile everything starts with the fact that the majority of FreeBSD software management tools are focussed and optimized towards ports. There are packages available, but they are never updated after they make it into a -RELEASE build. The -STABLE branch usually has updated binary packages but they are still behind in version compared to the ports. Another issue is that many (useful) ports don't make it into the package tree. All these aspects makes it an exercise in frustration for people who don't want to spend half their computer uptime compiling software from source.
The real issue with ports, in my view
The real issue with ports is that if you have a system that you want to keep updated with the latest versions of software, you have no choice but to use the ports tree and compile everything exclusively from source.
It's rather difficult and even unrecommended by FreeBSD users themselves to mix binary packages and ports in the same installation for the simple reason that package and ports dependencies vary and that trying to keep packages/ports mixed system up-to-date with only binary packages from the -STABLE branch is a clunky process prone to dependency errors which might arise from a package depending on a newer version the software only available as a port. This already happened to me a few times when I realized that if you want to use FreeBSD on a full-featured desktop system you are forced to use ports almost exclusively.
If there were better binary package management tools in FreeBSD and more up-to-date and comprehensive list of packages in -RELEASE or -STABLE, I would have no problems.
Finally for those who prefer NOT to be on the bleeding edge, ports is a constantly moving target. It's a "rolling" system that is kept updated by the FreeBSD community and is not dependent on any particular release of FreeBSD. While always using the latest and greatest has its advantages, it is to be realized that they are not as thoroughly tested as binary packages and can lead to problems when used with older releases of the FreeBSD base system.
The purpose of this article
I'm not out to bash FreeBSD or its philosophies here. I just enumerated reasons why I personally don't prefer its software handling mechanisms. I also would like to let other Linux users know the potential pitfalls you can face when you switch from one OS to another.
If you are a FreeBSD user and have any constructive suggestions do post a comment!
12 comment(s)
Leave a comment »It's an linux distribution geared to powerusers with a freedsb-like configuration and most packages are available as binary packages with easy ways to compile them yourself if you wish to do so. http://wiki.archlinux.org/index.php/Arch_Compared_to_Other_Distributions#The_.2ABSDshope you find this interesting,
greetings
kiepmad
Comment by kiepmad (visitor) on Sun, 16 May 2010 @ 14:39 IST #
Comment by Hari (blog owner) on Sun, 16 May 2010 @ 14:54 IST #
Comment by Fleet (visitor) on Fri, 2 Jul 2010 @ 21:07 IST #
Comment by Hari (blog owner) on Sat, 3 Jul 2010 @ 09:23 IST #
Comment by Laura (visitor) on Mon, 26 Jul 2010 @ 19:06 IST #
Comment by Hari (blog owner) on Mon, 26 Jul 2010 @ 19:11 IST #
Comment by Daren (visitor) on Fri, 28 Jan 2011 @ 11:09 IST #
Comment by Hari (blog owner) on Fri, 28 Jan 2011 @ 11:14 IST #
Comment by Daren (visitor) on Fri, 28 Jan 2011 @ 11:38 IST #
Comment by Hari (blog owner) on Fri, 28 Jan 2011 @ 19:14 IST #
1. Use tinderbox to build ports. This tool is easy to configure and provides a standard for building ports. Best installed on a server, I have installed it on a work server to grind out all the packages
2. On the desktop machine test new packages in a jail so as not to disrupt the main environment. To do this you need Xnest and tmux. With Xnest no DRI,
3. Two guys at work have installed PCBSD on their home machines with success. Still early days. A third guy had trouble with mouse support. I have run one box up quickly but not played much, busy with FreeBSD. I am now in the process of cutting over my personal webserver to FreeBSD from centos. It is an old p3 I leave on used for wiki, svn etc. FreeBSD will be easier to upgrade and recover from hardware failure.
Comment by Daren (visitor) on Mon, 7 Mar 2011 @ 17:20 IST #
Comment by Hari (blog owner) on Tue, 8 Mar 2011 @ 10:45 IST #