Best of Tech

Various

Issue #104, December 2002

Our experts answer your technical questions.

Follow-up on How to Connect with Cox

These instructions for setting up Cox cable, which reader Matt Reynolds asked about in the September 2002 issue, are good for Tucson, Arizona, and most likely, for all Cox accounts. Cox uses DHCP and issues everybody what they call a CX number, which is needed to obtain an IP address from their servers. To make the DHCP client obtain an IP address, simply include that CX number in the dhcpcd command with the -I (client identifier) option:

/sbin/dhcpcd -I <cx number> <interface, (default
eth0)>

It would be a shame if Matt canceled his Cox account because he couldn't get Linux to obtain an IP address, as Cox in Arizona is excellent.

—Patrick Kellaher, kalmite@cox.net

Upgrading with RPM

I am trying to install KDE 3.0.3 on a fresh system, where neither KDE nor GNOME was installed, using RPMs. When I try to install qt-3.0.5-16.i386.rpm, I get:

[root@yeller rpms]# rpm -Uvh qt-3.0.5-16.i386.rpm
error: failed dependencies:
        libcups.so.2   is needed by qt-3.0.5-16
        libpng12.so.0  is needed by qt-3.0.5-16

So then I tried:

[root@yeller rpms]# rpm -qa | grep libpng
libpng-1.0.14-0.7x.3
libpng-devel-1.0.14-0.7x.3
[root@yeller rpms]# rpm -Uvh libpng-1.2.2-6.i386.rpm
+libpng-devel-1.2.2-6.i386.rpm
And I got another “failed dependencies” error. I've tried to resolve dependencies by working up from the lowest denominator, but I wind up in a spider web of RPMs that have more dependencies. So how do I install or upgrade without overwriting or losing something needed by something else?

—James Weisensee, itjayw@yahoo.com

Red Hat has created the up2date utility as an attempt to solve this problem. up2date requires that you register with Red Hat Network using the rhn_register command. up2date updates packages already installed on your system for which new versions have been released, most often relating to security patches. The rpm -qa commands you've tried are only querying your RPM database for packages already installed. If you want to find out which packages among a set of RPMs in a directory will provide a given file (such as libcups.so.2 or libpng12.so.0), then use a command more like:

for f in  libcups.so.2 libpng12.so.0; do
  for i in *.rpm; do
      rpm -qpl | grep -q $f && echo $i;
  done
done

to search each RPM package file listing for each of these filenames and to print the name of every package that contains said file(s). That won't always work (in some cases the desired file may be created by a package's postinstall script, for example). Also, some dependencies might not have filenames but are abstract identifiers that might be provided by any number of alternative packages.

—Jim Dennis, jimd@starshine.org

You often can get out of this kind of RPM upgrade mess by upgrading all the relevant RPMs at once, on the same command line. Just cursor up and keep adding the packages that RPM complains about to the rpm -Uvh command until it's happy. This works for removing codependent packages too.

—Don Marti, info@linuxjournal.com

Hello World? Hello Anyone?

I recently installed Linux, but I receive the following error when I try to run executables on my system:

bash: a.out command not found

How do I fix this problem?

—Manuel Sevilla, slickspick@yahoo.com

Looks like the directory you're in is not in your PATH. To run your newly compiled C program from your current directory, use ./a.out.

—Robert Connoy, rconnoy@penguincomputing.com

Can I Print to This Thing?

I have a router with a built-in printer server. How can I print using the printer connected to the printer port on the router?

—Carl Maklad, cmaklad@tdxinc.com

When an appliance has a built-in printer server, that generally means it offers support for a specific list of network printing protocols (such as the MS Windows SMB printing services and/or the traditional UNIX lpd services). Assuming that your router supports lpd (one of the oldest and simplest remote printing protocols), you should be able to configure your Linux system to use that device as a UNIX remote (lpd) print spool. If you're using Red Hat, try the printconf or printtool utilities.

—Jim Dennis, jimd@starshine.org

Bug or Security Feature?

I have Red Hat 7.1 running IMAP, POP3 and POP2 from the University of Washington. The services do not accept client access with the login root and password, but other users are okay.

—Pedro Guedes, pmg01@netc.pt

The easiest thing to do is set up an alias for root in /etc/aliases to a non-root user. Don't forget to run newaliases after updating /etc/aliases.

—Christopher Wingert, cwingert@cwingert.qualcomm.com

You definitely should not try to login to an IMAP or POP server as root, especially if you aren't using SSL. You would be sending your root password in clear text for anyone to steal.

—Marc Merlin, marc_bts@google.com

How to Mount a Floppy

I have a ThinkPad 600 with an external floppy. How do I mount the floppy drive? (I was able to mount the CD-ROM no problem.) I've tried mount /dev/floppy, mount /dev/fd0 and mount /dev/fb0, but none of those work.

—Zachary Grant Michael, zachary.michael@earthlink.net

See if your floppy drive is detected at boot time with:

dmesg | grep -i floppy

If you see a line

Floppy drive(s): fd0 is 1.44M
then your floppy is device /dev/fd0. To mount it, type
mount /dev/fd0 /mnt/floppy
—Usman S. Ansari, uansari@yahoo.com

I have a ThinkPad 570 with an external floppy, and it is detected as /dev/fd0. After you mount with the above command, you might want to customize /etc/fstab with the name of your floppy device and your chosen mount point in order to simply type mount /mnt/floppy. See man 5 fstab for how to do this.

—Don Marti, info@linuxjournal.com

Database with GUI for Teaching?

I am an Australian schoolteacher, and I am looking for a database to use with our Linux network. I want a database that is similar to Microsoft Access, because it is easy to use and teach to students.

—Ken Jordan, kwjordan@cedars.nsw.edu.au

There is a tool called pgaccess (<@url>pgaccess.org) that works with PostgreSQL and very closely resembles the functionality of Microsoft Access. Another alternative is to use the OpenOffice.org database connection facilities through ODBC.

—Felipe E. Barousse Boué, fbarousse@piensa.com