更改R包中的函数并在Ubuntu上安装

更改R包中的函数并在Ubuntu上安装,r,postgresql,ubuntu,devtools,R,Postgresql,Ubuntu,Devtools,简短问题:我想编辑RPostgreSQL包中的postgresqlWriteTable函数,并将其安装到运行在Ubuntu机器上的R上 详细解释: 我的问题的根源是,我试图使用dbWriteTablefromRPostgreSQLpackage从R向具有自动递增主键列的postgres表写入数据 我读了这篇文章:它建议通过更改RPostgreSQL包中的函数postgresqlWriteTable来解决我的问题。当我在OSX环境中以交互方式使用fixInNamespace并编辑函数时,它会起作用

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

详细解释:

我的问题的根源是,我试图使用
dbWriteTable
from
RPostgreSQL
package从R向具有自动递增主键列的postgres表写入数据

我读了这篇文章:它建议通过更改
RPostgreSQL
包中的函数
postgresqlWriteTable
来解决我的问题。当我在OSX环境中以交互方式使用
fixInNamespace
并编辑函数时,它会起作用

不幸的是,我必须在Ubuntu上运行R的AWS实例上运行我的脚本。我已将
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
安装程序包,如本文所示:

发生的事情如下:

> 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)
我已经智穷了

  • 将pacakge
    .tar.gz
    文件复制到AWS机器上
  • 解压此文件,以获得目录结构
  • 编辑文件中的函数并保存更改
  • 您可能还必须增加
    说明
    文件中的版本号
  • 使用
    devtools::build
    创建一个新的
    .tar.gz
    文件
  • 安装此软件包的更新版本
  • 将pacakge
    .tar.gz
    文件复制到AWS机器上
  • 解压此文件,以获得目录结构
  • 编辑文件中的函数并保存更改
  • 您可能还必须增加
    说明
    文件中的版本号
  • 使用
    devtools::build
    创建一个新的
    .tar.gz
    文件
  • 安装此软件包的更新版本

  • Drk.EdDbBeTeTe你想加入进来吗?因为你是其中的一个贡献者。如果您认为您的调整可以在不破坏当前功能的情况下使其他用户受益。老实说,我还没有足够的能力知道这一点,但是@dirk.eddelbuettel是
    RPostgreSQL
    的贡献者之一,并且他已经被标记。@dirk.eddelbuettel既然您是贡献者之一,您想参与进来吗?也请考虑和也许(尽管这个页面看起来很不活跃),如果你认为你的调整可以有益于其他用户而不破坏当前功能。老实说,我还不够先进,但是@ Drk.EdelBueTeleTo是<代码> RPGRESRQL