gpt4 book ai didi

r - 维护 Windows 和 Linux 的本地存储库

转载 作者:行者123 更新时间:2023-12-02 09:44:00 25 4
gpt4 key购买 nike

我有一些 R 代码,希望与办公室中的其他人共享,并且也会定期在我们的服务器上运行。我们都有 Windows 7 桌面,服务器运行 Red Hat Enterprise Linux。

我已经阅读了文档,但我被困住了。以下内容均不包含所有必要的步骤,详细说明了正确的文件夹结构,或告诉我如何构建 Linux 软件包,或在 Linux 上构建 Windows 软件包。

所以我的代码在 git 中。

$ mkdir ~/daveStuff
$ cd ~/daveStuff
$ git init
$ git remote add origin git@davez0r.co:/opt/git/daveStuff.git
$ git pull origin master

现在在我的主目录中我有这个文件夹结构:

daveStuff
|-- DESCRIPTION
|-- R
|-- stuff.R
|-- exec
|-- script.R

我的描述文件如下所示:

Package: daveStuff
Type: Package
Title: What the package does (short line)
Version: 1.0
Date: 2014-02-03
Author: Who wrote it
Maintainer: Who to complain to <yourfault@somewhere.net>
Description: More about what it does (maybe more than one line)
License: What license is it under?

我正在我的一台服务器上运行 apache。所以我添加了这个:

/var/www/html/R/src/contrib/3.0/

这正确地映射到以下内容,我在其中读取了放置在那里的所有文件:

http://davez0r.co/R/src/contrib/3.0/

我希望能够在 Windows 或 Linux 上执行以下操作:

> install.packages("daveStuff", repos="http://davez0r.co/R", type="source")
> library(daveStuff)

所以第一步是我需要将我的库变成一个包。

$ cd ~   # one under the "daveStuff" directory
$ R CMD build daveStuff

这将创建一个 zip 文件:

~/daveStuff_1.0.tar.gz

现在我将该文件复制到我的存储库位置:

$ cp ~/daveStuff_1.0.tar.gz /var/www/html/R/src/contrib/3.0/

现在,如果我像这样:

> install.packages("daveStuff", repos="http://davez0r.co/R", type="source")

Warning in install.packages :
unable to access index for repository http://davez0r.co/R/src/contrib

它给了我一条错误消息,说它找不到该包。所以我创建了一个包 list :

$ cd /var/www/html/R/src/contrib # one under where I put the archive
$ Rscript -e 'tools::write_PACKAGES(".", type="source", subdirs=TRUE)'

这给了我一个PACKAGES文件:

 Package: daveStuff
Version: 1.0
MD5sum: 817bbfedeb218ce0331dd7108408c5e6
NeedsCompilation: no
Path: ./3.0

现在当我尝试加载它时它就可以工作了:

> install.packages("daveStuff", repos="http://davez0r.co/R", type="source")

Unresolved 问题:

  • 我丢失了 exec 目录中的脚本。
    • 我应该将它们包装在函数中并将它们包含在库中吗?
  • 我应该坚持使用包吗?
    • 如何在 Linux 上制作 Windows 二进制包?

最佳答案

在我看来,您跳过了最后一步。

一个需要

  1. 本地软件包(您拥有)
  2. Linux 的压缩包和 Windows 的二进制包(不确定)
  3. 本地存储库(您启动的)
  4. 存储库中的元数据(您似乎错过了)

我在工作中通过一个简单的脚本进行类似的设置(一些 Windows,许多 Linux):

#!/bin/bash

## see e.g.
## http://cran.r-project.org/doc/manuals/R-admin.html\
## #Setting-up-a-package-repository
## http://stackoverflow.com/questions/2905650/creating-a-local-cran-repository

ver=3.00

rsync -vu *tar.gz /SomeServer/R/src/contrib/
rsync -vu *zip /SomeServer/R/bin/windows/contrib/${ver}/

cd /SomeServer/R/src/contrib/
r -e 'tools::write_PACKAGES(".", type="source")'

cd /SomeServer/R/bin/windows/contrib/${ver}/
r -e 'tools::write_PACKAGES(".", type="win.binary")'

我使用littler's这里使用 r 二进制文件,您同样可以使用 Rscript。

关于r - 维护 Windows 和 Linux 的本地存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21536053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com