Respuesta horrible primero: depende
Si usted está liberando binarios, suponer que la respuesta es "no" a no ser que se va a distribuir todas las librerías que siempre implica con ella (a partir de cero, lo cual es molesto a menos que usted está proporcionando un sistema realmente enorme que vale por sí mismo de todos modos ) o están vinculando estáticamente el equivalente.
... pero magos y dinero, y magos de dinero ...
IBM tiene algunos instaladores "Unixish generales" que me han sorprendido al trabajar en todas partes donde los he probado: varios Linuces de varias generaciones de kernel, OpenSolaris (o como se llame ahora), Solaris y BSD. Pero son enormes. Y las cosas que proporcionan son igualmente enormes. No se publican pequeños programas de autos de carrera de esta manera, solo las grandes cosas de tipo empresarial que esperarías de IBM.
En cuanto a permanecer en Linux, pero funciona bien en la mayoría de Linuxdom, esto parece ser posible en forma binaria, como lo demuestra la variedad de instaladores binarios tipo "para Linux (general)" que verá de algunos proveedores. Varios chat, navegador, juegos, metainstaladores, etc. se publican de esta manera, pero siempre por grandes vendedores que pueden pasar el tiempo para hacer esto bien. Es algo sorprendente que puedan decir "para Linux" y en general confían en que funcionará, pero este parece ser el caso.
Pero...
Distribuyo mi software como fuente con una utilidad de compilación. Hago esto en C, Erlang, Python, Guile, etc. Esto me da mucha más flexibilidad sobre si se ejecutará o no, y es mucho más fácil escribir un buildscript que se asegure de que existan las cosas correctas en el momento de la compilación que asegúrese de que todo esté en su lugar en tiempo de ejecución. Una vez que existe, es trivial escribir un autoactualizador para su programa si distribuye la fuente: la fuente suele ser mucho más pequeña que un binario que incluye todos los deps y otra locura. Al usar este método, no he tenido muchos problemas para implementar de manera confiable en Unices (y, a veces, en Windows, pero eso es un poco más complicado).
Basta de juegos de niños, ¡ármate!
Cuando se está volviendo serio, como srsly srs, acerca de encajar sin problemas en el mundo de Linux, distribuye fuentes C o recurre a un entorno totalmente administrado para un lenguaje increíblemente encantador que ya está preconstruido. Si está escribiendo código Python, por ejemplo, puede verificar las versiones y saber con qué versión de CPython funciona la suya, y generalmente espera que exista alguna versión compatible en un determinado Linux (y esto es mucho más fácil de verificar que un amplio barrido de C libs / versiones que podría estar usando). Erlang, Guile, Python, Perl, CL, etc. son todos muy objetivos fáciles para este tipo de implementación, y muchos de ellos tienen un repositorio central como CPAN o pip (o lo que sea) donde los usuarios pueden ejecutar un comando para extraer la fuente firmada cuando lo deseen, y saben que las cosas generalmente funcionarán como usted pretendía .
[Anexo: 1. Incluso Haskell generalmente puede lograr esto a través de Cabal , aunque sería cauteloso al hacerlo en un entorno de producción. 2. Existen estrategias de implementación de "lanzamiento" totalmente diferentes con Erlang que garantizan que su código conlleva un entorno completo. 3. Python va un paso más allá con entornos virtuales; no todos los tiempos de ejecución te ayudan tanto.]
Esta última parte acerca de los entornos administrados en Linux es increíble . Y, como beneficio adicional, le permite definir dependencias mucho más generales, resolverlas automáticamente sin ningún esfuerzo adicional de su parte, no requiere escribir un paquete por distribución y puede dejar de preocuparse si un sistema es 32 o 64 bit (generalmente, de todos modos).