Re: How can I manually populate an RPM database

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 28, 2004 at 03:13:28PM -0500, Sandra Carney wrote:
> Hello,
>   I have similar concerns.  Here is our problem.  We have packages that
>   we want to install packages on NFS-mounted partitions.  If we install
>   in the usual way, the rpm database in /var/lib/rpm gets updated.
>   To make queries about this NFS-mounted package, you have to goto the
>   machine on which the install took place to do the query because /var/lib/rpm
>   is local.
> 
>   What would be nice is to have an rpm database on an NFS-mounted partition
>   and into which NFS installs would be reported.
> 

Sure it would be nice.

If you wish to attempt an rpmdb over NFS, then NFS needs to provide
a locking scheme that Berkeley DB can use. This is true for all
file systems, not just NFS.

While there is a means to provide locking across NFS sufficient for
Berkeley DB, you almost certainly do not want to attempt an rpmdb
across NFS because any problems will instantly involve daemons and
kernels on both client and server.

Instead, a private transport for database methods using sunrpc is
the recommended solution. This "worked" in rpm when I last looked
like a year or so ago. Unfortunately, I cannot support an rpmdb
through sunrpc in rpm, life's way too short.

>   So, I decided to try an experiment :
> 
>   1. mkdir /home/scarney/package/rpm
> 
>   2. rpm --initdb --dbpath /home/scarney/package/rpm
>      So far, so good.
> 
>   3. cd /home/scarney/package/EnsiteNetworkPE/piu_emulator.59_2004_07_14_14_58_BL_c241/
> 
>        rpm --upgrade --dbpath /home/scarney/package/rpm EnsiteNetworkPE.rpm
> 
>      and it comes back with :
> 
>        D:  Requires: /bin/sh                                       NO
>        D: package EnsiteNetworkPE-200407141458-0 require not satisfied: /bin/sh
>        D:  Requires: R /bin/sh                                     NO  (cached)
>        D: package EnsiteNetworkPE-200407141458-0 require not satisfied: /bin/sh
>        D:  Requires: R /bin/sh                                     NO  (cached)
>        D: package EnsiteNetworkPE-200407141458-0 require not satisfied: /bin/sh
>        D:  Requires: R /bin/sh                                     NO  (cached)
>        D: package EnsiteNetworkPE-200407141458-0 require not satisfied: /bin/sh
> 
>      which is the same problem being discussed here.
> 
>      Now, I could go ahead and create the virtual package.  However, that information
>      is alreay in the database in /var/lib/rpm and if the OS changes, they are now
>      out of sync.
> 
>      So what I propose is perhaps to have a datbase search path when it comes to
>      dealing with these matters.  Maybe we have a site option that says this
>      is the order in which you search the databases to find if something is
>      provided.
> 

You have not identified what version of rpm you8 are using, nor
have you identified how the rpmdb locking is configured, nor have
you supplied sufficient details about versions of NFS and kernel and
glibc for me to even attempt to understand.

>      How hard would this be?

For you, and most developers, probably very hard to add multiple
rpmdb's on a search path with NFS support.

73 de Jeff

-- 
Jeff Johnson	ARS N3NPQ
jbj@xxxxxxxxxx (jbj@xxxxxxx)
Chapel Hill, NC


_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux