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

Posted

技术标签:

【中文标题】Ubuntu 12.04 R install.packages() 不起作用。没有警告,没有安装【英文标题】:Ubuntu 12.04 R install.packages() does not work. No warning, no install 【发布时间】:2014-03-14 04:24:09 【问题描述】:

我正在运行 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

提前感谢您的帮助。

【问题讨论】:

这可能听起来很傻,但是...您是否在更新操作系统后重新启动?我在远程 Ubuntu 机器上遇到了完全相同的“症状”。 嘿,肯,谢谢你的想法。我尝试重新启动,但它仍然有同样的问题。 这真的是您在尝试安装时看到的所有文本吗?在最后一次“下载 10kb”之后,它应该做的下一件事是* installing *source* package ‘xtermStyle’,然后至少尝试进行安装。你什么都没有? 这就是所有的文本,但我熟悉 install.packages() 的正确输出。无论如何,我重建了实例,现在一切正常。一定存在未向程序注册的冲突。 【参考方案1】:

在 AWS 中的 Ubuntu Server 14.04 LTS 上遇到了同样的问题...具有 600MB 可用内存的 t1.micro 实例...所以按照上面的建议添加了额外的交换空间,它开始工作正常。

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

好的,所以我遇到了同样的问题...确保为 VM 分配了足够的内存。 Vagrant 的默认 VM 内存是 512m...增加到 2048m,一切都应该正常...

我在我的 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

【讨论】:

这解决了我的问题,谢谢!天知道为什么 install.packages 没有足够的 RAM 时会默默地失败...【参考方案4】:

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

【讨论】:

那也没用;我在安装时收到此消息: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【参考方案5】:

这是我下面回答的注释,但太长,无法放入注释。这个问题比我想象的要复杂一些。看来,如果加载了 lamp,您需要停止 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,见下文)(请确保采取安全预防措施当然(!))

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 中复制了这个问题,只是想看看这是否有帮助(它没有)。

【讨论】:

【参考方案6】:

终于 (!!!) 弄明白了。这是安装Apache2时mongodb和R的install.packages()命令之间的冲突(通过lamp,我没有确认其他安装)。为了解决只是运行

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 并重新启动服务器。任何有关导致冲突的原因的说明(或一般调试此类问题,而不是在整个过程中逐步重试命令)将不胜感激。请注意,如果只有 mongodb 服务器在未安装 Apache 的情况下运行,则 install.packages() 命令可以正常工作,但停止 Apache 服务器并不能解决冲突。

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

【讨论】:

【参考方案7】:

根据我过去的经验,我可能有一些建议,希望对您有所帮助:

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

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

祝你好运

【讨论】:

以上是关于Ubuntu 12.04 R install.packages() 不起作用。没有警告,没有安装的主要内容,如果未能解决你的问题,请参考以下文章

制作ubuntu 12.04镜像

Ubuntu12.04使用

我使用root用户登录ubuntu12.04,使用passwd命令成功修改了一个系统账户到密码,但却没生效?

ubuntu12.04_命令

Ubuntu12.04下配置Eclipse+PyDev

Ubuntu12.04 安装Samba