On Sun, May 15, 2011 at 4:24 PM, Martin Pelikan <martin.peli...@gmail.com> wrote: > 2011/5/15 Ted Unangst <ted.unan...@gmail.com>: >> On Sat, May 14, 2011 at 4:05 PM, Amit Kulkarni <amitk...@gmail.com> wrote: >> Determining which package needs rebuilding is really hard. B It's much >> easier to install a complete matched set. > > I believe some Linuxes do something like 'find /usr/local/lib -name > lib*.so* -exec ldd {} ";" > stuff' and then match stuff's "not found" > lines against all installed packages' PLIST. Is there more difficulty > to it? > I mean, besides that OpenBSD's ldd fails to write anything if only one > library is missing, but that can't be too hard to write/port, can it?
??? Slow down there, you've just glossed over a lot of resource tracking, which can save your tail when you have difficulty resolving a dependency, but cause absolute chaos when it's ignored by someone taking a short cut and never documenting it. dpkg and RPM based systems assess the library dependencies reported by the binaries, at build time, against the build environment. Making that build environment consistent and based on only registered, well defined, repository provided resources soaks up a lot of engineering time. To install that other package with the necessary library, *if* that package has a dependency on another library or binary, that dependency is supposed to be recorded in the first library's list of dependency and resolved by the package management system. This is a lot of work, but very useful for assuring that individual component variants or upgrades do not drag in a tremendous and incompatible toolchain of madness that breaks existing components. (CPAN is famous for this problem: two different updates of components that rely on each other can rely on incompatible, overlapping components. Used to drive me nuts when people would just slap in whatever module they wanted and I'd have to resolve the discrepancies: don't get me going on mod_perl......) > And yes, it's painfully slow and stupid, but fortunately for us > unneccessary most of the time. It's usually pretty automatic with both deb and RPM formats. Some attention has to be paid, but I've assembled about..... 200 RPM's for components that were not in the main code tree that developers needed for their work. That includes recent backports of OpenSSH to older operating systems, by the way,. and the identification of the dependencies fo the build environments was very helpful.