Resposta de baixa qualidade primeiro: depende
Se você estiver liberando binários, suponha que a resposta seja "não", a menos que você esteja distribuindo todas as bibliotecas que ela já envolve (desde o início, o que é irritante, a menos que você esteja fornecendo um sistema realmente grande que se mantém independente de qualquer maneira ) ou estão vinculando estaticamente o equivalente.
... mas assistentes e dinheiro, e assistentes de dinheiro ...
A IBM tem alguns instaladores "Unixish gerais" que me chocaram trabalhando em todos os lugares em que os experimentei: vários Linuces de várias gerações de kernel, OpenSolaris (ou como é chamado agora), Solaris e BSD. Mas eles são enormes. E as coisas que eles fornecem são igualmente enormes. Nenhum pequeno programa de carro de corrida é publicado dessa maneira, apenas as grandes coisas do tipo empreendedor que você esperaria da IBM.
No que diz respeito a permanecer no Linux, mas funcionando bem na maioria dos Linuxdom, isso parece ser possível na forma binária, como evidenciado pela variedade de instaladores binários do tipo "para Linux (geral)" que você verá em alguns fornecedores. Vários bate-papos, navegadores, jogos, meta-instaladores etc. são publicados dessa maneira, mas sempre por grandes fornecedores que podem gastar o tempo para acertar. É incrível que eles possam dizer "para Linux" e estar confiantes de que funcionará, mas parece ser esse o caso.
Mas...
Eu distribuo meu software como fonte com um utilitário de compilação. Faço isso em C, Erlang, Python, Guile etc. Isso me dá muito mais flexibilidade sobre a execução ou não da execução, e é muito mais fácil escrever um buildscript que garanta que as coisas certas existam no momento da construção do que verifique se tudo está no lugar no tempo de execução. Uma vez que exista, é trivial escrever um atualizador automático para o seu programa se você distribuir a fonte: a fonte geralmente é muito menor que um binário que inclui todos os deps e outras insanidades. Usando esse método, não tive muitos problemas para implantar de forma confiável no Unices (e às vezes no Windows, mas isso é um pouco mais trabalhoso).
Chega de brincadeira, arme-se!
Quando você está falando sério, como o srsly srs, sobre como se encaixa perfeitamente no mundo Linux, distribui fontes C ou passa a um ambiente totalmente gerenciado para uma linguagem hackishly deliciosa que já foi pré-criada. Se você está escrevendo código Python, por exemplo, pode verificar as versões e saber com qual versão do CPython trabalha e geralmente espera que exista uma versão compatível em um determinado Linux (e isso é muito mais fácil de verificar do que uma ampla variedade de bibliotecas C / versões que você pode estar usando). Erlang, Guile, Python, Perl, CL, etc. são todos muito alvos fáceis para esse tipo de implantação, e muitos deles têm um repositório central, como CPAN ou pip (ou qualquer outro), onde os usuários podem executar um comando para puxar eles mesmos a fonte assinada quando quiserem, e sabem que as coisas geralmente funcionam como você pretendia. .
[Adendo: 1. Até Haskell geralmente consegue isso via Cabal - embora eu seja cauteloso ao fazer isso em um ambiente de produção. 2. Existem estratégias de implantação de "release" totalmente diferentes com o Erlang que garantem que seu código carrega um ambiente completo. 3. Python vai um passo além nos ambientes virtuais; nem todos os tempos de execução o ajudam tanto.]
Este último trecho sobre ambientes gerenciados no Linux é assustador . E, como bônus, permite definir dependências muito mais gerais, resolvê-las automaticamente sem nenhum esforço extra de sua parte, não requer a criação de um pacote por distribuição e você pode parar de se importar se um sistema é 32 ou 64 bit (geralmente, de qualquer maneira).