Linked by Gabe Yoder on Tue 11th Nov 2003 21:51 UTC
FreeBSD We've all heard the age old argument second only to the vi vs. emacs religious wars: FreeBSD Vs Linux. As a long time linux user, I decided that is was time I spent some time on the other side of the fence to see if it was any greener. Oh, and by the way, vi rules.
Permalink for comment
To read all comments associated with this story, please click here.
A few points
by random on Wed 12th Nov 2003 02:34 UTC

The sound card required building a custom kernel, ...

As people already pointed out, no need to recompile the FreeBSD kernel for sound to work, just load the appropriate module at boot time.

After you have installed a port, you can use "make deinstall" to remove it, however there is a bit of a snag. If you use "make clean" to avoid wasting disk space, "make deinstall" will not work. You must unistall the port as if the program was installed as a package.

You can use pkg_delete to remove it, packages installed from ports are registered the same way as binary packages. It's easiest to use "make install clean" to install an app, but I prefer using portupgrade(8) and portinstall(8).

Many ports have options that you can pass to the make command in order to enable options, but these have to be dealt with on a port by port basis and not set globally like portage's USE flags. There is a method to globally change the CFLAGS used by ports, but I never bothered to learn it (I trust the defaults).

Actually it's exactly the same as in Gentoo Linux, /etc/make.conf. As a Gentoo Linux user, it's interesting that you didn't just try the obvious location.

I tried to change my shell by editing /etc/passwd, but it seemed to be ignoring it. However, if I used "vipw" as root, I could edit it without any problems. I suspect that the system examines some sort of cached copy of the data in /etc/passwd, so any changes not reflected in the cache are not seen.

The data is actually cached in a db(3) style database, residing in /etc/pwd.db and /etc/spwd.db, so you have to run pwd_mkdb(8) after mangling with the password files manually. Or you can use the fine tools like pw(8), chpass(1) and maybe vipw(8).

Hint: If you use something like "emerge -vupD world" in Gentoo to see which packages need upgrading, you can achieve the similar thing in FreeBSD with something like "portversion -v | grep -v =". FreeBSD actually has one of the most flexible (once you get to know it) package management system's i've used.