Ask Shadowman: Red Hat Linux Applications


July 2002

He's smart. He's attractive. He's got only one name like Buffy or Barney. And every month Shadowman answers the toughest technical questions anyone has ever dared ask a two-dimensional logo. This month's mission: To respond to your questions about applications that run on Red Hat Linux. A remarkable feat considering Shadowman's face is missing a mouth...

Join us again in August when Shadowman shows the grace of a ballet dancer and the rhetorical skills of an armchair, answering that one technical question you'd love to ask Shadowman if you saw him at LinuxWorld. Leaves the subject pretty open doesn't it? Ask away.

Send your technical question in today.

Got a question that you'd like Shadowman to answer? Ask him.



Dr. Dick drawled:
We note that Red hat 7.3 installs Tripwire but there is no initialization, etc.

Can you run through a simplified checklist for utilizing this product, obtaining e-mail reports, etc..

Shadowman says:
Shadowman won't run through a simplified checklist; the only running Shadowman does is for the restroom. After last call.

However, Shadowman *will* note that the Official Red Hat Linux Reference Guide has just what you're looking for: www.redhat.com/docs/manuals/linux/RHL-7.3-Manual/ref-guide/


Fred S. spluttered:
In your June Ask Shadowman you mention that next month is "ask Shadowman your questions about Red Hat Linux applications". I don't know whether this fits in to system or application categories but here goes....

I am MIS for a company which is tentatively trying Linux in selected areas. We currently use a Linux firewall and email server. I am looking to using it for a database server but I am uncertain about a maintenence issue to optimise performance.

I was wondering if there is a file defragmenting application for Red Hat Linux 7.x. I am told that the most recent Linux filesystems do not need defragging but have read that all operating systems have problems with file fragmentation. One of the techniques suggested in texts (for defragging Unix filesystems) has been using dcopy and dd to copy the filesystem to another partition and copying it back. A similar method is to backup the filesystems onto tape and then mkfs the partition and restore the data.

In the Windows world they use Diskeeper or Norton Speedisk which avoid the laborious methods outlined above and do not require bringing the system down.

I note that there is a defrag-0.73-1.i386.rpm at http://ftp.linux.org.uk/pub/linux/sct/defrag/ but I am told that this is for very early releases of Linux. Are there any more recent ones?

Does Linux suffer from file fragmentation and if not, how does Linux keep files from multiple users (all adding, deleting and modifying at the same time) from becoming fragmented and slowing file retrieval times?

Shadowman says:
Well, your question isn't strictly related to applications, but at least you know that this month's subject is applications. In Shadowman's book, this puts you above the unwashed masses that ask Shadowman to help them figure out why Red Hat Linux won't install on a 286 that their brother Cleetus used to keep a 327 off the garage floor while he fixed a spun main bearing before putting it back in the '67 El Camino currently holding down cinder blocks in their front yard. The 327, not the 286, that is. Even Cleetus isn't *that* dumb. Usually.

Anyway, back to your question.

Shadowman is a bit confused, because you mention that you are thinking about using Linux as a database server, yet you worry about file fragmentation. The reason that Shadowman is confused is because most databases don't bother much with filesystems -- they either directly access the disk drives on which the database resides, or they use database files that are preallocated (best done on a freshly-formatted drive, making fragmentation a non-issue).

However, Shadowman notes that you are spot-on as far as three truisms are concerned:

  1. Backup and restore is a defragmentation solution that will work for any operating system.
  2. All systems have file fragmentation.
  3. Linux does not have a problem with file fragmentation.

While truism number 1 is probably self-evident, isn't there a conflict between numbers 2 and 3?

In short, no. But before Shadowman explains why, it would be best to make sure all of Shadowman's readers are on the same page with respect to this fragmentation thing. Time for some ASCII art...
******************************

Assume that this line of 30 *'s is a disk drive. Each * represents an individually-allocatable chunk of storage (often called inodes, blocks, sectors, or Albert -- Shadowman just wanted to see if you were paying attention). In this case, the * indicates that each chunk is not allocated; the disk drive is empty. Next, let us write three files (named A, B, and C) to our disk drive:
AAAAAAAAAABBBBBBBBBBCCCCCCCCCC

Our disk drive is now full. But look at the position of the files -- they each reside in one contiguous area of the disk drive. Now here's where it gets interesting. Let's delete file A:
**********BBBBBBBBBBCCCCCCCCCC

Create a newer, slightly smaller file (call it D):
DDDDDD****BBBBBBBBBBCCCCCCCCCC

Delete C:
DDDDDD****BBBBBBBBBB**********

Create a new file (E):
DDDDDD****BBBBBBBBBBEEEEE*****

Create another new file (F):
DDDDDDFFFFBBBBBBBBBBEEEEEFFFFF

Voila! File F is fragmented.

Given a bit of thought, it's easy to see that whenever there are many files of different sizes being created and deleted, file fragmentation *will* happen -- it's inevitable.

The crux of the issue is that, unlike other operating systems that Shadowman won't mention, Linux filesystems tend to keep file fragmentation to a minimum. So while all systems have file fragmentation, in practice fragmentation under Linux is kept to a low enough level to not impact system performance.

So while "defraggers" exist for Linux, there is little call for them. Shadowman has never even seen one used on a Linux system, in fact.


Ron H. jabbered:
What's the best open source server (email, calendar, todo)to use with Ximian's Evolution client, if people don't want to use MS-exchange, Lotus Notes or Caldera's volution?

Shadowman says:
Although Shadowman personally eschews mail clients with graphical interfaces, Shadowman does realize that it takes all kinds to make a world. As far as email is concerned, Evolution can interact with servers that speak:

  • POP
  • IMAP
  • UNIX-style mbox spool files
  • Maildir-format directories

Since Red Hat Linux comes with support for sendmail, postfix, POP and IMAP, you are pretty much ready to go in terms of setting up an email server for clients using Evolution.

That leaves calendar and tasks -- functions for which Evolution does not require a server. Therefore, once you have mail handling sussed out, you should be ready to go.


Blasso N. prattled:
I am interested in setting up a firewall for my machine, a PIII/500mhz, with a cable connection.

But I'm a *total* newbie at this. So, my question: Is there an application with a GUI that can help me decide what services to allow/disallow?

Shadowman says:
Shadowman is certainly glad to see someone interested in security -- no sense in making life easier for those script kiddies, eh? And since you've mentioned that your system is connected to the Internet via a cable modem, Shadowman assumes that you are using Linux at home. You didn't say which version of Red Hat Linux you are running, but Shadowman will assume it is a somewhat-recent version.
Shadowman's column, Shadowman's rules, after all...

In this instance, Shadowman recommends that you take a look at lokkit (or its more graphically-oriented cousin, gnome-lokkit). These applications will create a perfectly serviceable set of firewall rules for the average home Linux user. They work by generating rules based on the answers you provide after reading simple descriptions for each type of access. And the best part is that you already have it -- it's included with Red Hat Linux!

Of course, if your needs are a bit more sophisticated (but still not to the point of calling vi your primary firewall-creation tool), these other resources might be of interest:

Firewall Builder (www.fwbuilder.org/)
Firestarter (firestarter.sourceforge.net)
Mason (www.stearns.org/mason)

Best of luck keeping the bad bits out!


Doug H. divulged:
As one of the early steps in converting myself from OS/2 Warp to Linux I decided to rebuild my home system to Red Hat and convert all my functionality to Linux apps. The theory is that my home use isn't really all that demanding. Browser for the Web, FTP client, telnet client for logging onto Bulletin Board Systems, QWK packet reader, Text Editor, XTreeGold clone and a couple of games like solitaire would do the trick.

Of course, the app I thought would be the easiest (Telnet client) turned out to be next to impossible. There's an app called mTel written for both Warp and Win32 that properly interprets the old BBS ANSI codes into colors and shapes as well as allowing "Zmodem downloads" from a BBS through a telnet session. I launch each of my mornings with this app to play Global Wars and download a QWK packet from Nebeaux Nerdinski BBS and I haven't been able to find a compatible app for Linux anywhere.

Shadowman says:
Even though Shadowman is sufficiently old enough to have been part of the golden age of the BBS, Shadowman never quite "got it" when came to all things BBS. That said, far be it from Shadowman to keep a person from their preferred method of ignoring their significant other for hours on end.

A little experimentation with ardvark.com (hey, it was the first BBS on the list), xterm, and GNOME Terminal showed Shadowman the problems the lack of support for so-called "BBS ANSI" escape sequences would cause. Why, all the pretty menus are bordered with umlaut'ed A's and upside-down question marks! The horror!

So Shadowman did what any self-respecting Linux geek would do -- a Google search on these terms:

bbs linux ansi telnet client

There appeared to be some possible solutions in the search results, but the one that seemed the most interesting was using the Minicom communications program in conjunction with a nifty little gem called modemu.

Modemu makes something as sophisticated as a telnet connection look just like a good ol' Hayes Smartmodem. Despite this being an apparent step backwards, it is actually a good thing, because a modem is exactly the type of communications device Minicom understands.

You can find the modemu sources here: www.ibiblio.org/linsearch/lsms/modemu-0.0.1.html

Modemu looks a bit old, but it built with no problems on Shadowman's Red Hat Linux 7.3 system.

After building modemu, and running it with a command like this:
modemu -e "at%b0=3%b1=3" -c "minicom -c on -o -m -p tty%s"

Shadowman found that Minicom started. By typing this "dialing string" into Minicom:
ATDT"ardvark.com

Shadowman was able to connect (via telnet) to ardvark.com using Minicom, allowing Shadowman to take advantage of Minicom's wonderful ANSI support (which produces results somewhat akin to watching an ASR33 TTY through multi-colored sunglasses), not to mention Minicom's ability to do zmodem downloads (which Shadowman didn't try -- pictures of aardvarks don't exactly float Shadowman's boat, so to speak).

Shadowman isn't sure if this solution is as good at the mTel application you mention, but it should get you a step closer to BBS'ing under Linux.


Jamie D. squeaked:
I'm seriously considering switching to Linux exclusively at home but I have one problem. I have years worth of Quicken files that I will still need access to under Linux. Is there a good Quicken equivalent out there or is this something I'll have to end up doing myself in a spread sheet?

Shadowman says:
Shadowman knows just how you feel -- you feel ready to make the move to Linux, but there's one thing holding you back from complete open source Nirvana. In Shadowman's case, it was Shadowwoman -- her addiction to Solitaire was, well, unnatural.

Luckily, in your case the solution to your problem is relatively straightforward. Red Hat Linux ships with GnuCash, which can import the QIF files that Quicken creates.

As for Shadowwoman, a little AisleRiot went a long way towards a completely open source Shadow Lair.


Dennis K. confessed:
We use Lotus Notes (running on RH 7.2) for 100+ work flow applications. I would like to write new applications in a web based open source environment that does LDAP user authentication, and handle somewhat complex work flow. Most references to work flow I've found are limited to the approval process to publish web pages.

A help desk work flow process is one example of an application I would like to move to the open source environment. The work flow in the help desk application is as follows:

a user opens a problem
the help desk reviews the problem and assigns it to technician-1
technician-1 re-assigns the problem to technician-2
technician-2 fixes the problem
user confirms the problem is fixed.

Is there an open source direction you would suggest?

Shadowman says:
Shadowman, not knowing a thing about work flow (let alone little more than a passing familiarity with this "work" thing), had to delve into the honeypot of open source goodness known as freshmeat.net. Here are the tastiest-looking morsels Shadowman found:

OpenSymphony Workflow (www.opensymphony.com/osworkflow)
Piper (bioinformatics.org/piper)

Are these any good? Shadowman doesn't know, although OpenSymphony seems to be 100% Buzzword Compliant -- a hit with Management for sure!


Walter C. blabbed:
I am relatively new to linux, but have extensive Windows background, along with heavy network management experience. I am using Red Hat 7.2 (the 7.3 boxes came in 2 days after my purchase-bad timing). My question is what is the best way to learn the various methods of installing software downloads that come in .tar.gz formats, and how do these differ from rpms?

Most software I get is zipped up and usually does not have a straight forward method for installing. What are the primary files to look for to get install instructions?

I do like the product, but the learning curve is still a little steep, and I am needing to get some of my applications up and running so I can use the system effectively.

Shadowman says:
Shadowman understands completely -- it's not quite as straghtforward as what you're used to, is it?

First off, you should be aware that the three file formats you mention are not only different in terms of how they store data, but also different in terms of how they are normally used.

The .rpm files are used to hold applications that are ready to be installed -- the programs, data, and any installation-specific commands (Shadowman kindly requests that the RPM hacker in the back row shut up about source RPMs for the moment). Issue a single RPM command, and the application contained within the .rpm file is installed and ready to be used.

In general, tarballs (a friendly nickname for a .tar file -- the .gz just indicates that the tar file has been compressed) are used to store all the files necessary to *build* a given application. This means that all the files need to be extracted from the tarball, the software built from the sources -- and finally -- installed on your system. As you might imagine, this can be a bit trickier than simply installing from a .rpm file.

Zip files aren't commonly used in the Linux world; functionally, they are equivalent to tarballs, and are more often used in the Windows universe. Still, you might run across the occasional .zip file containing Linux-related software, in which case you would treat it the same as you would a tarball -- open it up, build it, and install it.

Unfortunately, there is no best way to learn how to install software than to just get your hands dirty and do it. There are many different approaches software developers use, so there's no single cookbook-style recipe that will work in all cases.

However, normally a tarball will have a README and/or INSTALL file that should help get you started. But be aware that you will rapidly become familiar with Linux-style sofware development concepts and tools -- you'll be building software from the sources, which is not likely to be something you've done much of under Windows.

Best of luck with the learning curve; after all, if Shadowman can learn Linux, *anyone* can learn Linux!


Tony W. yammered:
What other options and applications are there that can produce documents in these unfortunately popular formats? What else does "Office"?

I use Red Hat at home and occasionally I need to create a documents in a popular format for other uninformed people. I have been using Sun's Star Office 5.2 and it presented an unforseen advantage. My school age children were able to use it with little or no coaching. To them it looks like another popular Office suite.

Shadowman says:
Mr. W, Shadowman applauds your exposing the little W's to Linux.

If you've used Star Office, you and the diminutive W's will feel right at home with its 100% open source cousin, OpenOffice. Head over to www.openoffice.org and check it out!


Enrico S. confabulated:
Do you know of a MTA, which can act also as a MDA with the following options:

- if mail for a user arrives, check, if user's host is up and send a signal (RPC ?) to the client to fetch the mail, be it an Apple, PC or a Linux system

- automatically de-/encrypt mails. I just wondered, if it is possible, because the MTA would have to send the pub.key to everyone it is sending mail to... Is that right?

- only use encrypted transfer, within a heterogen network with Linux-clients, Apples and PCs. Would you use TLS?

It does not matter, which MTA to use, I would thank for any tip and hint.

Shadowman says:
No, Shadowman doesn't know of such a mail transfer agent. However, if you can write one that does all that, you have a promising future as a software engineer...


Rob W. mouthed:
I recently tried to collaborate on a spreadsheet with a co-worker running Windows/Excel. Bringing the sheet into Star Office was a breeze and everything was in its place. However, once the document was saved from Star Office and opened in Excel, a lot of the formatting was changed.

Is there some easy way (i.e. some Macro) to keep the spread sheets EXACTLY the same?

Shadowman says:
Ah, your comments have transported Shadowman back to the first days of his career as a computer geek. Nineteen hundred and eighty-one, it was, and although dinosaurs didn't roam the earth then, there were word processors.

Multiple word processors.

Each with their own preferred file format.

Sure, it was possible to save a document in the format of another word processor (saving a document as a MultiMate document under WordPerfect), but it was quickly obvious that the resulting document was either:

  • A little different (if you were lucky)
  • Vastly different (if you were not lucky)
  • Impossible to load (if your luck had split for Vegas to hook up with a little old lady sitting in front of a nickel slot machine)

The reason for the differences between the same document saved in different formats was due to the fact that many of these file formats were never publicly documented. This meant that the engineers writing the MultiMate format code for WordPerfect (for example) had to reverse-engineer the file format by studying -- byte by byte -- many different MultiMate documents.

If these engineers did their job well (if they studied hundreds of different files showing all the different MultiMate features in use, and continually tested and refined their code), documents saved under the alternate format would look pretty good. On the other hand, if they didn't do such a great job, the resulting documents would be, um, less than stellar in their quality.

Now take a moment to consider how motivated a bunch of software engineers are to add support for a "foreign" file format to their pride and joy. Add to the mix the fact that there's never enough time to code all the features that the company's marketing department has been promising customers. And finally, stir into the mix the basic fact that they have no control over the "foreign" file format, and that it could (and almost always did) change shortly after their product hit the street.

Not a recipe for high-quality document interchange, is it?

Fast-forward to, say, 1991. With the rise of one company's set of office applications, and the slow death of their competitors, a whole generation of computer users hasn't really had to face the issue of sharing documents between different applications.

It's 1981 all over again. At least the clothes are more comfortable this time.

What can you do about it? There are a few things you can try:
  • See if there is a "lowest common denominator" file format shared by the two applications. If you find one, note the irony surrounding the fact that the more simplistic file format doesn't support all the nifty features people love to use to make their documents "special". Using RTF (Rich Text Format) or CSV (Comma Separated Values) would fall into this category.
  • Trim down your usage of special features, and see if the resulting files work better (please refer to the irony mentioned in the previous category -- it applies here, as well).
  • Try *all* the different formats that are shared between the two applications. Sometimes applications have the option to save documents in an older version's format. Or, if you are trying to get a file from application A to application B, don't be afraid to save the file in application C's format (assuming both A and B support C). You might find a "sweet spot" that gives you good results.

If all else fails, find a Mac user and tell them you're buying the first round. They've always had to deal with this kind of thing -- misery loves company...


Rich B. sounded off:
I need to find a Citrix like solution for the company I am starting with next week.

I am exploring obvious solutions in the Microsoft world, but find it necessary to explore Linux and open source alternatives, as this is a municipality on a very tight budget. I am having trouble finding information on "thin client" solutions for Linux. Do they exist, and what does Red Hat (my favorite Linux distribution) offer?

Shadowman says:
Shadowman doesn't feel your question is a simple one at all -- you haven't given quite enough detail for Shadowman to understand what it is you're trying to accomplish. There are many ways to skin that proverbial cat known as "thin client."

However, Shadowman will note that there is a Citrix ICA client for Linux (though it's not open source). There is also support for VNC (Virtual Network Computing) built into Red Hat Linux (check out http://www.uk.research.att.com/vnc/ for more info)

Finally, if you are going to implement an all-Linux solution (and you have bandwidth to burn), there is plain ol' remote X.

Shadowman wishes you the best of luck with your new job.


Varadharajan T. intimated:
I want to run a VB Application in Linux 7.2. Is it possible!!

If so, Can U send the documentation/URL.

Shadowman says:
Visual Basic on Linux. The very concept leaves Shadowman aghast; like putting mustard on a hot fudge sundae.

However, it appears that there are others that share your interests; according to freshmeat.net, there is something known as GNOME Basic (www.gnome.org/projects/gb). It doesn't look like it's ready for prime-time, though some interesting progress appears to have been made.

Will you be having Jack Daniels Old No. 7 Mustard or the Reine de Dijon Moutarde a la Framboise?


Jones H. recited:
I have my Oracle database installed. Now I want to configure scripts that automatically backup the database. The script is called daily_backup. So how can I make it auto run say at midnight daily?

Shadowman says:
Shadowman thinks that what you need is cron. Cron is used to run commands at predetermined times on an ongoing basis. One could also use "at", but that command only works once. It's much better for sending mail to your boss at 4 in the morning saying how you just managed to finish that big project and you won't be in tomorrow because you need to get some sleep.

Not that Shadowman has ever done such a thing, mind you.

According to the crontab(5) man page, something like this will run your script every night at midnight:

0 0 * * * path/to/your/script/daily_backup

Keep in mind that cron will happily mail any output from your backup script to root; you can redirect this by adding a line like this to your crontab:

MAILTO=dba

(Changing "dba" to whatever account you like.)

Or, assuming the script doesn't produce any useful output, simply redirect it into the bitbucket like so:
0 0 * * * path/to/your/script/daily_backup > /dev/null 2>&1

You should now be able to sleep nights secure in the knowledge that your databases are being backed up.

And let's keep that little "at" secret be you and Shadowman, eh?