R パッケージガイドライン
32ビット – CLR – クロス – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – KDE – カーネル – Lisp – MinGW – Node.js – ノンフリー – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – ウェブ – Wine
このドキュメントでは R パッケージの PKGBUILD を書く時の決まりとガイドラインを記載しています。ほとんどの情報はパッケージの DESCRIPTION
ファイルを見ることで得ることができます。tools::CRAN_package_db()
を実行することで R の中から取得できます。
目次
パッケージの命名
パッケージは r-pkgname
という名前にしてください。pkgname は DESCRIPTION
ファイルの Package
フィールドの値を使います。パッケージ名は小文字でなければなりません。
パッケージのバージョン
Version
フィールドの値を使ってください。R ではバージョンにコロンとハイフンが使えますが、PKGBUILD では使用できません。ピリオドかアンダースコアに置き換えてください。
アーキテクチャ
PKGBUILD#arch を参照。パッケージの CRAN ウェブページで NeedsCompilation: yes
となっている場合、アーキテクチャに依存します。それ以外の場合は依存しません。
依存関係
パッケージの DESCRIPTION
ファイル の Depends
, Imports
, LinkingTo
フィールドに記載されている R パッケージは depends に追加してください。
Suggests
に並んでいる R パッケージは optdepends に追加してください。
一部のパッケージは外部のツールを必要とすることがあり、それらは SystemRequirements
に記載されています。
パッケージによっては makedepends に gcc-fortran が必要ですが常に DESCRIPTION
ファイルにそのことが記載されているとは限りません。
ソース
CRAN の全ての R パッケージは https://cran.r-project.org/src/contrib/cranname_cranversion.tar.gz
から取得できます。cranname は CRAN におけるパッケージ名、cranversion は cran のバージョンに置き換えてください。
ビルドとパッケージ化
R にはパッケージを構築するためのサポートが組み込まれています。MRAN、CRAN、Bioconductor の 3 つのリポジトリ用の PKGBUILD
の 3 つのテンプレートを次に示します。MRAN は CRAN のスナップショットミラーであり、このテンプレートを使用すると、古い場合でもパッケージをビルドできます。
MRAN
_cranname= _cranver= _updatedate=YYYY-MM-DD pkgname=r-${_cranname,,} pkgver=${_cranver//[:-]/.} pkgrel=1 pkgdesc="" arch=() url="https://cran.r-project.org/package=${_cranname}" license=() depends=(r) makedepends=() optdepends=() source=("https://cran.microsoft.com/snapshot/${_updatedate}/src/contrib/${_cranname}_${_cranver}.tar.gz") sha256sums=() build() { R CMD INSTALL ${_cranname}_${_cranver}.tar.gz -l "${srcdir}" } package() { install -dm0755 "${pkgdir}/usr/lib/R/library" cp -a --no-preserve=ownership "${_cranname}" "${pkgdir}/usr/lib/R/library" }
CRAN
_cranname= _cranver= pkgname=r-${_cranname,,} pkgver=${_cranver//[:-]/.} pkgrel=1 pkgdesc="" arch=() url="https://cran.r-project.org/package=${_cranname}" license=() depends=(r) makedepends=() optdepends=() source=("https://cran.r-project.org/src/contrib/${_cranname}_${_cranver}.tar.gz") sha256sums=() build() { R CMD INSTALL ${_cranname}_${_cranver}.tar.gz -l "${srcdir}" } package() { install -dm0755 "${pkgdir}/usr/lib/R/library" cp -a --no-preserve=ownership "${_cranname}" "${pkgdir}/usr/lib/R/library" }
Bioconductor
_bcname= _bcver= pkgname=r-${_bcname,,} pkgver=${_bcver//[:-]/.} pkgrel=1 pkgdesc="" arch=() url="https://bioconductor.org/packages/${_bcname}" license=() depends=(r) makedepends=() optdepends=() source=("https://bioconductor.org/packages/release/bioc/src/contrib/${_bcname}_${_bcver}.tar.gz") # or # source=("https://bioconductor.org/packages/release/data/annotation/src/contrib/${_bcname}_${_bcver}.tar.gz") sha256sums=() build() { R CMD INSTALL ${_bcname}_${_bcver}.tar.gz -l "${srcdir}" } package() { install -dm0755 "${pkgdir}/usr/lib/R/library" cp -a --no-preserve=ownership "${_bcname}" "${pkgdir}/usr/lib/R/library" }
ヒントとテクニック
Bioconductor リポジトリ
bioconductor パッケージに簡単にアクセスするには、bioarchlinux リポジトリを追加してください。