Humour, comics, tech, law, software, reviews, essays, articles and HOWTOs intermingled with random philosophy now and then
Filed under:
Software and Technology by
Hari
Posted on Thu, May 13, 2010 at 10:53 IST (last updated: Thu, May 13, 2010 @ 11:00 IST)
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)
I just wanted to ask you if you know about archlinux.org?
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_.2ABSDs
hope you find this interesting,
greetings
kiepmad
Comment by kiepmad (visitor) on Sun, May 16, 2010 @ 14:39 IST #
However, that was a few years back when the project was still quite new. I'll have to take a look at it again.
I think that no many Linux distributions have this concept of "testing" like Debian does, where the software packages are neither too bleeding edge nor outdated.
Comment by Hari (blog owner) on Sun, May 16, 2010 @ 14:54 IST #
Comment by Fleet (visitor) on Fri, Jul 2, 2010 @ 21:07 IST #
Comment by Hari (blog owner) on Sat, Jul 3, 2010 @ 09:23 IST #
Comment by Laura (visitor) on Mon, Jul 26, 2010 @ 19:06 IST #
Also you can remove "Recommends" so that dependencies are limited only to essential libraries. APT::Install-Recommends setting also pulls in all the packages recommended by the distributor of the original package.
Comment by Hari (blog owner) on Mon, Jul 26, 2010 @ 19:11 IST #
Comment by Daren (visitor) on Fri, Jan 28, 2011 @ 11:09 IST #
But you know, really, with the hardware support levels in *BSD, I'm not sure it can be used with a laptop properly. I do wish support for hardware was on par with Linux as of today.
Comment by Hari (blog owner) on Fri, Jan 28, 2011 @ 11:14 IST #
Comment by Daren (visitor) on Fri, Jan 28, 2011 @ 11:38 IST #
As for PC-BSD, it looks interesting enough for me to want to take a look at it. I once used DesktopBSD but I think the project is more or less dead now.
Comment by Hari (blog owner) on Fri, Jan 28, 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, with DRI in a jail you could run your main and test environments in jails to insulate from host upgrades ie run 9.0 on the host and 8.1 in a jail. Will eventually take another look at this.
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, Mar 7, 2011 @ 17:20 IST #
The biggest drawback in my mind still remains hardware support for many of the components of my laptop. e.g. wireless, bluetooth etc.
Comment by Hari (blog owner) on Tue, Mar 8, 2011 @ 10:45 IST #