there are a lot of minimal distributions around, like peanut linux.
you can sort of see what libraries an app needs with ldd. it shows the libraries that an app is linked to.
/usr/bin# ldd blackbox
libSM.so.6 => /usr/X11/lib/libSM.so.6 (0x40026000)
libICE.so.6 => /usr/X11/lib/libICE.so.6 (0x40030000)
libX11.so.6 => /usr/X11/lib/libX11.so.6 (0x40047000)
libXext.so.6 => /usr/X11/lib/libXext.so.6 (0x400eb000)
libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2 (0x400f7000)
libm.so.6 => /lib/libm.so.6 (0x4013a000)
libc.so.6 => /lib/libc.so.6 (0x4015e000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
ldd kdesud
libm.so.6 => /lib/libm.so.6 (0x40026000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x4004a000)
libc.so.6 => /lib/libc.so.6 (0x40052000)
libkdesu.so.1 => /opt/kde-2.2.2/lib/libkdesu.so.1 (0x40187000)
libkdecore.so.3 => /opt/kde-2.2.2/lib/libkdecore.so.3 (0x401ab000)
libdl.so.2 => /lib/libdl.so.2 (0x4033b000)
libDCOP.so.1 => /opt/kde-2.2.2/lib/libDCOP.so.1 (0x4033e000)
libqt.so.2 => /usr/lib/qt-2.3.2//lib/libqt.so.2 (0x40375000)
libpng.so.2 => /usr/lib/libpng.so.2 (0x40a59000)
libz.so.1 => /usr/lib/libz.so.1 (0x40a83000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40a93000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40ab2000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40abe000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40b62000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40b6c000)
libutil.so.1 => /lib/libutil.so.1 (0x40b83000)
libstdc++.so.4 => /usr/lib/libstdc++.so.4 (0x40b87000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
http://www-106.ibm.com/developerwork...ibrary/l-lwl1/
http://www.distrowatch.com/?newsid=01557#0