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

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



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?

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