3

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

预先感谢您的任何帮助。

4

7 回答 7

4

最后(!!!)弄明白了。这是安装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。

于 2014-02-15T19:10:26.953 回答
3

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

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

于 2014-10-20T22:06:24.403 回答
1

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

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

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

祝你好运

于 2014-02-14T20:49:22.803 回答
1

这是我在下面回答的注释,但太长了,无法放入注释中。这个问题比我想象的要复杂一些。看来,如果加载了 lamp,您需要停止 mysql 才能在 R 中运行任何系统命令(因此 install.packages() 不会解包,尽管目前尚不清楚为什么下载是在开源的乐趣下工作的文件)。这里有一个相关的问题。也就是说,您可以通过安装 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上的其他服务),我的建议是从命令行安装(不是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 中运行系统命令。实际上,一旦安装了 tasksel 灯包并添加了用户,无论我停止了哪些服务,我都无法让 R 会话再次 install.packages()。同样,如果您有 mongo 或其他服务器正在运行,它们也需要停止。

希望这可以节省一些人的悲伤。同样,如果有人能阐明这里的根本问题是什么,我将不胜感激——我真的希望能够在执行复杂的 R 命令时运行 mysql 服务。

同样,使用 R 3.0.2、apache2 和 ubuntu 12.04。我还在 ubuntu 13.10 中复制了这个问题,只是想看看这是否有帮助(它没有)。

于 2014-02-16T18:34:16.400 回答
1

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

我在我的流浪文件中使用它来增加内存:

  config.vm.provider "virtualbox" do |vb|
    # Use VBoxManage to customize the VM. For example to change memory:
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end
于 2014-07-25T17:07:36.593 回答
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")
于 2014-05-10T10:43:11.547 回答
0

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

在 EC2 实例上添加交换空间的解决方案在此处描述,即:如何将交换添加到 EC2 实例?

于 2015-11-02T20:12:06.727 回答