how to create an isolated root filesystem/rpm DB?

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

 



  i've been trying to figure out how to use "rpm" and a collection of 
PPC-based binary rpms to create both an independent root filesystem
and rpm DB for the rpms in that filesystem.  by independent, i mean
that i want both the "installed" rpms and their corresponding database
to be *totally* independent from the rpms and database of my host.
in addition, to be doubly safe, i want to be able to do this as a non-root
user.

  as a start, i figured i'd need both the "--root" and "--dbpath" options;
the first to identify where i wanted to root the installation, the second
to identify the new rpm database.  seemed pretty straightforward.
  
  as a start, i created the appropriate directories:

  $ mkdir /tmp/root
  $ mkdir /tmp/rpmdb

note how i'm trying to keep the actual new RPM database *outside*
of the new root -- i'm not even sure that's possible, as you'll see
shortly.

  to begin with, let's try to install an rpm based on this:

  $ rpm -ivh \
    --root /tmp/root \
    --dbpath /tmp/rpmdb \
    --ignorearch \
    glibc-common-ppc_8xx-2.2.5-0.19a_2.ppc.rpm

  again, i need to be able to do all this as a non-root user and, AFAICT,
i don't need root privilege for any of the above since i'm not trying to
affect any of the system RPM database.  the result:

Preparing...                ########################################### [100%]
   1:glibc-common-ppc_8xx   ########################################### [100%]
error: unpacking of archive failed on file /usr/bin/catchsegv;4001562c: cpio: open failed - Permission denied


  any idea why i would be getting a permission error?  i've verified that
i have permission to read the rpm, so that's puzzling.  but it gets more
confusing.

  if i look at the partial results of this, i get

  $ find /tmp/root /tmp/rpmdb

  /tmp/root
  /tmp/root/tmp
  /tmp/root/tmp/rpmdb
  /tmp/root/tmp/rpmdb/__db.001
  /tmp/root/tmp/rpmdb/__db.002
  /tmp/root/tmp/rpmdb/__db.003
  /tmp/root/tmp/rpmdb/Providename
  /tmp/root/tmp/rpmdb/Packages
  /tmp/root/tmp/rpmdb/Name
  /tmp/rpmdb
  /tmp/rpmdb/Basenames

  it seems that this failed operation still managed to start building the
rpm database, but in a thoroughly confusing way.  the Basenames file
went under /tmp/rpmdb, while the rest went under /tmp/root/tmp/rpmdb.
should i have expected this?  more to the point, what's the relationship
between --root and --dbpath?  it seems that whatever dbpath you pick
is evaluated relative to your root value, and i'd rather override this.
i'd like to have these two options be chosen totally independently.

  regardless, it seems like a bad thing that *some* DB stuff is installed 
under /tmp/rpmdb, while other stuff is installed under /tmp/root.  or
can someone explain how this makes sense?  i would like to keep
the actual rpm database *outside* of the root filesystem, if that's at
all possible.  thanks muchly.

rday





_______________________________________________
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