En el campo del software una dependencia es una aplicación o una biblioteca requerida por otro programa para poder funcionar correctamente. Por ello se dice que dicho programa depende de tal aplicación o biblioteca.
Problemas de las dependencias
Resolución de dependencias durante la instalación
Algunas formas de instalación de software, como el uso de instaladores o la compilación del código fuente, no buscan ni descargan automáticamente las dependencias del programa. Lo que se hace en estos casos es indicar al usuario las aplicaciones o bibliotecas necesarias para que éste las busque, descargue e instale manualmente.
Falta de dependencias tras una desinstalación
En ciertas ocasiones, cuando se elimina software que hace uso de alguna biblioteca compartida, ésta también se desinstala con él, ocasionando el mal funcionamiento del sistema operativo o de una aplicación que hacía uso de ella.
Problemas de versiones
En algunos casos, diferentes programas hacen uso de la misma biblioteca, pero necesitan versiones distintas. Por ello han de mantenerse en el sistema operativo diferentes versiones de una misma biblioteca que, en algunos casos, interfieren entre sí, provocando el mal funcionamiento de los programas.
Una forma que tiene Mac OS X de evitar esto es haciendo que las aplicaciones que se proporcionen para este sistema operativo se distribuyan empaquetadas. Estos paquetes incluyen el programa ejecutable, así como todas las bibliotecas que necesita (excepto las incluidas en el sistema operativo) y otros ficheros (imágenes, ficheros de sonido, localizaciones, etc.). En la práctica, esto puede ser indeseado, ya que el usuario percibe que el programa ocupa mucho espacio en el disco duro, cuando realmente se trata de un paquete con diferentes ficheros, algunos de los cuales pueden ser innecesarios para ciertos usuarios (como es el caso de las localizaciones de los distintos idiomas).
Soluciones
Los problemas de dependencias de software se pueden resolver de distintas maneras. Una de ellas es proporcionar un instalador que incluya todas las dependencias o las descargue automáticamente. Otro método alternativo es el de los gestores de paquetes, que calculan las dependencias cada vez que se instala nuevo software y las descarga. La desventaja más notoria de estos sistemas es probablemente que puede haber conflictos con bibliotecas compartidas de diferente versión. Sin embargo, en el caso de los gestores de paquetes es menos probable que esto ocurra, ya que la mayoría de los paquetes usados por los gestores de paquetes suelen ser creados por la misma persona o el mismo equipo de personas, con lo que pueden resolver dichos conflictos.