FreeBSD is very much a source-based system. The operating assumption of the architects of FreeBSD is that you will compile most things from the source code. The system is designed to work that way, and does it exceptionally well. The famous "Ports Collection" is rather unique in making a large number of packages available ready to build and seldom requires anything but a few commands in a terminal window. Having tried to build specialized applications on several different versions of Open Source operating systems, I can assure you that compiling on FreeBSD is about as easy as it gets.
Our problem is that dialup connections are a major bottle-neck for really big programs. If you have time, and your connection is fairly stable, you can download the source code for something like Mozilla using the ports system, and it's quite likely to be fine. However, the source code for Mozilla is massive, and could easily require you to get it in chunks over several days via FTP. That is, providing you use an FTP client that knows how to start where it left off last time -- Konqueror does just fine at this.
You can also download pre-made packages, but you would be forced to use whatever version was available when your version of FreeBSD was released. Something like Mozilla is a moving target, and newer version often have really useful improvements. The newest version is available for FreeBSD, but it is always built with all sorts of newer supporting libraries, newer than you have on your system. It seems nobody builds Mozilla with any sort of backward compatibility for the standard releases of FreeBSD. You'll have to update everything at the same time. For computers with a good fast connection, that's fine. They can be kept up to date with regular rebuilding. We dialup users will have a hard time playing that game.
Commercial users of FreeBSD and serious hobbyists will keep up with the current version of everything, but ordinary desktop users should probably avoid that sort of thing. Aside from security updates, it's best to avoid the upgrade merry-go-round. That doesn't mean we are stuck with some sort of second-class provision, though. You recall I advised everyone to install and enable Linux compatibility. That's because with programs like Mozilla, there are far more Linux users out there, and the Linux versions are more backward compatible. And we can run them as they are. In the case of Mozilla, it's slightly complicated, but with a couple of minor adjustments in the Makefile for Linux Mozilla in the ports system, you can download the .xpi files for the most recent version, run the script and it will install and run just fine. On some machines, it will run faster than it would if you ran Linux itself. For something simpler, like Mozilla-Firebird, you need but unzip the files and put them in a convenient directory and it will run with no adjustment at all. Very few Linux applications won't work in FreeBSD.
If your supplier for the FreeBSD install CD also offers the full collection of packages built for that release on more CDs, it can save you a great deal of time. You can get a good idea what's available by visiting the FreeBSD Ports Page. You can search the database for the version of FreeBSD you run, and there are links to download binary packages ready to install. Please note that the assumption here is that you are running a standard release of FreeBSD, so be sure to select in the drop down list your version with the "RELEASE" tag, not "CURRENT." So you choose your package, click the link that says "Package" under the description, and download something. When finished, you need to open a Konsole window, and login temporarily as root:
You'll be asked to type in the password. Afterwards, you'll be at a
different style of prompt. You should be still in your own home
directory, where I'm assuming you saved the package just downloaded.
ls just to be sure -- it should be somewhere in the
list that appears. Then, type the command
Obviously, "something" is replaced by the package name. If
there are no problems, if you have all the other stuff needed for that
package, it will install and set it up, then return to the root prompt.
If there is something missing, you will get an error message with a
specific list of packages that you must have before installing this
one. Go back and get them, install them, try again to install the
original package, and you should be set. It's a good idea to move them
to another place when this is done, to avoid clutter in your home
directory. I recommend you store them in
unless you can't afford the hard drive space. In that case, simply
delete the packages that were successfully installed.
However, assuming the worst case, we are going to download and install a small and simple package that is very useful. Having logged in as root in a Konsole window, type
You need to be in the directory with the application you are building. If you are one folder above, you'll be building everything in that category -- all the various editors, in this case. Next, from the KDE menu, open the KPPP program and connect. When that's done, click in the Konsole window and type
You should see some messages flashed on the screen; try to read them
and understand what's happening. Usually, there will be a hunt for the
source files, then not finding them, an attempt to download them. There
will be a display of progress. Then the package will be configured,
then it will be compiled and so forth. Finally, you will see some
message indicating the application was registered and the prompt will
come back. Now type
make clean and you are done. You can
exit your root login by typing just that:
forget to disconnect from the Internet unless you have a reason to stay
With some packages, you'll see the process downloading other stuff that it has to have before going on to the main event. The editor named "joe" runs in the console/CLI, which means it also works in a Konsole window in KDE. Konsole is one of several "terminal emulators" that allow you to operate as if you were without a GUI, but do it while running the X server. It compares favorably to a DOS prompt in Windows. However, there are other terminal emulators, and one is called "xterm." It's also on your system, because it's a part of the XFree86 packages. Got GUI? You got xterm. There are others, and we will learn to customize in a later article.
For now, let's look at our new editor, joe, in the Konsole window.
At the prompt, simply type
joe. You should see a border at
the top and a message. If you type
^K and then
H you'll get a help section at the top of the screen.
Keep an eye on that top border, where messages appear from time to
time. Depending on what you do, you'll also see some messages at the
bottom line of the screen. But the help summary at the top has
everything you need to get started. Every good user of FOSS will
determine to learn as much as possible on their own, so I will let you
handle this for yourself from here. Just remember, you can save and
X or not save with
However, I will tell you that it is possible to make some
joe with a file in your home directory.
Open the file browser (the icon for "Home") and click the
root folder icon on the left side. Navigate to
/usr/local/lib. Click on the icon so that the main window
displays what's in that directory. There you should see a file named
joerc. Look on the left window and identify your home
with your chosen user account name). Open folders if you need to by
clicking on the plus signs (+) but without clicking on any folder
icons. Now, click and hold on the
joerc file icon and drag
it across to where your home folder is shown until it is high-lighted.
Let the mouse button go and you should see a short list of options.
Select "Copy here". Now navigate to your home folder by
clicking the "Home" icon in the toolbar at the top. You
should see a
Open Kedit and use the "Open file" function to open this
joerc file. You can read the instructions written there.
You may not understand all the options, but set those you do
understand. Notice that options are set by making them start on the far
left margin. There are examples for you to look at. Again, you are
pretty much on your own, as you learn to experiment and try it out.
Save it and then change the name of the file. Configuration files like
this need to remain "hidden" by putting a period (or dot) in
front of them. You already have several others there. In your file
browser, right click on the file icon, select "Rename" and
HOME key. Type a period at the front of the name,
ENTER. It should change to a shadowy icon to
indicate it's not normally visible.
If you are totally clueless, and you need to make it work today, you
can e-mail me for a copy of my .joerc. I have mine setup to write plain
text files a certain way. The right margin stops at 72 characters,
which is the Internet standard, and some of the keyboard commands are
different. I compose text in block format, with a blank line between
each paragraph. If the lines get too far out of place by changes, I
^J to reformat. Other composition settings apply to
any file with a
.txt ending and they follow the standards
I discuss in my e-text
guide. Voluntary adherence to standards is a very important part of
the Open Source way.
The reason I have chosen joe for this exercise is that it's the
easiest to use, and the most flexible console editor for newbies,
having the most options, but easy to understand. When you find yourself
needing to edit files from the console/CLI as root,
much easier once you've gotten used to it. You may browse the entire
ports collection at
http://www.freebsd.org/ ports/ and learn for yourself what's
available. You can check with your favorite Internet search engine for
more details on what the various applications do. Join a mailing list,
forum, or user group to get advice on which programs do what.
In the next tutorial, we will discuss setting up your internal mail server -- postfix -- to connect to the Internet, and other e-mail issues.
Ed Hurst is Associate Editor of Open for Business. Ed is also the Music Director for Grace Baptist Church of Kickapoo Creek, Texas. He loves computers, runs FreeBSD and reads all sorts of things. You can reach Ed at firstname.lastname@example.org.