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.

Reply via email to