Can't solve failed dependencies while installing a package.

Hello,

I am trying to install an open source package in my AIX 5.1 machine,

smpeg-0.4.5-1.aix5.1.ppc.rpm
here is what I get:

# rpm -Uvh smpeg-0.4.5-1.aix5.1.ppc.rpm
error: failed dependencies:
        libGL.a(shr.o) is needed by smpeg-0.4.5-1
        libGLU.a(shr.o) is needed by smpeg-0.4.5-1

I have OpenGL installed, and I have searched for both above libraries (libGL.a and libGLU.a) in file manager, I found both of them in the following folders:

/usr/lpp/OpenGL/tools/ZAPdb/bin/
/usr/lpp/OpenGL/lib
/usr/lpp/OpenGL/lib/inst_updt
/usr/lib/

What should I do to install the above package? I don't have a clue, any suggestion?

Thanks.

Have to admit, I dont know AIX, but since you called rpm, I assume a RH based system.

That said, have a try with:

dnf provides libGLU

Which is "about" the same as:

rpm --whatprovides libGLU

Again, since I dont know AIX, I'm not sure wether "/usr/lpp" is a valid lib directory.
Thus I'd recomend to just reinstall the most approriate package listed by one of the above commands.

Hope this helps

Hello sea,

thanks a lot for your help!

Unfortunately your suggested commands don't seem to work in my environment :frowning:

*******************************************************************************
*                                                                             *
*                                                                             *
*  Welcome to AIX Version 5.1!                                                *
*                                                                             *
*                                                                             *
*  Please see the README file in /usr/lpp/bos for information pertinent to    *
*  this release of the AIX Operating System.                                  *
*                                                                             *
*                                                                             *
*******************************************************************************
$ dnf provides libGLU
ksh: dnf:  not found.
$ rpm --whatprovides libGLU
RPM version 3.0.5
Copyright (C) 1998 - Red Hat Software
This may be freely redistributed under the terms of the GNU GPL

usage: rpm {--help}
       rpm {--version}
       rpm {--initdb}   [--dbpath <dir>]
       rpm {--install -i} [-v] [--hash -h] [--percent] [--force] [--test]
                        [--replacepkgs] [--replacefiles] [--root <dir>]
                        [--excludedocs] [--includedocs] [--noscripts]
                        [--rcfile <file>] [--ignorearch] [--dbpath <dir>]
                        [--prefix <dir>] [--ignoreos] [--nodeps] [--allfiles]
                        [--ftpproxy <host>] [--ftpport <port>] [--justdb]
                        [--httpproxy <host>] [--httpport <port>]
                        [--noorder] [--relocate oldpath=newpath]
                        [--badreloc] [--notriggers] [--excludepath <path>]
                        [--ignoresize] file1.rpm ... fileN.rpm
       rpm {--upgrade -U} [-v] [--hash -h] [--percent] [--force] [--test]
                        [--oldpackage] [--root <dir>] [--noscripts]
                        [--excludedocs] [--includedocs] [--rcfile <file>]
                        [--ignorearch]  [--dbpath <dir>] [--prefix <dir>]
                        [--ftpproxy <host>] [--ftpport <port>]
                        [--httpproxy <host>] [--httpport <port>]
                        [--ignoreos] [--nodeps] [--allfiles] [--justdb]
                        [--noorder] [--relocate oldpath=newpath]
                        [--badreloc] [--excludepath <path>] [--ignoresize]
                        file1.rpm ... fileN.rpm
       rpm {--query -q} [-afpg] [-i] [-l] [-s] [-d] [-c] [-v] [-R]
                        [--scripts] [--root <dir>] [--rcfile <file>]
                        [--whatprovides] [--whatrequires] [--requires]
                        [--triggeredby] [--ftpport] [--ftpproxy <host>]
                        [--httpproxy <host>] [--httpport <port>]
                        [--ftpport <port>] [--provides] [--triggers] [--dump]
                        [--changelog] [--dbpath <dir>] [targets]
       rpm {--verify -V -y} [-afpg] [--root <dir>] [--rcfile <file>]
                        [--dbpath <dir>] [--nodeps] [--nofiles] [--noscripts]
                        [--nomd5] [targets]
       rpm {--setperms} [-afpg] [target]
       rpm {--setugids} [-afpg] [target]
       rpm {--freshen -F} file1.rpm ... fileN.rpm
       rpm {--erase -e} [--root <dir>] [--noscripts] [--rcfile <file>]
                        [--dbpath <dir>] [--nodeps] [--allmatches]
                        [--justdb] [--notriggers] rpackage1 ... packageN
       rpm {-b|t}[plciba] [-v] [--short-circuit] [--clean] [--rcfile  <file>]
                        [--sign] [--nobuild] [--timecheck <s>] ]
                        [--target=platform1[,platform2...]]
                        [--rmsource] [--rmspec] specfile
       rpm {--rmsource} [--rcfile <file>] [-v] specfile
       rpm {--rebuild} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm
       rpm {--recompile} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm
       rpm {--resign} [--rcfile <file>] package1 package2 ... packageN
       rpm {--addsign} [--rcfile <file>] package1 package2 ... packageN
       rpm {--checksig -K} [--nopgp] [--nogpg] [--nomd5] [--rcfile <file>]
                           package1 ... packageN
       rpm {--rebuilddb} [--rcfile <file>] [--dbpath <dir>]
       rpm {--querytags}
$
 

They are both in "/usr/lib" directory anyway, which I believe its the valid path for libraries... those libs are part of OpenGL, I don't know why it says they are "needed" ... maybe they are just not loaded?

All I see in the /usr/lib you provided, is an empty directory.

Sorry about the RPM command, I havent acutaly used that often - even while I was using RH based systems.

rpm --whatprovides libGLU -q smpeg

Now, I'm just wondering wether AIX still has yum .
Again, because you're using RPM, I cant get my mind of RH based systems - for which I expect either yum (old) or dnf (new) command to be available.

Regardless, lets see if any of these help - try on after one, and check wether it works in between.

rpm --verify libGLU
rpm --freshen libGLU

If it doesnt work 'by now'... - lets try to reinstall/overwrite

rpm -ivh libGLU

If AIX has 'yum' (the 'original' of the previously suggested 'dnf'), try this:

yum install libGLU

--> I cant get my mind off the idea that during initial installation of your packages, something must had been going sub-optimal.
Though, AFAIK rpm needs the packages (.rpm) to be downloaded manualy, did you make sure to download the proper *ppc variant of the libGLU rpm file?
Alltough, if that was the case, it should not had let you install it....

My 2 cents, hth - end of my 'knowledge'.

Hi,
AIX is not any different from ANY other operating system when handling open source software - you are forever buried in dependency hell, because just because you see a certain library on the system does not mean it is in exactly the version the given package is asking for. So making one tool work might break another. It often helps to just install the libraries in the very latest versions you can find. Most rpms can be downloaded from IBM itself, or from various other web sources that provide rpms for AIX, for example here. You can always force install with --nodeps option, but its unlikely that your software works afterwards without finding the correct libraries required.

Maybe this is helpful:

AIX Open Source Packages | FAQs / FAQs (Frequently Asked Questions)

From the ref above:

Hello,

There are 2 ways to install rpm packages on AIX.

First option, search for your package and and bundle of it. A bundle means that it consists of the packages you need and all of its dependencies.
ftp://www.oss4aix.org/bundles/aix61/

Second option, ftp://public.dhe.ibm.com. The same principle as above but this is IBM official packages.

Please note that, use packages in either 1 or 2, but don't mix them together. You cannot install half of packages from 1 and the rest from 2.

On AIX, we still can use yum as redhat, centos, ... but many utility like strace is not on the AIX.

this is the yum options not rpm :slight_smile:
AIX also can install the rpm package but built for AIX. rpm package for redhat cannot install on the aix.

I recommend setting up yum properly in order to automate package installs. If you haven't already, please see ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/README-yum for instructions. This should get your system to an up to date, stable state.

Once there, additional software can be installed either by compiling from source or from rpms. On my boxes I tend to use the IBM packages whenever I can, and compile everything else from source, installing into a custom directory so that the system is left untouched as far as possible. FWIW, I have had trouble trying to install third party rpms; sooner or later they tend to mess up dependencies.

1 Like