Criando um arquivo executável do Linux a partir de um monte de arquivos / diretórios

2

Eu tenho um diretório com uma pequena estrutura:

script.sh
dist/
dist/program.jar
log/
log/error.log
conf/
conf/program.conf

O script.sh faz algumas verificações e inicia program.jar com vários parâmetros.

Existe uma maneira de encapsular toda essa estrutura em um único arquivo (como os directory.app executáveis no OSX), e tornar esse arquivo um executável?

    
por Rodrigo de Avila 13.05.2014 / 16:12

1 resposta

1

Não, você não pode executar um único executável e fazer seu programa funcionar sem ser descompactado. A razão é que seu programa esperaria poder acessar seus arquivos usando syscalls padrão, e se você tiver esses arquivos compactados dentro de um arquivo, eles não estarão visíveis para o Linux.

O que você pode fazer é usar self-make para criar um único arquivo executável auto-extraível. Em seguida, o usuário executaria o executável, extrairia os arquivos do arquivo e, em seguida, o usuário poderá executar o programa instalado.

Outra alternativa, já que você está usando Java, é empacotar arquivos dentro do arquivo .jar e reestruturar seu código. Em seguida, você poderia distribuir o arquivo .jar único e o usuário executá-lo com java -jar .

    
por bain 13.05.2014 / 19:15