我想安装 R 包 RPostgresql 来连接到 Centos 8 上名为“crex”的 PostgreSQL 数据库。当我运行
> install.packages("RPostgreSQL")
在终端我收到以下错误:
Installing package into ‘/usr/lib64/R/library’
(as ‘lib’ is unspecified)
Warning in install.packages("RPostgreSQL") :
'lib = "/usr/lib64/R/library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel)
从我收集到的消息来看,我需要设置一个个人库,但我不确定其含义。我想做的是运行 ar 脚本,例如 new.r,它将被另一个 bash 脚本调用。
new.r:
require("RPostgreSQL")
pw <- {
"XXXX"
}
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = "crex",
host = "localhost", port = 5432,
user = "postgres", password = pw)
rm(pw)
dbExistsTable(con, "work")
#other commands
Bash 脚本b.txt:
#!/bin/bash
Rscript new.r
#other commands
有人可以帮忙吗?
答案1
R 希望在该默认路径中安装软件包。该路径不存在,或者您没有对该路径的写权限。
从您通过 bash 运行 R 脚本的角度来看,将库安装在其他地方(例如个人库)不是问题。我不会担心库安装在哪里,除非您稍后加载它们时遇到特殊问题。一个可能的暗示是,如果您以其他用户身份运行脚本,则可能需要再次安装到该用户可以访问的路径中。