On Thu, 22 May 2008, Linda Walsh wrote:


Florian Festi wrote:
holmes86 wrote:
Appear error message "Failed dependencies" When I install rpm package with --aid option under FC8.
why?
---   Hey holmes, I'd sorta like to know that too...:-)

Don't do that. --aid is no longer supported (the database used to
resolve the dependencies is no longer shipped) and this feature is not
working well anyway and will removed from future versions of rpm.
----
 Well, I guess I was wondering why it doesn't work if one
uses an appropriate 'database'...  :-)

 I have all the packages downloaded to a local NFS server so
client machines can install from the server.  But to get rpm to
suggest upgrades "automatically", I needed to construct a local
rpm-db representing the new packages.

 I started to write a collection of perl and shell scripts that
would build a local rpm-database to allow me to solve rpm failed
dependencies from the new package directories.  Then I found that
it had already been done "the right way" -- using all rpm-db
commands on a fully constructed rpm-db that covered the new
packages.
 I found "rpm-cache" was used to construct a local rpm-db for
a group of locally-accessible (at least on local NFS or
CIFS(SMB)) files.

 rpm-cache appears to properly create an rpmdb representing the
local file-distribution cache.  One minor 'gotcha' was that
it didn't seem to want to work with 'db' files existing on NFS.
Something about not being having permission to 'lock' them --
though my 'user' owning the db-dirs has full write access.  I
was able to generate the db on a local file system:
 lh --noperms /tmp/rpmdb-cache
1  21M May 12 15:08 Basenames
1  12K May 12 15:08 Conflictname
1 3.7M May 12 15:08 Dirnames
1  21M May 12 15:08 Filemd5s
1 116K May 12 15:08 Group
1  60K May 12 15:08 Installtid
1 320K May 12 15:08 Name
1 119M May 12 15:08 Packages
1 1.3M May 12 15:08 Providename 1 344K May 12 15:08 Provideversion
1 876K May 12 15:08 Requirename
1 544K May 12 15:08 Requireversion
1 656K May 12 15:08 Sha1header
1 320K May 12 15:08 Sigmd5
1  12K May 12 15:08 Triggername
--------
 So any idea why rpm --aid doesn't seem to look in my "db"?

 Does 'rpm' read the user's ~/.rpmmacros file in addition to the
machine's /etc/rpm/macros file?  "rpm-cache" appears to
use the values in ~/.rpmmacros

It does, but it's subject to things like "su -" vs "su" setting your home dir differently. The path where rpmcache puts stuff and where rpm itself looks for it are separate macros, so in addition to the rpmcache config, you'll need to add something like to rpm macro config to tell rpm itself where to look for the solve db and packages:

%_solve_dbpath /tmp/rpm-cache
%_solve_pkgsdir /path/to/where/the/packages/are

But watch out, rpmcache and the solvedb depsolver are utterly broken when it comes to dealing with multiple arch variants for the same package. *IF* you only have just one arch of each package in the "solve universe" it works fairly ok, but reading between lines it seems that you'd be pointing it to local mirror of Fedora - that certainly is not going to work well.

Use "yum install foo" instead. Yum is working on the packages actual
available and is able to download them on demand. It is also possible to
give rpm files to the yum command line.
----

 yum install foo
: [Errno 4] IOError: <urlopen error (101, 'Network is unreachable')>
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: %s. Please verify its path and try again
------
 yum doesn't appear to understand the rpm macros file. Are you sure
it is supposed to work with the rpm commands and databases?  Is it
even compatible with the rpm data and macro files?  How do I tell
yum where my local network's package cache is?

The macro files are read by rpm-python but yum doesn't use the solvedb mechanism at all, it only knows about repositories.

It certainly is not desirable for each client machine to download rpm
packages over a relatively slow (~333 times slower) internet
connection vs. the local network's 1Gbit speed.

Just point yum to the local mirror instead (yum repositories can be file:// urls too, doesn't have to be http/ftp).

        - Panu -
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
https://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to