Thursday, April 20, 2006

You've Already Paid Enough for IE

Thanks to this Washington Post Security Fix article we learn that some scammers want to make you pay to run Internet Explorer. Of course, this is a scam, and the article tells you all the nice things these good people do to your computer.

You've already paid for IE: as we all know, it's an integral part of Windows 98, Me, 2000, and XP, one of which you paid for when you bought your computer. (You did pay for Windows, didn't you?) If you want a really free browser, try Firefox or Opera. Or, for a really light-weight browser, try Lynx, originally developed at KU.

Saturday, April 15, 2006

Faster Browsing?

Something I stumbled upon while looking for something else:

Swiftfox is a rebuild of the Firefox source code, using optimizations appropriate for Linux and your AMD or Intel processor. There is a version 1.5.0.2, which I installed in the same way I installed Firefox 1.5.0.2, except that the directories are now named swiftfox instead of firefox.

Is it really faster? I'm not sure, but it certainly seems faster. And so far all extensions work. I'll play with it a while and see how it goes.

Interesting, Swiftfox is linked to the Central New York SPCA, and if you like the code you are requested to send a donation to CNYSPCA.

Deconstructing Debian Packages

Remember I said that I hadn't figured out how to determine which Debian packages were installed and what they contained? OK, maybe I didn't say all that, but I implied it. After a good deal of searching, I found a good explanation of options for dpkg. It's useful to make a little table showing the equivalence between RedHat/Fedora RPM and yum commands and dpkg:

Description Debian Command Fedora Command
List installed packages: dpkg -l rpm -qa
List all available packages: dpkg -l '*' yum list
List contents of package: dpkg -L package_name rpm -ql package_name
Find the package that installed file dpkg -S file rpm -qf file
Install a package apt-get install package_name rpm -i package_name
or yum install package_name
Remove a package dpkg --purge package_name rpm -e package_name

Of course, any commands the add, remove, or update files will need to be run as root or with the sudo command.

Anything else that's useful?

Friday, April 14, 2006

"Restricted" Software

Ubuntu comes as a mostly "free" (as in freedom) system — there is no proprietary software installed by default. However, there is a lot of "free" (as in beer) proprietary software available, as well as software which allows you to access proprietary formats.

The Ubuntu Wiki has a section on these Restricted Formats, and how you can install them if you so desire. Since this is fairly complete, I won't go into detailed instructions here.

Fixing Opera

turned out not to be too hard. A search of the Unbuntu Forums turned up an Opera HOWTO page. Basically, you need to make sure that the Motif/Qt libraries are loaded:

sudo apt-get install libmotif3 lesstif1 lesstif2 motif-clients

There are also some java fixes that you can learn about on this page.

Now you can go to the Ubuntu download page, select the Ubuntu version of 8.54 for download, and click. Then open a terminal window and

$ cd ~/downloads
$ sudo dpkg -i opera_8.54-20060330.6-shared-qt_en_etch_i386.deb

and you have an up-to-date version of Opera.

Updating Firefox and Opera

The Washington Post's Security Fix Blog reports that there are updates for both the Mozilla Firefox and Opera web browsers.

Firefox actually has two updates: users of version 1.0.7, which is distributed with Ubuntu Breezy Badger, can upgrade to 1.0.8. Presumably this will make it to the Update Manager, but it wasn't in today's updates. Users of 1.5 or 1.5.0.1 should upgrade to 1.5.0.2. We'll talk about that here.

Note that in Linux you aren't notified of the availability of this download, as you are in Windows, so you have to look for it. Going to the Firefox Home Page reveals a button which tells you the current version of Firefox available for download, 1.5.0.2. Clicking the button starts the download. Mine downloads automatically go to ~/downloads, a location that can be set in the Preferences.

I keep the current copy of Firefox in the directory /home/local/firefox, where local is an account where I keep software that isn't installed via deb or rpm and doesn't need to run as root. So the first thing is to move the old version of firefox, then unpack the new version:

$ su - local
Password:  xyzzy123
$ mv firefox firefox_1501
$ tar xvzf ~/downloads/firefox-1.5.0.2.tar.gz

Now you've got a new version of firefox in /home/local/firefox. If that directory is in your path, then your old "firefox" command should launch the new version.

There are a couple of tweaks necessary, though. First, I want to copy all of the searchplugins I've added from the old firefox to the new:

$ cd searchplugins
$ rm *   # removes anything already there
$ cp ../../firefox_1501/searchplugins * . # you could use ln as well

Second, I want to use all of the plugins that I have in the old plugin directory. This is a little more difficult since most of the plugins are actually just soft links. So here's what we do:

$ cd ../plugins
$ ls -l ../../firefox_1501/plugins
lrwxrwxrwx  1 flashplayer.xpt -> /usr/lib/flash-plugin/flashplayer.xpt
lrwxrwxrwx  1 libflashplayer.so -> /usr/lib/flash-plugin/libflashplayer.so
-rwxr-xr-x  1 libnullplugin.so
lrwxrwxrwx  1 mozplugger.so -> /usr/lib/mozilla/plugins/mozplugger.so
lrwxrwxrwx  1 nphelix.so -> /usr/lib/mozilla-firefox/plugins/nphelix.so
lrwxrwxrwx  1 nphelix.xpt -> /usr/lib/mozilla-firefox/plugins/nphelix.xpt

Note that libnullplugin.so is already available. Then link each plugin as needed:

$ ln -s /usr/lib/flash-plugin/flashplayer.xpt
$ ln -s /usr/lib/flash-plugin/libflashplayer.so
$ ln -s /usr/lib/mozilla/plugins/mozplugger.so
$ ln -s /usr/lib/mozilla-firefox/plugins/nphelix.so
$ ln -s /usr/lib/mozilla-firefox/plugins/nphelix.xpt

Now Firefox is ready to role. The first time you launch the new version it will check for any updates needed to your extensions, and display a welcome screen. From then on it's back to normal.

This upgrade will be a lot easier when 1.5 becomes part of the standard Ubuntu distribution. This happens when the "Dapper" distribution is officially released, not for a while yet.


I don't have Opera installed on this machine yet, so let's see what we need to do. First, check the Synaptic package manager to see if it is available via Ubuntu. It is, in version 8.5.1, though the current update is 8.54. So first let's get opera running in any fashion. Launch the package manager

$ sudo /usr/sbin/synaptic

search for Opera, and download. You'll get a warning that opera can't be authenticated; ignore that. If you don't have the xlibs package installed, it will be.

Now Opera runs, but I get errors telling me that the Motif package manager and plugin need to be installed. Let me do a search for that and I'll report back to you later.

Thursday, April 13, 2006

An Uplifting Story

Ladies, are you having trouble with Victoria's Secret's new wireless bra? Not to worry. Slate.com offers technical support.

Sunday, April 09, 2006

The Uninstalled Ubuntu

There is plenty of stuff in the Ubuntu repositories (Official, Universe, Restricted, and non-free) that isn't installed by default. I find most of it necessary. I don't remember everything, of course, but let's make a little list:

  • gcc and make: It's not a real computer unless you can compile your own software. If you don't have these installed, you've just got an expensive version of WebTV.
  • gstreamer and lame: Sometimes you've just got to have your MP3s.
  • k3b: The best CD/DVD burning tool out there. Not included because it's KDE based, rather than Gnome
  • Firefox 1.5: This will be in the next version. For now, you have to download and install it yourself.
  • mail and msmtp: Remember I said that I couldn't get this to work? Well, use the mailx package, not the Gnu mail tools, to get the proper mail program. Then msmtp will work if you do a slight bit of editing of the .msmptrc file. I can now send email from the command line, just like I could 20 years ago!
  • xine and mplayer: Sometimes you like to watch.

There's undoubtedly more, but that's what I remember right now.

Saturday, April 08, 2006

Debian Software Repository

I found this while trying to figure out how to get the proper codecs into mplayer: a software repository for Debian systems which contains software not found in the regular repositories. For example, a .deb package of RealPlayer.

ftp://ftp.nerim.net/debian-marillat/index.html

Read the FAQ for information on how to access these files via apt-get.

Ubuntu Aptitude

In an RPM-based system, the command

$ rpm -qa
will give you a complete list of packages (RPMs) installed. Or, if you use yum,
$ yum list
will give you a list of all available packages, indicating those that are installed on your system.

There must be an equivalent command in a Debian system, but I haven't found it as yet. However, there is a program called aptitude, which gives you a curses-based (i.e. ASCII graphics) method of scanning through the packaged database. It even gives you hints as to the quality of the software — for example, it tells me that the Intel Fortran package I installed today comes from an untrusted (that is, not in Ubuntu's database) source.

Still looking for something like rpm -qa, though.

Ubuntu: Installing Intel Fortran

As noted previously, I need a good Fortran compiler for this computer, and the best free (as in beer) compiler is the one from Intel. The problem is that Intel delivers its compiler in a set of (Oh, the Horror!) RPMs. So we need to do a bit of a conversion process.

There are basically two options:

  1. Set up your system to install RPMs (installing the alien package does this anyway), and install away. This isn't a particularly nice way of doing things, but it probably works.
  2. Convert the RPM to DEB format, and install that way. This lets you tweak the system a little bit.

I went the second way. The method is explained here, but it's based on a Debian installation guide, and I'll summarize it here.

We assume that you're going to install the 9.0 version of the compiler.

  1. Register with Intel if you haven't already. You'll get a file in email, called noncommercial_for_l#GarbageString#.lic. Save it someplace. Save the email as well, because it also contains your license number if you need a backup.
  2. Download the package. This also includes a debugger and versions of the compiler and debugger for 64 bit machines. We'll leave these installs as an exercise for the reader.
  3. Download the make_deb_9 script, and save in the same directory as your Fortran RPM.
  4. Open a terminal window, cd to the directory with your RPM and make_deb_9 file, and run the following, entering your password where required:
    $ sudo alien -k intel-ifort9-9.0-031_i386.rpm
    $ sudo ./make_deb_9 intel-ifort9_9.0-031_i386.deb
    $ sudo dpkg -i intel-ifort9_9.0-031_i386.deb
    
  5. Change to the directory where you saved your Intel License file and run
    $ sudo cp noncommercial_for*.lic /opt/intel/fc/9.0/licenses
  6. Add the contents of /opt/intel/fc/9.0/bin/ifortvars.csh to your file ~/.chsrc, if you use csh or tcsh shells. If you run bash, (or sh, which is aliased to bash), add /opt/intel/fc/9.0/bin/ifortvars.sh to your ~/.bashrc file. If you're comfortable doing it, you can edit the contents of these files to fit in better with your system.
  7. Open a new terminal window (this makes sure that all of the statements in the ifortvars script get started properly). cd to a directory with a Fortran program. Picking exactly which options you use to compile is something of an art form, but I find that this works:
    $ ifort -O3 -axN -ip -WB -Vaxlib program.f -o program
    
    creating an executable called program from program.f

And so far it all works. Hope it works for you, too.

Note added 8 Dec 2006: You need the alien step above, which I forgot to include. Note that Intel is now up to the 9.1 compiler. This requires a bit of editing of the make_deb_9 file to make the directory structure right. In the current version I have to change all references of 9.0 to 9.1.036, but that obviously depends on the build you download.

And In Reality, Aren't We All Aliens?

You may remember that I said I was going to install ical, an old Linux/Unix calendar program. Well, I downloaded the source and tried to compile it but there were multiple errors in the source code which probably have something to do with the version of the compiler I'm using. (The source is rather old.)

However, back in FC4 days I did create a binary RPM for ical. And Debian based GNU/Linux systems have a program called alien which can convert RPM packages into Debian packages. So the procedure (once I installed alien) is:

# Start with the old RPM file:
$ sudo alien --to-deb ical-2.3.1-1.i386.rpm
# Creates a package called ical_2.3.1-2_i386.deb
# Now install it:
$ sudo dpkg -i ical_2.3.1-2_i386.deb

and, voila, ical is installed and works.

This isn't the optimal way of installing software, but it'll do, it'll do.

Friday, April 07, 2006

Using Ubuntu

So I've been using Ubuntu for almost a week. How's it going?

Fine, thanks for asking. The nice thing about Ubuntu is that nearly everything is available as a precompiled package. If you remember, with Fedora I had to compile FVWM, xnetload, and msmtp, and other things I've forgotten now. Well, Ubuntu has all those packages available. OK, I haven't gotten msmtp to work right yet, but anyway ...

Now if I had wanted to recompile those programs (and I'll have to do some compiling, such as for ical), I would have been out of luck with the default install, since neither the gcc compiler nor make is installed by default. Neither are many of the header packages (which usually end in dev). You just have to try compiling until something breaks, then try to find the appropriate header package. Usually this involves a Google search.

What else? Ubuntu ships with Firefox 1.0.7, not the latest and greatest version of 1.5. So I had to go the the Firefox site and download my own copy. Not terribly hard to do, of course, and it fits in /home/local just as before.

I also want to get the Intel Fortran compiler installed. Like Fedora Core, Ubuntu ships with gcc 2.4+, and that doesn't support the old g77 Fortran compiler front-end. So to run Fortran, I need a good compiler, and the best free (as in beer) one is from Intel. Maybe this weekend.

Sunday, April 02, 2006

Ubuntu: The Differences

So what are the differences between Ubuntu and Fedora Core? I mean, Linux is Linux is Linux, isn't in? Well, not quite. Since there isn't really a standard definition of what Linux is (though some have tried), each distribution is free to put programs, libraries, desktop management, etc., wherever they want. True, if someone tried to move the ls routine from /bin/ls to /usr/local/share/ls there'd be Hell to pay, but otherwise distributions are pretty free to move things around.

The main differences between distributions, however, concern which programs (hereafter "packages") are included with the distribution, or made available to users; and how the packages are, um, packaged.

Fedora, RedHat, Mandriva, and others use the RPM Package Manager. Gentoo Linux distributes its packages as source code which you compile on your own computer. So does Slackware, though the mechanism of getting the files to the user is different in the two cases. Ubuntu, like all descendants of Debian GNU/Linux, uses the Debian Package Manager. The only thing we really need to know about the differences here is that if we wanted to install a package foobar in Fedora, we probably would have entered

# yum install foobar

While in Ubuntu it's

# apt-get install foobar

(Extra points for those of you that spot what's wrong with that last line.)

Now the default installation of Ubuntu will get you access to the internet, not to mention OpenOffice.org 2.0 to work with various kinds of files. But there's a lot that is simply not installed by default.

Once we've figured out what's not installed, usually by typing in a command and finding that it won't work, then we have to figure out where to get the program and how to install it. Of course, we can always download the source and compile it ourselves. No, wait, neither the gcc compiler nor make is installed under Ubuntu by default.

So where do we find the extra packages for Ubuntu? We can find them using the command

$ sudo /usr/sbin/synaptic

(enter your login password when asked).

This brings up a graphical interface which has a list of programs available for installation. When you click on a program name, you get a description of what it does. (Note for command-line enthusiasts: while there's a yum list command to give you a list of packages to install, so far I haven't found the apt-get equivalent. It ain't apt-get list.) Click on the package to install it. If this package depends on other packages, those packages will be added as well. If you click on a package which supercedes another program, the old program will be removed. It's fairly simple.

Almost forgot: the Ubuntu packages are divided into three repositories: "Breezy Badger," the whole damn thing, "Security Updates," and "Updates," which should be fairly obvious. "Breezy Badger" has four separate parts, "Officially supported," obviously; "Community Maintained (Universe)," programs that Ubuntu users fix up to work with Ubuntu; "Restricted Copyright," programs that are available freely but only in binary form, and "Non-free," programs that just aren't free software. I want to have all of these options available. To do this under synaptic, select Settings>Repositories>Add and click on the parts you want to see. Note that if you just want Security Updates you can fix that here as well.

Since this post is getting fairly long, I'll stop here. The next post will have a list of the packages I consider essential to running a decent Linux box.

Ubuntu: The Saga Begins

Having abandoned Fedora Core (for now), I'm going to start working with Ubuntu Linux. Ubuntu is based on Debian GNU/Linux, without some of the political rhetoric (not that anything's wrong with that). So the next few hundred posts will be describing how I get my new Ubuntu system to look exactly like my old Fedora Core system. (Hey, my wife's greatest dream is to move into a house that looks exactly like the one she grew up in — why can't guys do that with computers?)

To start, we have to install the system. This presents a problem, because my Linux box, through every fault of my own, is completely useless. The only thing good you can say about it is that I didn't actually get so far as to repartition the entire disk (not that I didn't try), hence my personal files in the /home directory are still intact and I won't have to reload them from backups if I finagle the install correctly.

Fortunately, I have access to a Mac running OS X, which will let me go to Ubuntu's download page and download version 5.10, "Hoary Hedgehog" (don't ask). I could then burn it to a CD.

Which created a toaster. You download a CD ISO image. Unfortunately, the default Mac CD burning software copies the image as a file, creating a CD which won't boot. You need to search the Application/Utilities folder to find the correct program, which changed its name between Mac X.2 and Mac X.4. Anyway, once I'd done that I got a bootable CD.

So I loaded into my Linux box, and it booted without problems. I selected a default install, everything in English. Actually, you don't get much of a chance to change things at this point, anyway.

Ubuntu has no root account, everything involving system administration is done using the sudo command from accounts that are given the priviledge of using it. More on that in a later post. So the install program asks you for the name of a user's account, and an initial password.

Then the computer starts searching the CD and maybe the web for more programs. Eventually it gets to a screen which says "Setting Up Primary Installation Repository." It gets up the 25% done.

And then the system hangs.

This has been mentioned in the Ubuntu forums, where we find that there is a workaround:

  • When you reach the screen that asks you for a username/password, hit the Escape key
  • In the ensuing menu will be an item which says "Install Grub." This is the boot loader that selects the operating system you use when your machine boots.
  • When that's done, kick out the CD and reboot.
  • Fill in the information asked about the username/password, reinsert the CD when asked, and complete the installation.

This isn't a particularly friendly procedure, is it? Ubuntu is supposed to be "Linux for Human Beings," not "Linux for Human Beings who have an extra computer on hand and can Google for help in the middle of an install." But it worked for me, and I really need to get some form of Linux on this machine, so we're running Ubuntu at the moment.

Fedora Core: Maybe Later

I've abandoned trying to install Fedora Core 5 for now. The last straw was when I tried to do a complete reinstall of the system:

  • If I tried doing a "Custom Install" the system hung while searching for the package list.
  • If I tried doing a "Workstation Install" the system hung.
  • If I tried doing the default install, I got a little further. I got a message that Fedora couldn't unmount my CD, and I should go to tty2 (the second terminal screen) to see if it was mounted.
    • First of all, I was working from the DVD, not the CDs
    • Second, when I went to tty2, I saw a "#", the system prompt, with no error messages. This is a Good Thing. But when I entered the "df" command the system hung again.

Now this last problem has been mentioned (you'll have to search for it) and has been reported to bugzilla. Now maybe I should have stayed and debugged the problem, but I had a hosed system with no way to get a new version of Fedora Core 5 installed on it. If I had another box to play with ... maybe in a week or two, I'm working on it.

I could have gone back to FC4, but that didn't seem particularly worthwhile, especially since I would have had to do about 500 software updates to bring my system back up to where it was last week. So for now I'm abandoning Fedora Core. I may (and honestly, most likely) come back to Fedora/Red Hat, where I've been almost since I started using Linux, but I'm going to do a Monty Python and try something completely different — well, as completely different as one can be in Linux: I'm going to install Ubuntu.

Thus, this post marks the end of the Working With Fedora Core series, at least for now. Starting soon, at a website near you, will be Working With Ubuntu Linux. Stay tuned, boys and girls.