Установка пакетов на R завершается ошибкой при загрузке .Rprofile

Когда я пытаюсь установить пакеты в R, установка почти всегда завершается ошибкой, если мой .Rprofile загружен. Однако когда я загружаю R с флагом --vanilla, я могу без проблем устанавливать пакеты. Вот результат сеанса R с проблемой. Я думаю, что проблема связана либо с моей функцией .First() в .Rprofile, либо с файлом истории. Мой файл Rprofile находится здесь.

$ 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

Кто-нибудь знает, в чем проблема?


person Lincoln Mullen    schedule 14.08.2013    source источник
comment
Вы пытались удалить функцию .First, чтобы посмотреть, поможет ли это?   -  person Dason    schedule 15.08.2013
comment
Я также рекомендую загружать любые пакеты только в интерактивном сеансе - и в целом я рекомендую не загружать какие-либо пакеты, потому что это приводит к невоспроизводимому коду.   -  person hadley    schedule 15.08.2013
comment
@Dason: я попытался удалить функцию .First, и сообщение об ошибке истории исчезло, но пакет все равно не установился.   -  person Lincoln Mullen    schedule 15.08.2013
comment
@hadley: Спасибо за совет. Я полностью согласен с загрузкой пакетов. Я всегда запускаю код через неинтерактивный сеанс с флагом --vanilla. Но я последовал вашему совету и перенес всю загрузку пакетов в функцию, проверяющую, является ли сессия интерактивной.   -  person Lincoln Mullen    schedule 15.08.2013


Ответы (3)


Хенрик дал мне ответ в списке рассылки R-devel:

С использованием

if (interactive()) utils::loadhistory(file = "~/.Rhistory")

должен решить вашу проблему. Причина в том, что install.packages(), в свою очередь, запускает неинтерактивный дочерний процесс R, который устанавливает пакет. Когда этот процесс загружает ваш файл запуска, происходит сбой, потому что эту функцию можно использовать только в интерактивном режиме.

person Hugo Raguet    schedule 13.03.2017
comment
Вот ссылка на Ответ Хенрика в списке рассылки R-devel - person makeyourownmaker; 12.11.2018

Я выяснил строки в моем .Rprofile, которые вызывали проблему, хотя я не знаю, почему они вызывали проблему. Функции .First и .Last были такими:

.First <- function() {
  utils:::loadhistory(file = "~/.Rhistory")
  cat("\nSuccessfully loaded .Rprofile at", date(), "\n\n")
}

.Last <- function() {
  utils:::savehistory(file = "~/.Rhistory")
}

Закомментировав строчки о сохранении и загрузке истории, разрешите устанавливать пакеты.

person Lincoln Mullen    schedule 15.08.2013
comment
до сих пор не знаю, что вызвало проблему? - person Hugo Raguet; 03.03.2017
comment
понял, смотри мой ответ - person Hugo Raguet; 13.03.2017

В Убунто:

Я установил его из-за пределов R, и он работал хорошо, благодаря @hugo-raguet:

sudo apt-get -y install build-essential
sudo apt-get -y install r-cran-igraph

Я считаю, что нет необходимости устанавливать igraph позже в R.

person Farshad    schedule 22.09.2017