在包安装过程中与 .libPaths 混淆
Confusion with .libPaths during package install
这可能会被引导我到帮助文件的人回答,但到目前为止我显然错过了它。我的困惑是,当我安装一个包时(有时),它似乎没有默认为我的 .libPaths 的内容 - 相反它似乎想要安装到它没有权限的网络路径。
这是我的库路径
>.libPaths()
[1] "C:/Program Files/R/R-3.3.0/library"
如果我尝试在不指定 lib 参数的情况下安装此包,它似乎正在尝试保存到网络文件夹(我已经在错误消息中更改了网络驱动器的名称,但你明白了):
> install.packages("rmarkdown")
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
Content type 'application/zip' length 2182803 bytes (2.1 MB)
downloaded 2.1 MB
package ‘rmarkdown’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\my.name\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages
Warning message:
In dir.create(configDir, recursive = TRUE) :
cannot create dir '\server.name\server_directory', reason 'Permission denied'
但是,如果我在 "lib" 参数中指定 .libpaths()
,那么它就可以工作。但这不是 lib 参数的默认值吗?
> install.packages("rmarkdown",lib=.libPaths())
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
Content type 'application/zip' length 2182803 bytes (2.1 MB)
downloaded 2.1 MB
package ‘rmarkdown’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\jordan.watson\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages
但这并不是每次都会发生。例如,我只是通过简单地写 install.packages("forecast")
.
来加载 "forecast" 库没问题
我只是想更好地理解这种行为。有人可以解释为什么会这样吗?我在 Windows 7 上,没有完全的管理员权限 - 但我对 C 驱动器上的 R 文件夹有管理员权限。
提前道歉,我不能做一个可重现的例子 - 这不是那种类型的问题。
约旦,
我的感觉是你的设置不正确。
建议的解决方案
尝试运行以下命令,看看是否能解决问题。
注意: 我在下面的示例中用 <user>
替换了我的 userid
。
.libPaths( c( "C:/Users/<user>/Documents/R/win-library/3.3", .libPaths()) )
说明
我希望 .libPaths()
到 return 两个目录,默认情况下不是一个。
> .libPaths()
[1] "C:/Users/<user>/Documents/R/win-library/3.3" "C:/Program Files/R/R-3.3.0/library"
当您安装 R 时,它会在
下安装基础库
C:/Program Files/R/R-3.3.0/library
任何新库通常会添加到:
"C:/Users/<user>/Documents/R/win-library/3.3"
如果您键入 View(installed.packages())
,您将能够看到软件包的安装位置。
R 安装附带的包(base、stats 和近 30 个其他包)存储在您安装 R 的任何位置的 library 子目录中。您可以通过以下方式检索它的位置:
> R.home("library")
[1] "C:/PROGRA~1/R/R-33~1.1/library"
> .Library
[1] "C:/PROGRA~1/R/R-33~1.1/library
您还可以获得一个用户库,用于安装只能由您访问的软件包。 Windows下的位置,对于R版本x.y.z,在主目录的R/win-library/x.y子文件夹中,主目录可以通过:
找到
> path.expand("~")
[1] "C:/Users/<user>/Documents"
> Sys.getenv("HOME")
[1] "C:/Users/<user>/Documents"
问题
因此,我希望 .libPaths()
到 return 两条路径,而不是一条路径,这意味着您以某种方式错误配置了 R 安装 libpath。
希望以上内容对您有所帮助。
参考文献:
- https://stat.ethz.ch/R-manual/R-devel/library/base/html/libPaths.html
- 学习 R 作者:Richard Cotton
这可能会被引导我到帮助文件的人回答,但到目前为止我显然错过了它。我的困惑是,当我安装一个包时(有时),它似乎没有默认为我的 .libPaths 的内容 - 相反它似乎想要安装到它没有权限的网络路径。
这是我的库路径
>.libPaths()
[1] "C:/Program Files/R/R-3.3.0/library"
如果我尝试在不指定 lib 参数的情况下安装此包,它似乎正在尝试保存到网络文件夹(我已经在错误消息中更改了网络驱动器的名称,但你明白了):
> install.packages("rmarkdown")
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
Content type 'application/zip' length 2182803 bytes (2.1 MB)
downloaded 2.1 MB
package ‘rmarkdown’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\my.name\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages
Warning message:
In dir.create(configDir, recursive = TRUE) :
cannot create dir '\server.name\server_directory', reason 'Permission denied'
但是,如果我在 "lib" 参数中指定 .libpaths()
,那么它就可以工作。但这不是 lib 参数的默认值吗?
> install.packages("rmarkdown",lib=.libPaths())
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
Content type 'application/zip' length 2182803 bytes (2.1 MB)
downloaded 2.1 MB
package ‘rmarkdown’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\jordan.watson\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages
但这并不是每次都会发生。例如,我只是通过简单地写 install.packages("forecast")
.
我只是想更好地理解这种行为。有人可以解释为什么会这样吗?我在 Windows 7 上,没有完全的管理员权限 - 但我对 C 驱动器上的 R 文件夹有管理员权限。
提前道歉,我不能做一个可重现的例子 - 这不是那种类型的问题。
约旦,
我的感觉是你的设置不正确。
建议的解决方案
尝试运行以下命令,看看是否能解决问题。
注意: 我在下面的示例中用 <user>
替换了我的 userid
。
.libPaths( c( "C:/Users/<user>/Documents/R/win-library/3.3", .libPaths()) )
说明
我希望 .libPaths()
到 return 两个目录,默认情况下不是一个。
> .libPaths()
[1] "C:/Users/<user>/Documents/R/win-library/3.3" "C:/Program Files/R/R-3.3.0/library"
当您安装 R 时,它会在
下安装基础库C:/Program Files/R/R-3.3.0/library
任何新库通常会添加到:
"C:/Users/<user>/Documents/R/win-library/3.3"
如果您键入 View(installed.packages())
,您将能够看到软件包的安装位置。
R 安装附带的包(base、stats 和近 30 个其他包)存储在您安装 R 的任何位置的 library 子目录中。您可以通过以下方式检索它的位置:
> R.home("library")
[1] "C:/PROGRA~1/R/R-33~1.1/library"
> .Library
[1] "C:/PROGRA~1/R/R-33~1.1/library
您还可以获得一个用户库,用于安装只能由您访问的软件包。 Windows下的位置,对于R版本x.y.z,在主目录的R/win-library/x.y子文件夹中,主目录可以通过:
找到> path.expand("~")
[1] "C:/Users/<user>/Documents"
> Sys.getenv("HOME")
[1] "C:/Users/<user>/Documents"
问题
因此,我希望 .libPaths()
到 return 两条路径,而不是一条路径,这意味着您以某种方式错误配置了 R 安装 libpath。
希望以上内容对您有所帮助。
参考文献:
- https://stat.ethz.ch/R-manual/R-devel/library/base/html/libPaths.html
- 学习 R 作者:Richard Cotton