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() 不起作用。没有警告,没有安装的主要内容,如果未能解决你的问题,请参考以下文章