繁体   English   中英

更改R包中的功能并在Ubuntu上安装

[英]making change to function in R package and installing on Ubuntu

简短的问题:我想编辑RPostgreSQL包中的postgresqlWriteTable函数并将其安装在运行Ubuntu机器的R上。

详细说明:

我的问题的根源在于,我试图使用RPostgreSQL包中的dbWriteTable ,使用R中的自动递增主键列写入postgres表。

我读了这篇文章: 如何使用自动递增的主键将数据从R写入PostgreSQL表? 它通过更改RPostgreSQL软件包中的函数postgresqlWriteTable提出了解决我的问题的建议。 当我在OSX环境中以交互方式使用fixInNamespace并编辑该功能时,它将起作用。

不幸的是,我必须在Ubuntu上运行R的AWS实例上运行脚本。 我在RPostgreSQL上的以下位置安装了RPostgreSQL/usr/local/lib/R/site-library/RPostgreSQL 我通过调用R CMD install RPostgreSQL_0.4-1.tar.gz安装了它

现在,我试图找到函数postgresqlWriteTable 它应该在文件PostgreSQLSupport.R 我已经搜索了整个库-没有这样的文件。

我意识到在OSX Finder的本地计算机上,当我解压缩tar.gz软件包文件夹时,可以看到文件PostgreSQLSupport.R ,我应该在其中更改功能。

所以我改变了功能。 然后,我从Ubuntu机器中删除了已安装的RPostgreSQL,并将新文件夹(从本地机器)复制到Ubuntu机器中,并尝试使用devtools来安装软件包,如本文中的建议: 从自定义目录加载R软件包

这是发生了什么:

> library("devtools")
> install("/usr/local/lib/R/site-library/RPostgreSQL")
Error: Can't find '/usr/local/lib/R/site-library/RPostgreSQL'.
> install("RPostgreSQL", "/usr/local/lib/R/site-library/RPostgreSQL")
Installing RPostgreSQL
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/datasci/nikhil/RPostgreSQL'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

* installing *source* package ‘RPostgreSQL’ ...
file ‘R/PostgreSQLSupport.R’ has the wrong MD5 checksum
ERROR: 'configure' exists but is not executable -- see the 'R Installation and Administration Manual'
* removing ‘/usr/local/lib/R/site-library/RPostgreSQL’
Error: Command failed (1)

我没办法 !

  1. 将pacakge .tar.gz文件复制到AWS机器上。
  2. 解压缩该文件,以便您具有目录结构。
  3. 编辑文件中的函数并保存更改。
  4. 您可能还必须增加DESCRIPTION文件中的版本号。
  5. 使用devtools::build创建一个新的.tar.gz文件。
  6. 安装此更新版本的软件包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM