[Libguestfs] fedoostrap or deboostrap requirement

Piavlo piavka at cs.bgu.ac.il
Sun Jul 12 21:43:14 UTC 2009


Guido Günther wrote:
> You need to figure out why debirf thinks you're running as uid 0. Either
> you're really doing so or you're running with fakeroot already.
Actually I'm running as root , but to be more precise I'm running this
from gentoo emerge/ebuild process which setups proper
sandbox to avoid system damage.

 I've had several additional problem i managed to solve, the last one
might need proper solution in deootstrap code - details below:

# fakeroot -i debian/.fakeroot-state.debirf-libguestfs -s
debian/.fakeroot-state.debirf-libguestfs fakechroot
/usr/sbin/debootstrap --variant=fakechroot
--keyring=/usr/share/keyrings/debian-archive-keyring.gpg --include=less
--exclude=apt-utils,bsdmainutils,cron,ed,info,logrotate,man-db,manpages,tasksel,tasksel-data,tcpd,traceroute
lenny debian/root http://ftp.debian.org/debian/
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
I: Valid Release signature (key id 7F5A44454C724A65CBCD4FB14D270D06F42584E6)
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Checking component main on http://ftp.debian.org/debian...
I: Validating adduser
I: Validating apt
I: Validating aptitude
...
I: Extracting util-linux...
I: Extracting zlib1g...
I: Installing core packages...
W: Failure trying to run: chroot
/var/tmp/portage/app-emulation/libguestfs-1.0.57/work/libguestfs-1.0.57/appliance/debian/root
dpkg --force-depends --install
/var/cache/apt/archives/base-files_5lenny3_amd64.deb
/var/cache/apt/archives/base-passwd_3.5.20_amd64.deb

 I managed to solve it by patching debootstrap - more details below:

# chroot
/var/tmp/portage/app-emulation/libguestfs-1.0.57/work/libguestfs-1.0.57/appliance/debian/root
(chroot):/# dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err:
uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  base-files     5lenny3        Debian base system miscellaneous files
ii  base-passwd    3.5.20         Debian base system master password and
group
ii  dpkg           1.14.25
(chroot):/# exit            
#
# chroot
/var/tmp/portage/app-emulation/libguestfs-1.0.57/work/libguestfs-1.0.57/appliance/debian/root
dpkg --force-depends --install
/var/cache/apt/archives/base-files_5lenny3_amd64.deb
/var/cache/apt/archives/base-passwd_3.5.20_amd64.deb
Selecting previously deselected package base-files.
dpkg: regarding .../base-files_5lenny3_amd64.deb containing base-files,
pre-dependency problem:
 base-files pre-depends on awk
  awk is not installed.
dpkg: warning - ignoring pre-dependency problem !
(Reading database ... 0 files and directories currently installed.)
Unpacking base-files (from .../base-files_5lenny3_amd64.deb) ...
Selecting previously deselected package base-passwd.
Unpacking base-passwd (from .../base-passwd_3.5.20_amd64.deb) ...
dpkg: base-passwd: dependency problems, but configuring anyway as you
request:
 base-passwd depends on libc6 (>= 2.7-1); however:
  Package libc6 is not installed.
Setting up base-passwd (3.5.20) ...
dpkg: base-files: dependency problems, but configuring anyway as you
request:
 base-files depends on awk; however:
  Package awk is not installed.
Setting up base-files (5lenny3) ...
# echo $?
0
#        

So something must be wrong in the debootstrap code, and the following
patch fixes it

# diff -Nru /usr/share/debootstrap/scripts/lenny.orig
/usr/share/debootstrap/scripts/lenny
--- /usr/share/debootstrap/scripts/lenny.orig   2009-07-13
00:15:25.000000000 +0300
+++ /usr/share/debootstrap/scripts/lenny        2009-07-13
00:15:16.000000000 +0300
@@ -80,7 +80,7 @@

 second_stage_install () {
     x_core_install () {
-       smallyes '' | in_target dpkg --force-depends --install $(debfor
"$@")
+       chroot $TARGET dpkg --force-depends --install $(debfor "$@")
     }

     p () {
#

Meaning in_target function defined in /usr/share/debootstrap/functions
does not work correctly.

Alex




More information about the Libguestfs mailing list