[vox-tech] resolving dependencies with XFree86-4.3.0-3

Shawn P. Neugebauer vox-tech@lists.lugod.org
Thu, 10 Apr 2003 11:18:39 -0700


I'll try to offer a few clues.  (Please, no flames about RPM.)  Here's a basic
set of RPM tricks:

1) rpm -Uvh package1-4.2.rpm package2-3.1.rpm
  The "U" does an upgrade (see man page), the "v" uses verbose mode,
  the "h" prints hash marks across the screen as each package is installed.
1a) rpm -ivh package1-4.2.rpm
  Installs a package; older versions are not removed as with upgrade.
  Use this to install new kernel rpm's (the kernel itself; usually use upgrade
  to install source/doc).
2) rpm -q package1
  Queries the database to find out if package1 is installed.  Note that one
  should get in the habit of leaving off the version numbers, but sometimes
  they're needed.
3) rpm -qf /some/path/to/some/file
  Very useful--tells me if the file belongs to a package and if so what the
  package name is.
4) rpm -ql package1
  Gives me a list of all files belonging to the installed package.
5) rpm -qpl package1-4.2.rpm
  Gives me a list of all files belong to an uninstalled package.
6) rpm -e package1
  Remove a package.

Finally, don't trust RPM all the time, especially when you're doing your
own thing (like installing non-standard X).  Use the "locate" database to find
stuff on your system.  This is probably the single most underutilized and
underappreciated system maintenance tool of all time.  <rant>It still
amazes me how few Sun/UNIX system administrators bother to configure and
activate, much less use, this utility.  Can't remember a path?
Use locate.  Can't remember the precise name of a crazy library?
Use locate.  Trying to find a configuration file hidden in some weird
place?  Use locate!  The list goes on...</rant>  I digress...

6) locate crazyfilename
  Returns a list of all instances of the file on the system, at least, in the
  places archived.
  Do not underestimate the power of this tool in combination with RPM.


I'll offer some specific comments.

On Thursday 10 April 2003 03:04 am, Ryan wrote:
> I'm running Red Hat 8 and I am trying to upgrade from XFree86-4.2.0-72
> to XFree86-4.3.0-3 and it seems that this site has
> (ftp://rpmfind.net/linux/rawhide/1.0/i386/RedHat/RPMS/) has all the Red
> Hat packages I need.

So you think...I find it very tricky and never easy to muck with the X server
on a RH box in this manner.  Good luck.

> 	However, when I try to install the newer XFree86 I get the following
>
> ----------------------------
> [root@speedy gnome]# rpm -Uvh  XFree86-4.3.0-3.i386.rpm
> XFree86-devel-4.3.0-3.i386.rpm XFree86-libs-4.3.0-3.i386.rpm
> XFree86-libs-data-4.3.0-3.i386.rpm XFree86-xfs-4.3.0-3.i386.rpm
> XFree86-xdm-4.3.0-3.i386.rpm XFree86-twm-4.3.0-3.i386.rpm
> XFree86-base-fonts-4.3.0-3.i386.rpm
> XFree86-truetype-fonts-4.3.0-3.i386.rpm
> warning: XFree86-4.3.0-3.i386.rpm: V3 DSA signature: NOKEY, key ID
> 897da07a
> error: Failed dependencies:
>         kernel-drm = 4.3.0 is needed by XFree86-4.3.0-3

"kernel-drm" is not installed on my RH 8.0 box, but it's needed by this new
version of X.  (I used "rpm -q kernel-drm" to find out if the kernel-drm
package was installed, and just to be safe, I used "locate kernel-drm"
to double-check).  You probably need to go get another RPM.  At the
very least, you need to figure out what was in "kernel-drm" (this is,
of course, one of the fundamental difficulties in the rpm system).

>         Xft-devel >= 1.9.1.020626.1517-1 is needed by (installed)
> pango-devel-1.1.1-1
>         Xft is needed by (installed) libgnomeui-2.0.3-3
>         Xft >= 1.9.1 is needed by (installed) qt-3.0.5-17

Hmmm..."rpm -q Xft" shows me that Xft-2.0-1 is installed by default
(and, you probably did a development install, so you got Xft-devel-2.0-1,
as well).  The libgnomeui and qt rpm's above are also default (pango-devel,
too, probably).

"rpm -ql Xft" shows me that Xft just has 2 files (one library).  My guess
here is that this new version of X includes a version of this library and
it's trying to stomp on the existing Xft files, on which pango-devel,
libgnomeui, and qt all depend.  Use "rpm -qpl <<X rpm file>> | grep Xft",
locate, "rpm -ql <<rpm>>" etc. to figure out if this is the case.

Can you still use these new X rpm's?  Maybe.  Figure out what the
problem is with Xft and you might be able to force the rpm install
(see man page) knowing that the dependency of libgnomeui, qt, etc.
*is* actually satisfied.  HOWEVER, you will be introducing configuration
problems that might come back to bite you in the future (e.g., if you later
try to install officially updated rpms, etc.).  It's probably worth looking
for better rpms.  From the brief description of the site at which you
found these files, there's not enough information to have any idea
if the files are suitable for straightforward install on a RH8.0 system.

Hope I've given you some clues.

shawn.