Is there a reason why the above isn't done?
Os scripts do shell são portáteis porque usam um interpretador de tempo de execução. As ferramentas que você usou como exemplos, em particular ferramentas de GUI, não são. Isso significa que você terá que ter uma versão separada para Linux / x86, Linux / x86-64, Linux / armel, Linux / armhf, OSX / x86-64, OpenBSD / mipsel e qualquer outra plataforma na qual você deseje executar isso.
Além disso, a versão normal compilada de tais coisas depende de bibliotecas compartilhadas. Se você realmente não quer se preocupar com dependências, mas você quer incluir SomeGUIApp
, você precisará de uma versão estaticamente compilada, ou então (6 == 2 * 3) para incluir essas dependências, e suas dependências, e ... 1 De qualquer forma, este é o ponto em que você vai perceber o que você achava que era "apenas 5 mb" vai acabar como centenas. Dê uma olhada no seu consumo de memória agora mesmo; se é uma área de trabalho GUI normal fazendo coisas normais, a maior parte é daquelas bibliotecas GUI, etc.
Como usuário linux de longo prazo, geralmente deploro coisas que incluem binários por causa de todos os erros que podem ser cometidos com as coisas genericamente compiladas. Eu só vou realmente usá-los se não houver outra escolha (ou, claro, eles vieram da distro).
Agora imagine se todos fizessem isso. Preciso de 15 cópias de SomeGUIApp
no meu sistema? É muito melhor listar as coisas como um pré-requisito - se eu não tiver, posso conseguir - que me forneça mais uma cópia de algo que eu já possuo.
1. Talvez o ponto seja: você tem que desenhar a linha em algum lugar, então por que não desenhar no original?