August 8, 2003 Edition

By Adam "StoneTable" Israel and Jorge "whiprush" Castro

Now that the LinuxWorld hype is all over we can get put away the news announcements and bring you some useful tips on Linux and other OSS goodies. Since StoneTable needed a break to continue his work on the OpenForum archive system, we brought in some #linux and LKF regulars into the mix to bring you more of what you want; tips and tricks. Don't worry developers, we'll have more for you next week when StoneTable returns.


New X11 Project

The Xouvert project launched this week as an experimental branch of XFree86. Rumors of an X fork have been floating around for quite some time, plus some ridiculous accusations of an X hijacking by the GNOME Project. Most "facts" around this whole issue have been nothing but unsubstantiated rumor and opinion, so we're going to wait to see what happens, since the project has not released anything yet. Let the completely speculative arguments about X begin!


A/S/L? over SSL

Secure corporate Instant Messaging is all the rage these days with most major providers vying to provide businesses with secure IM services. Gaim-encryption is a plugin for Gaim that encrypts your conversations with OpenSSL over the existing IM networks, given that both parties have GAIM and the plugin. That is a downside, but there is also a plugin for GAIM on Windows. This could be the answer to secure cross platform IM for small businesses without having to go through the trouble of setting up a Jabber server or paying out the nose for a corporate IM solution dependant on some proprietary security system. Since Gaim-encryption is dependant on Yahoo, MSN, and AOL's networks, for you probably won't get the reliability needed for a large firm, but for secure IM on the cheap, it's hard to beat.


Fedora for Red Hat

Joe Barr attempted to use Fedora for Red Hat, but gave up. Fedora is a project to bring updated third party applications to Red Hat Linux. RPM, the packaging format originally developed by Red Hat, is the packaging format of a good number of Linux distributions, and it's the standard according to the Linux Standards Base (LSB). Unfortunately, RPM has been wrongly criticized for its lack of gracefully handling dependencies. This is usually because most users do not think to use up2date to install their packages, instead attempting to install an RPM by itself. This is akin to grabbing .debs and tarballs by hand, which would be just as painful. So what's a Red Hat user to do?

Apt, Debian's Advanced Packaging Tool, was ported to some RPM distributions in a hope of relieving users from "RPM Hell". While the tool is helpful, the critical piece of Debian's success with apt really has nothing to do with apt or dpkg, but the actual community of packagers. Apt for RPM has one part of the equation, the tools, but so far it has lacked the developer and packager resources to make installing applications cumulatively easier on Red Hat. This is what Fedora wants to change. Though only at 200 or so packages, the Fedora project is at its infancy, it will take quite some time for the project to match the wide range of packages offered via Debian (11,000 packages) or Gentoo (5,100 packages).

Fedora also offers the yummy package manager as well as the Synaptic GUI to help users manage their packages. So Red Hat users, which do you use? There is also FreshRPMS, another repository with third party packages. We know many RH administrators use apt as a free alternative to up2date; what other tricks can you share with the Ars community? Will third party repositories for commercial distributions ever be as popular as the non commercial ones?


Developer Blogs - Life on the Bleeding Edge

One of the most attractive aspects of Open Source Software (OSS) OSS is the way in which development is done in the public. This makes it very easy (and tempting) to play with bleeding edge software. Armed with some simple links and resources, anyone can play with the latest OSS coming down the pipe. Some OSS developers keep an online journal, or blog - where they chronicle their projects and point out curious things that might interest users, and many times, they ask for feedback. The Mozilla community has a well established blog system where you can find feedback on nightly builds, ideas for thinktanks and give feedback straight back to developers.

KDE users will appreciate the Blog of Rob as well as Tales of the Racoon Fink. No, we don't make these names up. KDE's Developer Journals also offer you a peek inside the mind of a whole group of KDE developers.

GNOME users can check out planet gnome for the GNOME universe. From here you can keep track of the latest Evolution developments, the new Bluecurve, as well as pointers to FAQs you won't find on normal news sites, like the Unofficial OpenOffice Hacker's guide. If building OpenOffice doesn't break your spirit and send you back to the Land of the Stable, nothing will.


Developer's Corner


TTT: Tools, Tips and Tweaks

Apt has magical cow powers - This simple bash script makes it much simpler to update a group of apt-enabled servers for you. You weren't ssh'ing into each rackmount server one at a time were you?

hosts="host1 host2 host3 ..."
for i in $hosts; do
  ssh root@$i apt-get update
  ssh root@$i apt-get upgrade


Note that this script can work for most anything, so substitute emerge or up2date if necessary. Unfortunately, with multiple hosts you still have to enter a password, making it less efficient. To deal with this we need something to handle our trusted hosts for us:

LUSSH - Key Management made Easy - LUSSH comes with the LUFS utility. LUFS by itself is extremely useful, allowing you to mount remote hosts to your local machine via ssh. This means that instead of ssh'ing or scp'ing files back and forth, you can just mount the remote system and use it as if it was available locally. LUFS does caching for you and makes it all generally transparent.

LUSSH however, also handles your ssh keys for you. For example, let's say you want to write a script to backup your files to a remote host over ssh. Normally ssh prompts for a password, making it both annoying and dangerous to work around. (You weren't going to store that password in a local file were you?). The ideal solution is to go passwordless with trusted authentication via your ssh keys. Normally this involves manually moving the keys around. LUSSH just asks you the hostname, accepts your password, and then swaps the keys for you. From then on you do not need to input your password to authenticate to that remote host. Now you can freely script your task without worrying about the password prompt. Now let's say you need to do this from multiple locations and or hosts, this brings us to:

Screen - Multiple Terminals - Screen, the terminal multiplexor. Screen is like a window manager for your console. Unlike a virtual terminal, screen allows you to detatch from a terminal. While detached, the program you were running continues to run. You can then reattach later and continue your task. This is useful if you want to run a bunch of tasks but don't want to keep an ssh session open or if you lose your connection. Screen is almost always used when running a game server in Linux. You can attach occasionally to check the server output without having to interrupt the server. First, we want to connect to our remote host via ssh and then run screen:

jorge@piccolo:~ ssh trunks
jorge@trunks:~$ screen

Note how my remote machine doesn't ask for a password, thanks to LUSSH. Now, execute whichever command you wish, for the example make it something that will remain in the foreground. Our "watch uptime" from a while back will suffice. Now, you've got something running on the remote host, and we want to detatch it (it will still be running, but your terminal windows will be free). Hit CTRL-A, then d. You are now detached. The process you were viewing run is still running... you can confirm this with ps -a. You can now exit back onto localhost (piccolo in this example), yet the program continues to run on the remote host even though we're not connected to it. To reattach, ssh back into the remote host and at the prompt type "screen -r". Screen will return you to where you left off. This is just a simple example; what other ways are Arsians using screen? (IRC is a popular use for this) Let us know in the Discussion.


Cool App of the Week

Synchronization is an important task that users do, especially if you own multiple computers or a laptop. This week's application is for keeping all your data files up to date, regardless what PC you are on. Unison is a file synchronizer that is a easy for new users to pick up. While rsync is great for scripting servers and unmonitored operation, Unison is a client side application that you can use when you don't feel like setting up rsync. And, like rsync, it is cross platform so you can keep all your machines synchronized. While rsync is more of a mirroring tool, Unison is designed for normal users that don't need the scripting capabilities of rsync.

The feature we like best about Unison is its GUI interface, which makes it easy for newbies to use and learn quickly. Both machines are listed in a window, and a simple arrow points to which machine the file(s) will be copied too. Since it is cross platform, it makes Windows-to-Linux synchronization painless. Performance is similar to rsync, since it uses the same protocol.