[Libguestfs] Rethinking appliance building

Thomas S Hatch thatch45 at gmail.com
Mon Dec 6 06:16:01 UTC 2010


Ok, here is where I am so far, but my ocaml is VERY weak, so it is slow
going, I also added the right stuff to config.ml.in and Makefile.ml to make
it work.

it seems to work, but when I run febootstrap --names bash coreutils dcron
dhcpcd e2fsprogs file filesystem findutils gawk grep grub gzip initscripts
iputils kernel26 less libusb logrotate net-tools pacman sed shadow sysvinit
tar tcp_wrappers udev util-linux-ng
it only processes bash.

I am sure I am missing something obvious, but if you have any suggestions
that would be great, learning ocaml is taking some time :)

-Tom Hatch

On Sun, Dec 5, 2010 at 4:28 PM, Thomas S Hatch <thatch45 at gmail.com> wrote:

>
>
> On Sun, Dec 5, 2010 at 10:56 AM, Richard W.M. Jones <rjones at redhat.com>wrote:
>
>> To make this even more explicit:
>>
>> > (1) There has to be a way to detect that the package manager should
>> > be used, eg. by looking for /etc/arch-release
>>
>> RPM: check for existence of /etc/redhat-release
>> Debian: check for existence of /etc/debian_version
>
> Arch: check for existence of /etc/arch-release
> Arch: Or check the kernel version for "ARCH" with a uname -r
>
>
>> > (2) There must be a way to take a list of package names, and fully
>> > resolve all dependencies (recursively as necessary) to get a complete
>> > list of packages that must be installed to bootstrap.
>>
>> RPM: [lots of Yum API magic]
>> Debian: apt-cache depends --recurse -i <list of package names>
>>
> Arch: pactree -l <list of package names> | sort -u
> pactree is part of the pacman-contrib package
>
>>
>> > (3) Must be a way to download a package.
>>
>> RPM: yumdownloader <name of package>
>> Debian: aptitude download <name of package>
>>
> Arch: pacman -Sw --cachedir=<Where to download> <name of package(s)>
> This will download the package to the cachedir: /var/cache/pacman/pkg
>
>>
>> > (4) Must be able to list out the files in a downloaded package.
>>
>> RPM: rpm -qlp foo.rpm
>> Debian: dpkg-deb -c foo.deb
>>
> pacman -Qlp  foo.pkg.tar.xz
>
>>
>> > (5) Must be able to extract a single file from a downloaded package.
>>
>> RPM: rpm2cpio foo.rpm | cpio -id
>> Debian: dpkg-deb --fsys-tarfile foo.deb | tar xf -
>>
> Arch: tar xf foo.pkg.tar.xz
> Arch packages are just tarballs with a PKGINFO file in the root directory
> which has package metadata
>
>>
>> So it's almost enough for you to tell me the equivalent of those
>> commands for pacman, although of course I'd prefer a patch to
>> febootstrap!
>>
>> Rich.
>>
>> --
>> Richard Jones, Virtualization Group, Red Hat
>> http://people.redhat.com/~rjones
>> virt-p2v converts physical machines to virtual machines.  Boot with a
>> live CD or over the network (PXE) and turn machines into Xen guests.
>> http://et.redhat.com/~rjones/virt-p2v
>>
>
> Here are the answers, and all commands work as non-root, before running any
> commands the package database would need to be updated by running "pacman
> -Sy"
>
> I will grab a git checkout of febootstrap and start looking into prepping a
> patch, but if this is enough info for you to whip up support then let me
> know and I will test it and fix any arch specific things.
>
> Thanks!
>
> -Tom Hatch
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20101205/c220c19a/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: febootstrap_pacman.ml
Type: text/x-ocaml
Size: 3983 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20101205/c220c19a/attachment.bin>


More information about the Libguestfs mailing list