R 软件打包准则
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 软件源。