Si está escribiendo para Linux no incrustado, lo principal a tener en cuenta es que las diferentes distribuciones tendrán una colección diferente de versiones de biblioteca. Por lo tanto, debe establecer una línea de base suficientemente antigua. A medida que Debian se actualiza lentamente, Debian estable (o estable anterior cuando existe, en los pocos meses posteriores a un lanzamiento) tiende a ser una opción razonable.
Deberá empaquetar por separado para cada distribución. Si su aplicación es de código abierto y tiene éxito, puede contar con que alguien la recoja y contribuya con el paquete, por lo que no es una habilidad esencial. Además del empaque, las diferencias entre las distribuciones afectan principalmente a la administración del sistema, no al desarrollo o uso diario.
Si va a parchear el kernel, tendrá que probar con más distribuciones ya que cada distribución tiene sus propios parches que podrían causar incompatibilidades y cada distribución tiene configuraciones de usuario que pueden depender de diferentes conjuntos de interfaces de kernel disponibles (por ejemplo, requisitos para que algunas cosas no sean módulos).
Tenga en cuenta que lo que escribí anteriormente no es cierto si desea que su aplicación funcione en sistemas embebidos (en este caso, cualquier cosa que no sea un servidor, una computadora de escritorio o una computadora portátil), que incluso cuando ejecutan un kernel de Linux a menudo no tienen las bibliotecas habituales, comenzando con Glibc evitado a favor de µClibc , dietlibc , Bionic , etc.