Os pacotes podem ser enviados com arquivos arbitrários que estão no mesmo diretório que o arquivo PKGBUILD. Para seus propósitos, você pode fazer exatamente isso. Dentro da função package()
do arquivo PKGBUILD, você pode se referir a esses arquivos como ${srcdir}/my-executable
. O resultado final pode ser assim:
# snip!
source=(my-executable)
sha256sums=('foo')
package() {
install -Dm755 "${srcdir}/my-executable" "${pkgdir}/usr/local/bin/my-executable"
}
Agora você pode criar um pacote com:
updpkgsums && mksrcinfo && makepkg
Note que esta abordagem só é realmente apropriada para pacotes homebrew. Não não use essa abordagem se você enviar pacotes para o AUR. Os arquivos que acompanham seu PKGBUILD devem ser alterados com pouca frequência - certamente não a cada lançamento. E se o seu executável for um binário, você não poderá fazer o upload do seu pacote para o AUR. (Ou vai funcionar, e alguém vai encontrar e banir você.)
Para um exemplo concreto, confira mkgmap . Ele instala um script de wrapper simples em /usr/bin/mkgmap
. Note que estou usando alguns anacronismos, como executar cd "${srcdir}/${pkgname}-${pkgver}"
na cabeça de package()
.
Depois de criar um pacote, existem várias ferramentas disponíveis para obter esses pacotes para todos os seus hosts. Uma boa ferramenta específica para aplicativos é pacserve . (Obrigado a jasonwryan pela dica.)
Além disso, considere procurar em uma ferramenta como Ansible. Se você quiser que o gerenciador de pacotes saiba sobre esses executáveis, criar um pacote é ótimo. Mas se você quiser colocar arquivos em diretórios de usuários como ~/.local/bin/
, os sistemas de gerenciamento de configuração podem servir melhor para você.