La mejor manera es distribuir el código fuente y para que sea fácil de construir la fuente en cualquier distribución de Linux razonable. Esto es mejor que la distribución binaria porque no es suficiente para hacer que el binario sea compatible con bibliotecas compartidas. También debe asegurarse de adaptar su programa a ubicaciones de distribución y convenciones específicas para saber a dónde van las aplicaciones web, o cómo se envía el correo electrónico, o cómo se inician los servicios, o cómo determinar el tamaño de papel predeterminado, o una miríada de de otros detalles.
Consulte, por ejemplo, Debian Policy Manual para obtener un documento que describa muchas de las cosas que una distribución debe decidir para garantizar la compatibilidad entre las aplicaciones que se ejecutan en ella. No es necesario que lo lea ni lo aprenda de memoria, pero muestra el alcance de los problemas que pueden afectarlo.
Probablemente deba trabajar junto con varias de las principales distribuciones para garantizar que su aplicación funcione bien con todas ellas. La mayoría de los desarrolladores de distribuciones estarán encantados de ayudarte si te acercas educadamente. Si tiene suerte, puede atraer voluntarios de las distribuciones para que le envíen el paquete binario, y eso le dará rápidamente retroalimentación sobre lo que necesita cambiar en el nivel de origen para que su aplicación sea fácil de empaquetar.
El Linux Standard Base ya mencionado por otros intenta encontrar una solución de distribución cruzada para estas variables, pero no es completo y no es totalmente compatible con la mayoría de las distribuciones. Sin embargo, la mayoría de las distribuciones lo consideran un problema si accidentalmente rompen la compatibilidad con LSB.
Hay tantas variables por lo que la simple respuesta es: depende. Las bibliotecas compensan gran parte de esta diferencia. – jldupont