Ubuntu 12.04 R install.packages()不起作用。没有警告,没有安装

时间:2014-02-14 17:20:30

标签: 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’ 

为了它的价值,我使用以下shell命令安装了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

提前感谢您的帮助。

7 个答案:

答案 0 :(得分:4)

最后(!!!)弄明白了。安装Apache2时,mongodb和R的install.packages()命令之间存在冲突(通过指示灯,我还没有确认其他安装)。为了解决问题,请运行

sudo service mongodb stop
在shell上

,然后进入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

里面的R:

  

install.packages(“dataview”)#或任何包

软件包将下载,但不会按照原始帖子中的说明进行安装。

要解决此问题,只需停止shell上的mongo服务器

即可
sudo service mongodb stop

返回R并安装软件包,然后返回shell并重新启动服务器。任何导致冲突的事件的照明(或者通常调试这种问题,而不是在整个过程中逐步重新执行命令)将不胜感激。请注意,如果仅在没有安装Apache的情况下运行mongodb服务器,install.packages()命令才能正常工作,但停止Apache服务器无法解决冲突。

作为参考,这是一个Ubuntu 12.04 64位实例,包含R 3.0.2,Mongodb-10gen和Apache2。

答案 1 :(得分:3)

当我在Ubuntu 12.04上安装R Server时,我忘了设置交换:https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-12-04

当我根据上面的教程设置掉期时,它允许我安装R包。这可能是您遇到的问题。

答案 2 :(得分:1)

我可能从我过去的经验中得到的建议很少,希望有所帮助:

我会以超级用户sudo su的身份运行R.然后会尝试安装包。还要确保软件包安装在默认位置,从R尝试加载我认为/usr/local/lib/R/site-library的软件包。

尝试一下,看看它是否有效。如果没有,那么我还会尝试另一种解决方法,通过将我在/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.0中安装的软件包复制到/usr/local/lib/R/site-library作为root来欺骗R,看看是否有帮助。

祝你好运

答案 3 :(得分:1)

这是我在下面的回答的注释,但是太长而无法放入注释中。这个问题比我想象的要复杂一些。看来如果加载了灯,你需要停止mysql以便在R中运行任何系统命令(因此install.packages()不会解包,尽管不清楚为什么下载工作 - 文件在开源的欢乐下)。相关问题here。也就是说,你可以通过安装R +灯来复制问题(我也在运行可能会发挥作用的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上的其他服务)是从命令行安装(不是tasksel,见下文),这样的(当然要确保采取安全预防措施(!))< / p>

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中运行系统命令,那么一旦安装了一个tasksel灯包并添加了一个用户,无论我停止了哪些服务,我实际上都无法再将r会话安装到install.packages() 。同样,如果您运行mongo或其他服务器,则还需要停止它们。

希望这可以为某人带来一些悲伤。同样,如果有人能够阐明这里的潜在问题是什么我会非常感激 - 我真的希望能够在执行复杂的R命令时运行mysql服务。

再次使用R 3.0.2,apache2和ubuntu 12.04。我也在ubuntu 13.10中复制了这个问题,看看是否有帮助(它没有)。

答案 4 :(得分:1)

好的,所以我遇到了同样的问题......请确保为VM分配足够的内存。 Vagrant的默认虚拟机内存为512米...将其增加到2048米,一切正常......

我在我的vagrant文​​件中使用它来增加内存:

  config.vm.provider "virtualbox" do |vb|
    # Use VBoxManage to customize the VM. For example to change memory:
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end

答案 5 :(得分:0)

我在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")

答案 6 :(得分:0)

在AWS中的Ubuntu Server 14.04 LTS上存在同样的问题... t1.micro实例具有600MB可用内存....所以在上面添加了额外的交换空间并且staretd工作正常。

在EC2实例上添加交换空间的解决方案如下所示:How do you add swap to an EC2 instance?