RE: About rpm database

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

 



 

> -----Original Message-----
> From: Chowdhury, Chandan Dutta 
> Sent: Wednesday, May 31, 2006 9:53 AM
> To: RPM Package Manager
> Subject: RE: About rpm database
> 
>  
> 
> > -----Original Message-----
> > From: Jeff Johnson [mailto:n3npq.jbj@xxxxxxxxx]
> > Sent: Monday, May 29, 2006 8:32 PM
> > To: RPM Package Manager
> > Subject: Re: About rpm database
> > 
> > On 5/29/06, Chowdhury, Chandan Dutta
> > <chandan-dutta.chowdhury@xxxxxx> wrote:
> > > Hello All,
> > >
> > 
> > First of all, an rpmdb is a hierarchical database using Berkeley DB.
> > 
> > > I have 2 questions for you
> > >
> > > 1. Can any one point me to a document describing the
> > structure of RPM
> > > database?
> > > This what all tables are present in the RPM database, what
> > all columns
> > > in them.
> > >
> > 
> > First of all, an rpmdb is a hierarchical database using Berkeley DB.
> > So no SQL, no rows, no columns, no tables.
> > 
> > Headers are stored as blobs in /var/lib/rpm/Packages, the key is a 
> > monotonically increasing integer. The current largest values as 
> > retrieved and incremented in a RMW operation using key = 0 
> whose value 
> > is the largest key in the rest of Packages. The key for the header 
> > blob in Packages is known as a "header instance".
> > 
> > All the other indices are inverted lists of certain tags 
> stored within 
> > a  header.
> > That means that the value from the tag is used as a key to 
> retrieve a 
> > varibale length array of (header,element) indices.
> > In most cases, the element index is 0.
> > 
> > One can replace a Berkeley DB with sqlite3 for an rpmdb, but the
> > rpm-4.4.2 that most vendors are choosing to distribute has known 
> > problems with the implementation in 4.4.2.
> > 
> > > 2. Is there a CLI for doing SQL queries on the RPM db, if so plz 
> > > provide me the link where I can find them.
> > >
> > 
> > No SQL, the CLI for accessing an rpmdb is the --query mode of rpm.
> > 
> > Hint: Export all the data from an rpmdb for importing into whatever 
> > SQL db you want by doing
> >     rpm -qa --xml
> > or
> >     rpm -qa --qf '[%{*:xml}\n]'
> > 
> > 73 de Jeff
> > 
> 
> Hello Jeff,
> 
> Thanks a lot for all the info on database. I was trying to 
> understand the whole structure of rpm and did not find any 
> document describing the database. Anyway thanks a lot for the 
> usefull info. I will start playing with the --xml option to rpm 
> 
> For sure if u have any other document on the database plz share it.
> 
> Thanks and Regards
> Chandan

Hello all,

I have a few more question about the rpmdb

1. In the previous mail mentions about using sqlite for backend instead
of bdb, is there a probability of rpm moving from bdb to a sqlite based
backend.

2. What is the future of the rollback feature of rpm, I have seen quite
a few mails saying not to use this feature, is it really deprecated?

3. I have a product which installs a group of rpms in one
transection(using yum/apt). For un-installation of the product I was
trying to use the same transaction key and identify the rpms for my
product. The problem is if I update one of the package in this group I
get a different transaction id. Does rpm keep track of transaction id
somehow?
 AFAIR the post install script of RPM is passed a value ("$1") depending
on whether the rpm is installed for the first time or upgraded, in such
a situation is the previous transaction id preserved ?

Thanks in advance for the help for the help

Regards
Chandan Dutta Chowdhury

_______________________________________________
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