Ruby Gem package guidelines (Português)
Escrever PKGBUILDs para softwares escritos no Ruby.
Nomenclatura de pacote
Para bibliotecas, use ruby-$gemname
. Para aplicativos, use o nome do programa. Em ambos casos, o nome deve estar totalmente em letras minúsculas.
Sempre use o prefixo ruby-
, mesmo se $gemname
já iniciar com a palavra ruby
. É necessário evitar futuros confrontos de nomes no caso de aparecer uma gem com nome mais curto. Também torna os nomes mais fáceis de serem interpretados por ferramentas (pense nos geradores/versão ou nos verificadores de dependência do PKGBUILD, etc ...).
Pacotes versionados
Se você precisar adicionar um pacote versionado, então use ruby-$gemname-$versão
, p. ex., ruby-builder-3.2.1
. Então, a dependência rubygem builder=3.2.1
se tornará o pacote Arch ruby-builder-3.2.1
.
No caso, se você precisar resolver uma dependência "aproximadamente maior" ~>
, o pacote deverá usar a versão sem a última parte, por exemplo, dependência rubygem builder ~> 3.2.1
se transformará em . Uma exceção para esta regra é quando a dependência "aproximadamente maior" corresponde à versão mais recente da gem - neste caso, evite introduzir um novo pacote versionado e use apenas ruby-$gemname
(a versão HEAD).
Outro problema com pacotes com versão é que pode entrar em conflito com outras versões, p. ex. porque os pacotes instalam os mesmos arquivos em . Uma solução para este problema é que pacotes com versões não devem instalar tais arquivos - somente o pacote de versão HEAD pode fazer isso.
Exemplos
Por exemplos, por favor, veja ou .
Notas
Adicione --verbose
aos argumentos do gem para receber informações adicionais no caso de haver problemas.
Quarry
Como uma alternativa ao gerenciamento manual de gemfiles, você também pode querer considerar quarry, um repositório não oficial de pacotes de pacotes binários pré-compilados. Veja Quarry para detalhes.
Pegadinhas
Pacote contém referência a $pkgdir
Às vezes, quando você compila o pacote, você pode ver o seguinte aviso AVISO: O pacote contém referência para $pkgdir
. Alguns arquivos empacotados contêm o caminho absoluto do diretório no qual você compilou o pacote. Para encontrar esses arquivos, execute . O mais provável é que o motivo seja o caminho codificado em .
Depois que acabar, o não será mais necessário. Na verdade, nenhum dos arquivos em é necessário e podem ser completamente removidos adicionando ao function.