在Windows / Linux中为Mac创建包

时间:2012-04-21 12:47:33

标签: linux macos r package

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

  1. 在新R会话中运行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. Pe来自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
    
  7. 我能够在Windows中将其打包为“dnatool.zip”。

    如何编译MAC或unix源?哪些步骤有所不同?

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

    我需要Mac电脑吗?我有linux virtualbox并安装了ubuntu吗?

    编辑:

    我应该使用以下commad得到从步骤sourcode二进制(3)夹dnatool?

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

1 个答案:

答案 0 :(得分:2)

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