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.
At this point, dialup users need to configure KPPP. From the KDE menu button, go to Internet, then KPPP. For the most part, the program options should be self-explanatory. If nothing else, click on the "Help" button. There really isn't room to cover the details of it here.
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 NEdit using the ports system, and it's quite likely to be fine. However, the source code for Firefox 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, but the ports building scripts are intelligent enough to start where you last left off if you stop the process before finishing.
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 Firefox is a moving target, and newer version often have really useful improvements, or security fixes. The newest version is available for FreeBSD, but it is always built with all sorts of newer supporting libraries, sometimes newer than you have on your system. It seems nobody builds Firefox 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 until they have some experience. Until you're ready, there's the Linux compatibility. You may recall I advised everyone to install and enable Linux compatibility. That's because with programs like Firefox, 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 Firefox, it's slightly complicated, but the install script in the ports system will take care of everything. On some machines, the Linux version will run faster than it would if you ran Linux itself. A very large number of Linux applications work in FreeBSD, and many are already scripted in the ports.
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: the assumption here is 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:
su 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.
Type ls just to be sure -- it should be somewhere in the
list that appears. Then, type the command
pkg_add something.tgz
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 /usr/local/pkg.
Simply create the directory like this:
mkdir /usr/local/pkg
Then move the package there:
mv something.tgz /usr/local/pkg/
If you can't afford the hard drive space, 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
cd /usr/ports/editors/joe
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. Dialup users, from the KDE menu, open the KPPP program and connect. When that's done, click in the Konsole window and type
make install
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. Next, 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: exit. Don't
forget to disconnect from the Internet unless you have a reason to stay
connected.
Basic tip: You can always stop the process by typing
CTRL+C (normally represented like this: ^C).
If you want to come back later and restart, it should resume where you
left off.
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 X.org packages. Got GUI? You've 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
exit with ^K then X or not save with
^C.
However, I will tell you it is possible to make some adjustments to
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/etc/joe/. 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 directory there:
/usr/home/user (replace user 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
joerc there.
First, we have to change the permissions on the file so you can
edit. Right-click, and you should see a list of options, including
"Properties" at the bottom. On the window which pops open,
click on the "Permissions" tab, then the drop down bar near
the top of that page next to "Owner." Select the option
"Can Read and & Write." Click the "Okay"
button. Then, open Kedit and use the "Open file" function to
open this joerc file. You can read the instructions
written there in the file itself. 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. However, I offer an more advanced HOWTO on
customizing Joe here. Save this file
and then change the name. 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 hit the HOME
key. Type a period at the front of the name, then hit
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
type F3 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 for what it does. When you find yourself needing to edit
files from the console/CLI as root, joe is 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.
Ed Hurst
Updated 09 January 2007
COPYRIGHT NOTICE: People of honor need no copyright laws; they are only too happy to give credit where credit is due. Others will ignore copyright laws whenever they please. If you are of the latter, please note what Moses said about dishonorable behavior -- "be sure your sin will find you out" (Numbers 32:23)