【发布时间】:2010-02-11 00:16:58
【问题描述】:
前言:我是一个os x用户来linux,所以请提前原谅我的无知
我已经使用 synaptic 安装了 R,现在我正在尝试安装软件包。
我打开 R 然后尝试
install.packages("some_package")
系统尝试默认为/site-library,然后告诉我它不可写,然后询问是否制作个人库?
我应该让站点库可写吗?或者还有什么其他的?
【问题讨论】:
标签: r
前言:我是一个os x用户来linux,所以请提前原谅我的无知
我已经使用 synaptic 安装了 R,现在我正在尝试安装软件包。
我打开 R 然后尝试
install.packages("some_package")
系统尝试默认为/site-library,然后告诉我它不可写,然后询问是否制作个人库?
我应该让站点库可写吗?或者还有什么其他的?
【问题讨论】:
标签: r
目录/usr/share/local/lib/R是默认位置;该目录默认拥有所有权root:staff。如果您将自己添加到组staff(最简单:通过编辑/etc/group 和/etc/gshadow),您可以在那里写,并且您不需要sudo 安装软件包的权力。我就是这么做的。
或者,执行apt-get install littler 并将示例文件/usr/share/doc/littler/examples/install.r 复制到/usr/local/bin 和chmod 755 它。你可以直接sudo install.r lattice ggplot2 举两个流行的例子。
顺便说一句,Ubuntu 8.1 不作为一个版本存在。也许你的意思是 8.10?考虑升级到 9.10 ...
编辑:也可以看看this recent SO question。
【讨论】:
adduser dan staff。
我遇到了同样的问题。最方便的方法是以超级用户身份启动 R。
须藤之后,install.packages("some package") 应该可以工作了。
【讨论】:
如果你是唯一需要这些包的用户,那么最简单、最简洁的方法就是让 R 为你创建一个个人库。这样你就不需要弄乱包管理系统管理的系统目录了。
在 Ubuntu 中安装 一些 包的另一种方法是查找名称类似于 r-cran-* 的 Ubuntu 包。这样您就不必担心依赖关系,所有用户都可以使用这些包,并且更新由 Ubuntu 包管理系统负责。但是只有一小部分 CRAN 包可以通过这种方式获得,您可能无法获得最新版本。
【讨论】:
好吧,我更喜欢将软件包安装到本地 R 文件夹 ~/R/,但这只是个人喜好的问题...您也可以授予自己对默认库的写入权限,这没有任何区别。
请务必添加最新的软件包。默认存储库中可用的那些包已经很老了。 R v.2.9.0 在 9.10 中默认可用,而 v.2.10.1 现在可用。
所以保持最新,将此行添加到文件/etc/apt/sources.list(将<text>替换为CRAN服务器地址,您可以在www.r-project.org > CRAN > Linux > Ubuntu上找到服务器地址):
deb http://<my.favorite.cran.mirror>/bin/linux/ubuntu karmic/
然后在终端运行这一行:
gpg --keyserver subkeys.pgp.net --recv-key E2A11821 && gpg -a --export E2A11821 | sudo apt-key add -
如果密钥导入正确,运行:
sudo apt-get install r-base-core
或者如果你已经安装了 R,运行:
sudo apt-get update && sudo apt-get upgrade
您还应该检查alias 函数(在终端中尝试man alias)以自动执行重复性任务...在终端中感觉很舒服,Synaptic 确实是一个很好的工具,但大多数 Linux 用户更喜欢命令行方法很好的理由 - 它是高度可定制的 =)
我建议您坚持使用一台服务器(在选择默认服务器时建议您 - 我更喜欢 UCLA 的服务器,伯克利工作得很好,主服务器通常很忙......所以那里......)
或者,您可以将默认 CRAN 服务器添加到 .First() 函数:
# replace '<server address>'
.First() <- function() {
options("repos" = c(CRAN = "<my.favorite.cran.mirror>"))
}
现在您可以输入:
> install.packages('<somepackage>')
您将失去无聊的 Tcl/Tk 服务器列表窗口!哦,真是一种解脱!
欢迎来到 Ubuntu!
干杯,伙计!
【讨论】:
options("repos") 位我确实没有明确提及,但 littlers install.r` 就是这样做的。最后,我不认为 ~/R 是好的做法(除了纯粹的私有模块),但每个人都有自己的。
install.r源码,默认的CRAN服务器是http://cran.us.r-project.org。当然,这可以在某个时候进行编辑...顺便说一句,我发现代码中有一个错字(没什么严重的):cat("Usage: installr.r pkg1 [pkg2 pkg3 ...]\n") 应该是install.r...正如我所说,没什么严重的...请,解释使用默认 lib.loc 的优点,而不是在 ~/ 文件夹中创建个人的?个人图书馆方法的缺点是什么?谢谢!