# Ruby Gem package guidelines (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de Ruby Gem package guidelines. Data da última tradução: 2018-11-01. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglê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 `ruby-builder-3.2`. 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 `/usr/bin`. 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 ruby-json_pureAUR ou ruby-hpricot.

## Notas

Adicione `--verbose` aos argumentos do gem para receber informações adicionais no caso de haver problemas.

Nota: O uso do argumento `--no-user-install` do gem é obrigatório já que as versões mais recentes do Ruby (Veja FS#28681 para detalhes).

### 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 `cd pkg && grep -R "$(pwd)"`. O mais provável é que o motivo seja o caminho codificado em `.../ext/Makefile`.

Nota: A pasta `ext` contém código de extensão nativo geralmente escrito em C. Durante a instalação do pacote, rubygems gera um Makefile usando a biblioteca `mkmf`. Então, `make` é chamado, ele compila uma biblioteca compartilhada e copia uma para o diretório gem `lib`.

Depois que `gem install` acabar, o `Makefile` não será mais necessário. Na verdade, nenhum dos arquivos em `ext` é necessário e podem ser completamente removidos adicionando `rm -rf "$pkgdir/$_gemdir/gems/$_gemname-$pkgver/ext"` ao `package()` function.

Category:

- Arch package guidelines (Português)