「R パッケージガイドライン」の版間の差分
(ページの作成:「Category:パッケージ開発 en:R package guidelines pt:R package guidelines {{Package Guidelines}} このドキュメントでは R パッケージの...」) |
(→サンプル: ヒントとテクニックを翻訳して追加) |
||
| (同じ利用者による、間の1版が非表示) | |||
| 27行目: | 27行目: | ||
== ビルドとパッケージ化 == |
== ビルドとパッケージ化 == |
||
| − | R にはパッケージのビルド機能があるため、ビルド済みのパッケージをインストール・コピーするだけです: |
||
| + | R にはパッケージを構築するためのサポートが組み込まれています。MRAN、CRAN、Bioconductor の 3 つのリポジトリ用の {{ic|PKGBUILD}} の 3 つのテンプレートを次に示します。MRAN は CRAN のスナップショットミラーであり、このテンプレートを使用すると、古い場合でもパッケージをビルドできます。 |
||
| − | 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 |
||
| − | } |
||
| − | == |
+ | === MRAN === |
| − | === RcppEigen === |
||
| + | _cranname= |
||
| − | pkgname=r-rcppeigen |
||
| + | _cranver= |
||
| − | pkgver=0.3.3.4.0 |
||
| + | _updatedate=YYYY-MM-DD |
||
| − | pkgrel=1 |
||
| + | pkgname=r-${_cranname,,} |
||
| − | pkgdesc="Rcpp Integration for the Eigen Templated Linear Algebra Library" |
||
| + | pkgver=${_cranver//[:-]/.} |
||
| − | arch=('x86_64') |
||
| + | pkgrel=1 |
||
| − | url="https://cran.r-project.org/package=RcppEigen" |
||
| + | pkgdesc="" |
||
| − | license=('GPL') |
||
| + | arch=() |
||
| − | depends=('r' 'r-rcpp') |
||
| + | url="<nowiki>https://cran.r-project.org/package=${_cranname}</nowiki>" |
||
| − | optdepends=('r-inline' 'r-runit' 'r-pkgkitten') |
||
| + | license=() |
||
| − | source=("https://cran.r-project.org/src/contrib/RcppEigen_$pkgver.tar.gz") |
||
| + | depends=(r) |
||
| − | md5sums=('78ee1ef7c6043efa875434ae5fcea2ec') |
||
| + | makedepends=() |
||
| − | |||
| + | optdepends=() |
||
| − | build(){ |
||
| + | source=("<nowiki>https://cran.microsoft.com/snapshot/${_updatedate}/src/contrib/${_cranname}_${_cranver}.tar.gz</nowiki>") |
||
| − | R CMD INSTALL RcppEigen_"$pkgver".tar.gz -l "$srcdir" |
||
| + | sha256sums=('') |
||
| − | } |
||
| + | |||
| − | package() { |
||
| + | build() { |
||
| − | install -dm0755 "$pkgdir"/usr/lib/R/library |
||
| + | R CMD INSTALL ${_cranname}_${_cranver}.tar.gz -l "${srcdir}" |
||
| − | cp -a --no-preserve=ownership RcppEigen "$pkgdir"/usr/lib/R/library |
||
| − | + | } |
|
| + | |||
| + | package() { |
||
| + | install -dm0755 "${pkgdir}/usr/lib/R/library" |
||
| + | |||
| + | cp -a --no-preserve=ownership "${_cranname}" "${pkgdir}/usr/lib/R/library" |
||
| + | } |
||
| − | === |
+ | === CRAN === |
| − | pkgver で使用できない文字が使われている R パッケージの例: |
||
| + | _cranname= |
||
| − | _cranver=3.98-1.11 |
||
| + | _cranver= |
||
| − | pkgname=r-xml |
||
| + | pkgname=r-${_cranname,,} |
||
| − | pkgver=${_cranver//[:-]/.} |
||
| + | pkgver=${_cranver//[:-]/.} |
||
| − | pkgrel=1 |
||
| + | pkgrel=1 |
||
| − | pkgdesc='Tools for Parsing and Generating XML Within R and S-Plus' |
||
| + | pkgdesc="" |
||
| − | arch=('x86_64') |
||
| + | arch=() |
||
| − | url='https://cran.r-project.org/package=XML' |
||
| + | url="<nowiki>https://cran.r-project.org/package=${_cranname}</nowiki>" |
||
| − | license=('BSD') |
||
| + | license=() |
||
| − | depends=('r' 'libxml2') |
||
| + | depends=(r) |
||
| − | optdepends=('r-bitops' 'r-rcurl') |
||
| + | makedepends=() |
||
| − | replaces=('r-cran-xml') |
||
| + | optdepends=() |
||
| − | source=("https://cran.r-project.org/src/contrib/XML_$_cranver.tar.gz") |
||
| + | source=("<nowiki>https://cran.r-project.org/src/contrib/${_cranname}_${_cranver}.tar.gz</nowiki>") |
||
| − | md5sums=('6c67f5730ada3456372520773a920b8e') |
||
| + | sha256sums=('') |
||
| − | |||
| + | |||
| − | build(){ |
||
| + | build() { |
||
| − | R CMD INSTALL XML_"$_cranver".tar.gz -l "$srcdir" |
||
| + | R CMD INSTALL ${_cranname}_${_cranver}.tar.gz -l "${srcdir}" |
||
| − | } |
||
| + | } |
||
| − | package() { |
||
| + | |||
| − | install -dm0755 "$pkgdir"/usr/lib/R/library |
||
| + | package() { |
||
| − | cp -a --no-preserve=ownership XML "$pkgdir"/usr/lib/R/library |
||
| + | 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="<nowiki>https://bioconductor.org/packages/${_bcname}</nowiki>" |
||
| + | license=() |
||
| + | depends=(r) |
||
| + | makedepends=() |
||
| + | optdepends=() |
||
| + | source=("<nowiki>https://bioconductor.org/packages/release/bioc/src/contrib/${_bcname}_${_bcver}.tar.gz</nowiki>") |
||
| + | # or |
||
| + | # source=("<nowiki>https://bioconductor.org/packages/release/data/annotation/src/contrib/${_bcname}_${_bcver}.tar.gz</nowiki>") |
||
| + | 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 パッケージに簡単にアクセスするには、[https://wiki.archlinux.org/title/Unofficial_user_repositories#bioarchlinux bioarchlinux] リポジトリを追加してください。 |
||
2023年6月28日 (水) 17:47時点における最新版
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 リポジトリを追加してください。