I've never dealt with dependency hell, even once, on my current distribution. When necessary, distributions can ship multiple versions of a library and the software that requires each version will be linked appropriately. Basically, the answer is that the distribution is supposed to solve all these problems for you - and it does in fact work out that way in practice 99% of the time.