# R 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 R package guidelines. Data da última tradução: 2019-11-09. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Este documento abrange padrões e diretrizes para escrever PKGBUILDs para pacotes R. A maioria das informações pode ser obtida consultando o arquivo `DESCRIPTION` do pacote. Você pode obter a maior parte de dentro do R executando `tools::CRAN_package_db()`.

## Nomenclatura de pacote

Pacotes devem ser nomeados `r-pkgname`, sendo pkgname retirado do campo `Package` do arquivo `DESCRIPTION`. O nome do pacote deve estar em letras minúsculas.

## Versão de pacote

Pegue no campo `Version`. R permite que os pacotes tenham dois pontos e hífenes em sua versão, isso não é permitido em PKGBUILDs. Converta estes para um período ou sublinhado.

## Arch

Veja PKGBUILD (Português)#arch. Se a página web do CRAN do pacote tiver `NeedsCompilation: yes`, é provável que seja específico da arquitetura. Caso contrário, é provável que não.

## Dependências

Os pacotes R listados nos campos `Depends`, `Imports` ou `LinkingTo` no arquivo `DESCRIPTION` de um pacote devem ser listados em depends.

Os pacotes R listados em `Suggests` devem ser listados como optdepends.

Alguns pacotes requerem ferramentas externas, estas estão listadas em `SystemRequirements`.

O gcc-fortran é necessário como makedepends para alguns pacotes, mas nem sempre é listado no arquivo `DESCRIPTION`.

## Fonte

Todos os pacotes R disponíveis no CRAN estão disponíveis no site `https://cran.r-project.org/src/contrib/cranname_cranversion.tar.gz`, sendo cranname o nome do pacote no CRAN e cranversion a versão cran.

## Compilação e empacotamento

R tem suporte embutido para compilar pacotes, nós só precisamos instalar e copiar o pacote compilado depois:

     build(){
         R CMD INSTALL pkg.tar.gz -l "$srcdir"
     }
     package() {
         install -dm0775 "$pkgdir"/usr/lib/R/library
         cp -a --no-preserve=ownership pkgname "$pkgdir"/usr/lib/R/library
     }

## Exemplos

### RcppEigen

     pkgname=r-rcppeigen
     pkgver=0.3.3.4.0
     pkgrel=1
     pkgdesc="Rcpp Integration for the Eigen Templated Linear Algebra Library"
     arch=('x86_64')
     url="https://cran.r-project.org/package=RcppEigen"
     license=('GPL')
     depends=('r' 'r-rcpp')
     optdepends=('r-inline' 'r-runit' 'r-pkgkitten')
     source=("https://cran.r-project.org/src/contrib/RcppEigen_$pkgver.tar.gz")
     md5sums=('78ee1ef7c6043efa875434ae5fcea2ec')

     build(){
         R CMD INSTALL RcppEigen_"$pkgver".tar.gz -l "$srcdir"
     }
     package() {
         install -dm0755 "$pkgdir"/usr/lib/R/library
         cp -a --no-preserve=ownership RcppEigen "$pkgdir"/usr/lib/R/library
     }

### XML

Um exemplo em que o pacote R possui caracteres não permitidos no pkgver:

     _cranver=3.98-1.11
     pkgname=r-xml
     pkgver=${_cranver//[:-]/.}
     pkgrel=1
     pkgdesc='Tools for Parsing and Generating XML Within R and S-Plus'
     arch=('x86_64')
     url='https://cran.r-project.org/package=XML'
     license=('BSD')
     depends=('r' 'libxml2')
     optdepends=('r-bitops' 'r-rcurl')
     replaces=('r-cran-xml')
     source=("https://cran.r-project.org/src/contrib/XML_$_cranver.tar.gz")
     md5sums=('6c67f5730ada3456372520773a920b8e')

     build(){
         R CMD INSTALL XML_"$_cranver".tar.gz -l "$srcdir"
     }
     package() {
         install -dm0755 "$pkgdir"/usr/lib/R/library
         cp -a --no-preserve=ownership XML "$pkgdir"/usr/lib/R/library
     }

## Dicas e truques

Para verificar rapidamente se algum dos seus pacotes R (ou outro usuário) no AUR ficou desatualizado, você pode usar a ferramenta aurrpkgs-gitAUR (substitua nome-de-usuário pelo valor desejado):

    $ aurrpkgs nome-de-usuário

Essa ferramenta mostra todos os pacotes desatualizados e as novas versões disponíveis para eles.

Category:

- Arch package guidelines (Português)