更改 R 包中的功能并在 Ubuntu 上安装
making change to function in R package and installing on Ubuntu
小问题:我想编辑 RPostgreSQL
包中的 postgresqlWriteTable
函数,并在 Ubuntu 机器上的 R 运行ning 上安装它。
详细解释:
我的问题的根源是我正在尝试使用来自 [=13] 的 dbWriteTable
写入带有来自 R 的自动递增主键列的 postgres table =] 包。
我读了这个 post: How do I write data from R to PostgreSQL tables with an autoincrementing primary key? 它建议通过更改 RPostgreSQL
包中的函数 postgresqlWriteTable
来解决我的问题。当我在 OSX 环境中交互式使用 fixInNamespace
并编辑函数时,它会起作用。
不幸的是,我必须 运行 在 AWS 实例 运行ning R 上 Ubuntu 我的脚本。我在机器上的这个位置安装了 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
按照建议安装包post 这里:Loading an R Package from a Custom directory
事情是这样的:
> 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 机器。
- 解压这个文件,这样你就有了一个目录结构。
- 编辑文件中的函数并保存更改。
- 您可能还需要增加
DESCRIPTION
文件中的版本号。
- 使用
devtools::build
创建一个新的 .tar.gz
文件。
- 安装这个更新版本的包。
小问题:我想编辑 RPostgreSQL
包中的 postgresqlWriteTable
函数,并在 Ubuntu 机器上的 R 运行ning 上安装它。
详细解释:
我的问题的根源是我正在尝试使用来自 [=13] 的 dbWriteTable
写入带有来自 R 的自动递增主键列的 postgres table =] 包。
我读了这个 post: How do I write data from R to PostgreSQL tables with an autoincrementing primary key? 它建议通过更改 RPostgreSQL
包中的函数 postgresqlWriteTable
来解决我的问题。当我在 OSX 环境中交互式使用 fixInNamespace
并编辑函数时,它会起作用。
不幸的是,我必须 运行 在 AWS 实例 运行ning R 上 Ubuntu 我的脚本。我在机器上的这个位置安装了 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
按照建议安装包post 这里:Loading an R Package from a Custom directory
事情是这样的:
> 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 机器。 - 解压这个文件,这样你就有了一个目录结构。
- 编辑文件中的函数并保存更改。
- 您可能还需要增加
DESCRIPTION
文件中的版本号。 - 使用
devtools::build
创建一个新的.tar.gz
文件。 - 安装这个更新版本的包。