当我尝试在R中安装软件包时,如果加载了.Rprofile
,安装几乎总是会失败。但是,当我使用--vanilla
标志加载R时,我可以毫无问题地安装软件包。这是带有问题的R会话的输出。我认为难度与.First()
中的.Rprofile
函数或历史文件有关。 My Rprofile file is here
$ install.packages("SuppDists")
Installing package into ‘/home/lmullen/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/SuppDists_1.1-9.tar.gz'
Content type 'application/x-gzip' length 140784 bytes (137 Kb)
opened URL
==================================================
downloaded 137 Kb
Loading required package: stats
Loading required package: sp
rgeos version: 0.2-19, (SVN revision 394)
GEOS runtime version: 3.3.3-CAPI-1.7.4
Polygon checking: TRUE
rgdal: version: 0.8-10, (SVN revision 478)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 1.9.0, released 2011/12/29
Path to GDAL shared files: /usr/share/gdal/1.9
Loaded PROJ.4 runtime: Rel. 4.7.1, 23 September 2009, [PJ_VERSION: 470]
Path to PROJ.4 shared files: (autodetected)
Error in .External2(C_loadhistory, file) : no history mechanism available
Calls: .First -> <Anonymous>
Execution halted
The downloaded source packages are in
‘/tmp/RtmpX42EEZ/downloaded_packages’
Warning message:
In install.packages("SuppDists") :
installation of package ‘SuppDists’ had non-zero exit status
有谁知道问题是什么?
答案 0 :(得分:1)
Henrik在R-devel邮件列表上给了我答案:
使用
if (interactive()) utils::loadhistory(file = "~/.Rhistory")
应该解决你的问题。原因是
install.packages()
在 转启动一个非交互式子R进程安装 包。当该进程加载您的启动文件时,它会失败,因为 该功能只能在交互模式下使用。
答案 1 :(得分:0)
我想出了导致问题的我.Rprofile
中的行,但我不知道他们为什么会导致这个问题。 .First
和.Last
函数是:
.First <- function() {
utils:::loadhistory(file = "~/.Rhistory")
cat("\nSuccessfully loaded .Rprofile at", date(), "\n\n")
}
.Last <- function() {
utils:::savehistory(file = "~/.Rhistory")
}
评论有关保存和加载历史记录的内容,我可以安装软件包。
答案 2 :(得分:0)
我是从R外部安装的,它运行良好,感谢@ hugo-raguet:
sudo apt-get -y install build-essential
sudo apt-get -y install r-cran-igraph
我相信以后不需要在R中安装 igraph 。