Ubuntu 12.04 R install.packages() не работает. Без предупреждения, без установки

Я использую экземпляр Ubuntu 12.04, и у меня загружена версия R3.0.2, но я не могу получить install.packages() для установки пакетов. Он загружает файлы, но, похоже, не устанавливает их. Я что-то упустил здесь? У меня никогда не было этой проблемы до запуска экземпляров Ubuntu R. Кстати, я попытался запустить процесс от имени пользователя root, созданного с помощью sudo R, из командной строки, но ни предупреждения, ни установки. Кстати, эта проблема характерна для всех пакетов, которые я пытался установить.

Вот пример:

> install.packages("dataview")
Installing package into ‘/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
also installing the dependency ‘xtermStyle’

trying URL 'http://cran.rstudio.com/src/contrib/xtermStyle_2.2-4.tar.gz'
Content type 'application/x-gzip' length 15265 bytes (14 Kb)
opened URL
==================================================
downloaded 14 Kb

trying URL 'http://cran.rstudio.com/src/contrib/dataview_1.4-8.tar.gz'
Content type 'application/x-gzip' length 10696 bytes (10 Kb)
opened URL
==================================================
downloaded 10 Kb


The downloaded source packages are in
    ‘/tmp/Rtmp6FevA0/downloaded_packages’
> library(dataview)
Error in library(dataview) : there is no package called ‘dataview’ 

Что бы это ни стоило, я установил R со следующими командами оболочки

#remove old versions
sudo apt-get remove r-base-core
#Adding deb to sources.list
sudo nano /etc/apt/sources.list    
deb http://cran.rstudio.com/bin/linux/ubuntu precise/

# Add key to sign CRAN packages
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
#Add specific PPA to the system
sudo add-apt-repository ppa:marutter/rdev
sudo apt-get update
sudo apt-get upgrade
#installing
sudo apt-get install r-base
sudo apt-get install r-base-dev

Спасибо заранее за любую помощь.


person Jim Crozier    schedule 14.02.2014    source источник
comment
Это может звучать глупо, но... перезагружались ли вы после обновления ОС? У меня были точно такие же симптомы на моем удаленном компьютере с Ubuntu.   -  person KenM    schedule 14.02.2014
comment
Эй, Кен, спасибо за идею. Я попытался перезагрузить, но у него все еще есть та же проблема.   -  person Jim Crozier    schedule 14.02.2014
comment
Это действительно весь текст, который вы видите при попытке установить? После последних «скачанных 10 КБ» следующее, что он должен сделать, это * installing *source* package ‘xtermStyle’, а затем, по крайней мере, попытаться выполнить установку. У тебя ничего нет?   -  person Spacedman    schedule 14.02.2014
comment
Это весь текст, но я знаком с правильным выводом install.packages(). Как бы то ни было, я пересобрал экземпляр, и теперь все работает. Должно быть, был конфликт, который не регистрировался в программе.   -  person Jim Crozier    schedule 15.02.2014


Ответы (7)


Наконец-то (!!!) разобрался. Это конфликт между mongodb и командой R install.packages(), когда установлен Apache2 (через лампу, другие установки я не подтверждал). Чтобы решить, просто запустите

sudo service mongodb stop

в оболочке, а затем перейдите в R и установите пакеты. Вы можете перезапустить сервер mongo после установки необходимых пакетов. Надеюсь, что это кому-то поможет. Чтобы воспроизвести «ошибку» (я знаю, я знаю, на самом деле это не ошибка), создайте ящик на EC2 (хотя я думаю, что проблема не уникальна для EC2), используя следующую конфигурацию:

#install mongodb:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/10gen.list
sudo apt-get update
sudo apt-get install mongodb-10gen

#install lamp server:
sudo tasksel #get lamp and openssh 

#install R
sudo nano /etc/apt/sources.list   
deb http://cran.rstudio.com/bin/linux/ubuntu precise/
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add -
sudo apt-get update
sudo apt-get install r-base
sudo R

Внутри Р:

install.packages("dataview") #или любой другой пакет

Пакеты будут загружаться, но не устанавливаться, как указано в исходном сообщении выше.

Чтобы решить, просто остановите сервер mongo в оболочке.

sudo service mongodb stop

вернитесь в R и установите свои пакеты, а затем вернитесь в оболочку и перезапустите сервер. Любое освещение того, что вызывает конфликт (или в целом отладка такого рода проблем, за исключением повторной попытки выполнить команду шаг за шагом на протяжении всего процесса), будет оценено по достоинству. Обратите внимание, что команда install.packages() работает нормально, если только сервер mongodb работает без установленного Apache, но остановка сервера Apache не разрешает конфликт.

Для справки, это 64-битный экземпляр Ubuntu 12.04 с R 3.0.2, Mongodb-10gen и Apache2.

person Jim Crozier    schedule 15.02.2014

Когда я установил R Server на Ubuntu 12.04, я забыл настроить свопы: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-12-04

Когда я настроил свопы в соответствии с приведенным выше руководством, это позволило мне установить пакеты R. Это может быть проблемой, с которой вы столкнулись.

person allthesignals    schedule 20.10.2014

У меня может быть несколько предложений из моего прошлого опыта, надеюсь, что это поможет:

Я бы запускал R как суперпользователь sudo su. Затем попытался бы установить package. Также убедитесь, что пакет устанавливается в место по умолчанию, откуда R пытается загрузить пакеты, то есть, как мне кажется, /usr/local/lib/R/site-library.

Попробуйте и посмотрите, работает ли это. Если нет, то я бы также попробовал другой обходной путь, чтобы обмануть R, скопировав мой установленный пакет в /home/ubuntu/R/x86_64-pc-linux-gnu-library/3.0 в /usr/local/lib/R/site-library как root и посмотреть, поможет ли это.

Удачи

person Dev Patel    schedule 14.02.2014

Это примечание к моему ответу ниже, но оно слишком длинное, чтобы поместиться в примечание. Эта проблема немного сложнее, чем я думал. Оказывается, если лампа загружена, нужно остановить mysql, чтобы запустить любую системную команду в R (поэтому install.packages() не распаковывается, хотя непонятно, почему загрузка работает - файл под радостями опенсорса). Связанная проблема здесь. То есть вы можете воспроизвести проблему, просто установив R + lamp (я также использую RStudio Server, который может играть роль, но я не думаю, что это происходит). Если служба mysql запущена, при запуске R появляется следующая ошибка.

Error in system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE) : 
cannot popen '/usr/bin/which 'pdflatex' 2>/dev/null', probable reason 'Cannot allocate memory'

(кстати, это не проблема нехватки памяти, так как на сервере много памяти). Мое предложение, если вам нужно запустить ламповый сервер (и/или другие службы на apache2), состоит в том, чтобы установить его из командной строки (а не из Taskel, см.

sudo apt-get install apache2
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

а потом

sudo service mysql stop

если вам нужно запускать системные команды в R. На самом деле я не смог заставить сеансы R снова установить.packages() после того, как был установлен пакет Taskel Lamp и добавлен пользователь, независимо от того, какие службы я остановил. Точно так же, если у вас запущен mongo или другой сервер, их также необходимо будет остановить.

Надеюсь, что это избавит кого-то от горя. Опять же, если кто-нибудь может осветить основную проблему, я был бы очень признателен - мне бы очень хотелось иметь возможность запускать службу mysql при выполнении сложных команд R.

Опять же, работая с R 3.0.2, apache2 и ubuntu 12.04. Я также воспроизвел проблему в Ubuntu 13.10, просто чтобы посмотреть, поможет ли это (не помогло).

person Jim Crozier    schedule 16.02.2014

Итак, я столкнулся с той же проблемой... Убедитесь, что вы выделили достаточно памяти для своей виртуальной машины. Память виртуальной машины по умолчанию для Vagrant составляет 512 м... Увеличьте ее до 2048 м, и все должно работать нормально...

Я использую это в своем бродячем файле для увеличения памяти:

  config.vm.provider "virtualbox" do |vb|
    # Use VBoxManage to customize the VM. For example to change memory:
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end
person Ben B    schedule 25.07.2014
comment
Это решило мою проблему, спасибо! Бог знает, почему install.packages молча терпит неудачу, когда ему не хватает оперативной памяти... - person Andrew Christianson; 06.11.2014

У меня была эта проблема в CentOS, и в конце концов у меня сработало следующее:

Создайте какой-нибудь каталог, скажем, /data/Rpackages, затем попросите R загрузить в него файлы tar.gz, запустив

install.packages("RMySQL", destdir="/data/Rpackages/")

Затем установите пакеты в автономном режиме вручную (обратите внимание, что если предыдущая команда загрузила другие зависимые пакеты, вам также придется установить их по порядку):

install.packages(repos=NULL, pkgs="/data/Rpackages/DBI_0.2-7.tar.gz")
install.packages(repos=NULL, pkgs="/data/Rpackages/RMySQL_0.9-3.tar.gz")
person Morad    schedule 10.05.2014
comment
Это тоже не сработало; Я получил это сообщение при установке: Installing package into ‘/home/vagrant/R/i686-pc-linux-gnu-library/3.0’, за которым последовало это сообщение, когда я попытался загрузить библиотеку: Error in library("DBI") : ‘DBI’ is not a valid installed package. Я попытался указать местоположение библиотеки с помощью этого library("DBI",lib.loc="/home/vagrant/R/i686-pc-linux-gnu-library/3.0"), но только что получил эту ошибку Error in library("DBI", lib.loc = "/home/vagrant/R/i686-pc-linux-gnu-library/3.0") : ‘DBI’ is not a valid installed package - person samhiggins2001; 24.07.2014

Была такая же проблема на Ubuntu Server 14.04 LTS в экземпляре AWS... t1.micro с 600 МБ свободной памяти... поэтому добавили дополнительное пространство подкачки, как было рекомендовано выше, и он начал работать нормально.

Решение по добавлению пространства подкачки в экземпляре EC2 описано, например, здесь: Как добавить swap в инстанс EC2?

person user2395959    schedule 02.11.2015