Best of Tech

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, dmarti@ssc.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

______________________

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix