32 位 – CLR – CMake – Cross – DKMS – Eclipse – Electron – Font – Free Pascal – GNOME – Go – Haskell – Java – KDE – 內核模塊 – Lisp – Meson – MinGW – Node.js – Nonfree – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – Web – Wine
本文檔涵蓋了為 R 軟體包編寫 PKGBUILD 的標準和指南。大多數信息可以通過查看軟體包的 DESCRIPTION
文件獲得。在 R 中運行 tools::CRAN_package_db()
可以獲得大部分信息。您還可以訪問 CRAN、Bioconductor link1與Bioconductor link2,了解所有 R 軟體包的信息。
軟體包命名
軟體包應命名為 r-pkgname
,其中 pkgname 取自 DESCRIPTION
文件中的Package
欄位。軟體包名稱應小寫。
軟體包版本號
從Version
欄位中獲取。R 允許軟體包在版本號中使用冒號和連字符,但在 PKGBUILD 中不允許。將其轉換為句號或下劃線。
Arch
請參見 PKGBUILD#arch。如果軟體包的 CRAN 網頁上有 NeedsCompilation: yes
,那麼它很可能是特定架構的。否則,很可能不是,參見 PKGBUILD#arch。
依賴
在軟體包 DESCRIPTION
文件的Depends
、Imports
或 LinkingTo
欄位中列出的 R 軟體包應列在依賴項下。
Suggests
中列出的 R 軟體包應列為 optdepends。
有些軟體包需要外部工具,這些工具列在 SystemRequirements
下。
某些軟體包需要依賴 gcc-fortran包,但它並不總是列在 DESCRIPTION
文件中。
來源
CRAN 上的所有 R 軟體包都可以在網站 https://cran.r-project.org/src/contrib/cranname_cranversion.tar.gz
上找到,其中 cranname
是 CRAN 上軟體包的名稱,cranversion
是 cran 的版本。
Bioconductor 上可用的 R 軟體包可從網站 https://bioconductor.org/packages/release/bioc/src/contrib/bcname_bcname.tar.gz
或 https://bioconductor.org/packages/release/data/annotation/src/contrib/bcname_bcname.tar.gz
上獲取,其中 bcname
是 Bioconductor 上軟體包的名稱,bcver
是版本。
構建與打包
R 內置支持構建軟體包。下面是三個軟體源的 PKGBUILD
模板: MRAN、CRAN 和 Bioconductor。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 軟體源。