Primeiro, tar e compactar o (s) arquivo (s):
tar -cvf archive.tar app_name/ ; gzip -9 archive.tar
Em seguida, crie o script do instalador (aqui está um básico):
#!/bin/bash
function die () { echo "Error!"; exit 1 }
cd ~/ || die
echo "Installing AppName to ~/app_name..."
O script terá que encontrar o arquivo embutido. Assim, encontraremos o número da linha com nosso marcador “ARQUIVO:”:
archive=$(grep --text --line-number 'ARCHIVE:$' $0)
Em seguida, o script pode seguir o arquivo (começando após ARCHIVE 🙂 e canalizar a saída binária final para gzip e, em seguida, tar. Nenhum arquivo temporário é criado.
tail -n +$((archive + 1)) $0 | gzip -vdc - | tar -xvf - > /dev/null || die
Temos algumas configurações de pós-instalação em nosso aplicativo de amostra:
./app_name/bin/post_install_configuration.sh || die
echo "Installation complete!"
exit 0
Não se esqueça de escrever o marcador de arquivo no final do script
ARCHIVE:
Salve o arquivo como “installer.sh”
Agora podemos adicionar o arquivo ao instalador:
cat archive.tar.gz >> installer.sh
Torne-o executável:
chmod +x ./installer.sh
Tudo feito!