PHP + MySQL based Dependency resolver created. things can be so much smaller!!!

Mark markg85 at gmail.com
Sun Mar 25 20:55:15 UTC 2007


Hey,

i`ve just completed my little php+mysql script that is resolving
dependency`s.
what i`ve done is: i`ve copied all the rpm files from the FC7 Test 2 DVD to
my HDD. than i installed this little program:
http://cekirdek.uludag.org.tr/~meren/php_rpm/
and started putting ALL the RPM headers in a MySQL database. the total
database is now 96MB but about 92MB of that is plain USELESS for me. so that
leaves the full fedora base stuff about 4 MegeBytes when i make a database
dump of that with gzipped compression the full size of that is: 563.1 KB
(576583 bytes) and that`s with the package description. without the
changelog. all things that you than have:

PROVIDENAMES
PROVIDEVERSION
REQUIRENAMES
REQUIREVERSION
DESCRIPTION
rpmname_to_id (i added that to work based on id`s instead of names)

this is so small and yet YUM requires about 10MB? for the full base stuff..
now did i found out a new way to do this or what?

here is a sample of the output that i get when i tell my script that i want
to install the kernel:

(stripes are increased by 2 at a time)

coreutils
grep
pcre
libgcc
-- glibc
-- glibc-common
-- tzdata
---- basesystem
---- setup
------ filesystem
---- libstdc++
-- libselinux
-- libsepol
---- mcstrans
---- libcap
---- pam
---- audit-libs
------ cracklib
-------- cracklib-dicts
---------- mktemp
------------ sed
-- module-init-tools
---- initscripts
---- udev
---- MAKEDEV
------ ethtool
-------- glib2
---------- net-tools
------------ e2fsprogs
------------ e2fsprogs-libs
------------ device-mapper-libs
-------------- device-mapper
-------------- mingetty
---------------- util-linux
---------------- ncurses
------------------ zlib
-------------------- popt
------------------ sysklogd
------------------ logrotate
-------------------- bash
-------------------- SysVinit
------ mkinitrd
------ gzip
------ less
-------- libdhcp4client
---------- libdhcp6client
---------- openssl
---------- krb5-libs
------------ cpio
-------------- dmraid
-------------- kpartx
---------------- findutils
------------------ libnl
-------------------- parted
-------------------- readline
---------------------- lvm2
------------------------ libdhcp
-------------------------- nash
---------------------------- tar
---------------------------- info

so a very basic installation should probably only have those packages
installed if you want to install the absolute minimal.

now for the timings. i`m not quite happy yet about the results because it
took about 30 seconds for my computer to compile the list you see above. but
than take in mind that the database isn`t optimized, the queries aren`t
optimized and i`m doing this recursively with queries. best thing would
probable be to fetch all the stuff one time and than let php do the rest. i
atleast expect that to be alot faster. perhaps even the fastest dependency
checker that`s currently existsing.

now why did i posted this stuff here.
well.. yum is currently undergoing some work to have those dependency's
checked alot faster. and this could perhaps be usefull to them (the yum
creators). so if they want to see the code.. just ask me.
i also would like to put this online but i don`t have a host to store this
stuff on. the default php timeout is far from enough (30 seconds == to
little for this dependency checker in it`s current state.)

there is also a disadvantage if this system is ever gonna be user for yum.
the current header style simply won`t work because it will all needs to be
in a gzipped sql file and not in a (extremely big) .XML file.

so ehm.. do you guys like this?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20070325/31ad04de/attachment.htm>


More information about the fedora-devel-list mailing list