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

again dpkg --root=xxx



Dear Ian,

In an attempt to create a root file system for booting a diskless
clients, I tried the following:

In /tftpboot/diskless, I unpacked the Bruce's latest base system using
	tar xzvpf base1_1.tgz

Now, from a previous discussion we had, I thought I should be able to use

	dpkg --root=/tftpboot/diskless -i ...

However, trying this, I get errors running any installation
scripts. I can use dpkg --root=/tftpboot/diskless -l to get a listing
of the packages which are part of the base system. 

>From a quick look at the code for dpkg the problem seems to be the
following: You chroot to the root directory, but you call execv with
the original path name. Then, in the chroot'ed environment, the execv
call fails since the path has the extraneous prefix to the new root. 
I guess that chopping the leading root path between the calls 
	preexecscript(scriptpath,arglist);
	execv(scriptpath,arglist);
in main/help.c should fix the problem. If you want me to, I can look a
bit more carefully at your code to come up with a patch.

			Cheers,
				Lukas
-------------------------------------------------------------------------------
   Dr. Lukas Nellen                 | Email: lukas@teorica0.ifisicacu.unam.mx
   Depto. de Fisica Teorica, IFUNAM |
   Apdo. Postal 20-364              | Tel.:  +52 5 622 5014 ext. 218
   01000 Mexico D.F., MEXICO        | Fax:   +52 5 622 5015


Reply to: