【问题标题】:PLR Installation on Mac Lion在 Mac Lion 上安装 PLR
【发布时间】:2013-01-23 20:55:33
【问题描述】:

我正在尝试在运行 OS X 10.7.5、Postgres 9.2 和 R 2.15.2 的 MacBook Pro 上安装 PL/R 8.3.0.13.1。我在网上找到了适用于 Windows 的 nice step-by-step guide,但我找不到适用于 Mac 的类似内容。
我在运行此命令时卡住了 [作为官方文档] (http://www.joeconway.com/plr/doc/plr-install.html):

USE_PGXS=1 make

输出:

make: pkg-config: Command not found
make: pkg-config: Command not found
make: pkg-config: Command not found
make: pkg-config: Command not found
make: pkg-config: Command not found

*** Cannot build PL/R because R_HOME cannot be found.
*** Refer to the documentation for details.

显然这意味着我需要以某种方式创建 R_HOME、变量和/或位置...

知道怎么做吗?

【问题讨论】:

  • 第二个链接中的指南看起来不像 Windows 特定指南,尽管它确实有一个小的 Win32 段落。我认为您需要描述早期的操作和目录位置,然后人们才能知道您的设置到底是什么。您尤其需要说明您使用的 XCode 版本以及如何设置环境变量。
  • 我的 XCode 版本是 4.5.2。到目前为止,我所做的是下载 PL/R 源 (joeconway.com/plr/plr-8.3.0.13.1.tar.gz) 并将其解压到“下载”文件夹中。然后从终端运行上面的命令并获得该输出。很抱歉,但我不知道如何设置我的环境变量。我想我从来没有这样做过。
  • 与其在 cmets 中执行此操作,不如将其删除并将其粘贴到问题中。这些页面上的说明指定了设置环境变量,因此您可能需要查找(或使用 macos 标签提出问题)如何执行此操作。错误告诉你找不到 PLR R_HOME 环境变量。

标签: macos r postgresql plr


【解决方案1】:

错误信息实际上有点令人困惑。如果你看PL/R的Makefile,逻辑是它在设置时使用R_HOME来查找R,否则它会尝试pkg-config。你都没有设置,所以它会退出。

如果可能,我建议走pkg-config 路线。 R_HOME 路线似乎假定了一种可能并不普遍适用的 R 安装方案。也许它适用于直接从源代码构建。

以上适用于所有平台。现在在 OS X 上,这取决于你如何安装 R。例如,如果你使用 MacPorts,它会变成这样:

sudo port install pkgconfig
sudo port install R

然后自己构建 PL/R:

make USE_PGXS=1

但这会中断,因为 PL/R 不希望 MacPorts 将 R 头文件分成两个单独的目录(我想是架构相关和独立的)。

自制可能会更好,但原理是一样的。

【讨论】:

  • 这在 plr 版本 8.3.0.14 中已修复。
【解决方案2】:

您需要弄清楚应该设置什么 PLR 环境 R_HOME 变量。在终端会话中,我得到了这个

computername:~ username$ R RHOME      #only enter stuff after"$"
/Library/Frameworks/R.framework/Resources

这是您链接到的页面的底部:

"提示:R_HOME 必须在启动 PostgreSQL 的用户的环境中定义,在 postmaster 启动之前。否则 PL/R 将拒绝加载。请参阅 plr_environ(),它允许检查可用于的环境PostgreSQL postmaster 进程。"

这是来自webpage describing the problem and offering a fix

To fix: Add a "R_HOME = '/usr/lib/R' " to /etc/postgresql/version/cluster/environmen

Example Fix for version 8.1:
 $ sudo -s
 # echo -e "\nR_HOME = '/usr/lib/R'" >> /etc/postgresql/8.1/main/environment
 # exit

To Test:
 $ sudo /etc/init.d/postgresql-8.1 restart
 $ sudo -u postgres psql plr_test
 plr_test=# select test();
  test
 ------

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多