linux - 在 Windows/Linux 中创建 Mac 包

标签 linux macos r package

我自己努力制作一个r包。我按照 stackoverflow 上的上一个问题中的说明进行操作 how to develop package for layman 。以下是我根据上一个问题采取的步骤。

  1. 在新的 R session 中运行 R 代码

    # random DNA function
    randDNA = function(n){
    paste(sample(c("A", "C", "T", "G"), n, replace = TRUE), collapse = "")
    }
    # DNA to RNA function
    dna2rna <- function(inputStr) {
      if (!is.character(inputStr))
        stop("need character input")
      is = toupper(inputStr)
      chartr("T", "U", is)
    }
    
    # complementary sequence function
    compSeq <-  function(inputStr){
     chartr("ACTG", "TGAC", inputStr)
     }
    
    # example data
    dnaseq1 <- c("ATTGTATCTGGGTATTTCCCTTAATTGGGGCCTTT")
    dnaseq2 <- c("TGGGGTAAACCCGGTTTAAAATATATATATTTTT")
    myseqdata <- data.frame(dnaseq1, dnaseq2)
    save(myseqdata, file = "myseqdata.RData")
    
  2. 安装 Rtools安装R包utils

  3. 在 R 中执行以下任务

    require(utils)
    package.skeleton(list = c("randDNA","dna2rna", "compSeq", "myseqdata"), 
    name = "dnatool",environment = .GlobalEnv, path = "c:", force = FALSE)
    
  4. 在 Windows 7 中将系统环境变量路径编辑为以下内容

    C:\Rtools\bin;C:\Rtools\perl\bin;C:\Rtools\MinGW\bin; 
    C:\Program Files\R\R-2.14.2\bin\x64; 
    

    (在命令行中输入>path来检查路径是否正确设置。

  5. 复制步骤(3)中的文件夹 dnatool 并放入名为 rpackage 的新文件夹中,现在将目录更改为该文件夹(在 DOS 中)

    c: \ repackage>  R CMD build dnatool 
    c: \ repackage>  Rcmd build dnatool 
    

    编辑:我有时会得到 dnatool.zip,但有时会得到 dnatool.tar.gx

  6. 在命令行 (DOS) 中检查软件包

    c: \ repackage> R CMD check dnatool
    

我能够在 Windows 中将其打包为“dnatool.zip”。

如何编译 MAC 或 unix 源代码?步骤有何不同?

Unix source:     dnatool.tar.gz
Mac OS X binary: dnatool.tgz

我需要Mac电脑来做吗?我有 linux virtualbox 并在其中安装了 ubuntu 吗?

编辑:

我应该使用以下命令从步骤 (3) 文件夹 dnatool 获取源代码二进制文件吗?

$ tar -zcvf dnatool.tar.gz/home/dnatool

最佳答案

使用R CMD build创建的包可以安装在其他操作系统类型上。即使您的包包含 R(c 或 c++)以外的源代码,情况也是如此。仅当您创建二进制发行版时(我认为通过将 --binary 添加到 r cmd 构建调用),包才变得特定于平台。构建软件包所需的工具通常已经安装在 Linux 或 Mac 下。因此,如果您创建一个源代码发行版,它应该可以在所有主要发行版下运行。要创建 mac 二进制文件,您需要一台 mac,或者创建一个交叉编译器环境。第二种选择可能是一个很大的挑战,我说你可以给谷歌。请注意,如果您将包上传到 CRAN,所有包的构建都会为您完成。

关于linux - 在 Windows/Linux 中创建 Mac 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259033/

相关文章:

macos - 在 OSX 上加载/执行 ELF 文件的可能性

linux - 如何在 OS X 上设置 SSH 服务器

windows - Electron:是否可以检索文件上次访问的日期和时间

r - 带替换件的快速排序样本

c++ - fork() 和 waitpid() 不等待 child

linux - 检查函数(bash)中的字符串是否只有数字、小写字母和 "_"

linux - 在 linux 中更改 lsof 中的输出

linux - 如何根据一个匹配列合并具有不同字段的两个文件?

r - 如何在 R 中找到两个数据帧之间的公共(public)行并删除它们

r - R中的替代和引用有什么区别