2013-03-13 40 views
1

我想在Mountain Lion 10.8.2上安裝PL/R,我已經從r-project和PostgreSQL 9.1從KyngChaos安裝了R 2.15.3。我從http://www.joeconway.com/plr/獲得了PL/R 8.3.0.14。我已將擴展文件夾放在/ usr/local/pgsql/share/contrib中,並將其放入該文件夾中。如何在山獅上安裝PL/R?使搜索錯誤的路徑?

將環境變量$ R_HOME和$ CUSTOM_COPT設置爲http://www.joeconway.com/web/guest/pl/r/-/wiki/Main/Installation_Mac,方法是將它們寫入.bash_profile,並將/library/frameworks/r.framework/resources/bin添加到我的路徑中,方法是寫入同一個文件。

已安裝XCode 4.6和命令行工具。標準C頭文件有多個副本,包括stdio.h,例如/usr/include/stdio.h。

下一步似乎是:

DiMac:plr duncan$ make  
Makefile:40: ../../src/Makefile.global: No such file or directory 
Makefile:41: /contrib/contrib-global.mk: No such file or directory 
make: *** No rule to make target `/contrib/contrib-global.mk'. Stop. 

那沒有工作,然後我嘗試:

DiMac:plr duncan$ make USE_PGXS=1 
gcc -Os -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -D_FILE_OFFSET_BITS=64 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -arch x86_64 -I"." -I"-I/library/frameworks/r.framework/resources/include" -I/library/frameworks/r.framework/resources/include -I. -I. -I/usr/local/pgsql-9.1/include/server -I/usr/local/pgsql-9.1/include/internal -I/usr/include/libxml2 -DPKGLIBDIR=\"/usr/local/pgsql-9.1/lib\" -DDLSUFFIX=\".so\" -DR_HOME_DEFAULT=\"/library/frameworks/r.framework/resources\" -c -o plr.o plr.c 
In file included from /usr/local/pgsql-9.1/include/server/postgres.h:47, 
       from plr.h:38, 
       from plr.c:33: 
/usr/local/pgsql-9.1/include/server/c.h:67:19: error: stdio.h: No such file or directory 
/usr/local/pgsql-9.1/include/server/c.h:68:20: error: stdlib.h: No such file or directory 
... 

,然後網頁更錯誤的。

在我看來,這使是找錯了地方標準的頭文件和周圍似乎標誌-isysroot告訴GCC尋找頭文件找不到them.From我的閱讀通過在/developer.../macosx10.6.sdk路徑之前加上正常的搜索路徑,我的機器上不存在這條路徑,我相信它是當前版本Xcode的標準。

所以,問題:

這是標誌由/ PLR內Makefile中莫名其妙定置,或將其設置在其他地方?無論哪種方式,我如何改變它以獲得使找到它需要的頭文件?如果改變它的確是正確的做法?

回答

0

我設法解決了我自己的問題。也許有人可以幫忙整理它?

make USE_PGXS=1格式化一系列標誌,然後用它計算的標誌調用gcc。所以,我複製並粘貼上面的行gcc...,然後將-isysroot之後的路徑更改爲找到標準頭文件的路徑。然後該命令正常運行,並編譯它被告知的文件。

我不得不這樣做幾次,每個文件要編譯一次,直到完整集合存在,然後用make install來代替重複練習。

經過很多次運行後,我最終在正確的位置找到了我需要的共享對象,然後按照Joe Conway的wiki中的說明繼續。

現在效果很好。知道如何永久停止/更改設置將是一件非常好的事情。

0

我使用的MacPorts的postgresql92 +蟒蛇+ perl的變種(早期編譯PostgreSQL的自己後),它在每一個最近的建立,我在三臺計算機上完成的完美無缺:http://iangow.wordpress.com/2013/06/26/install-plr-on-os-x-10-8-4-using-macports/(早期過程的描述在這裏:http://iangow.wordpress.com/2012/05/21/plr-on-os-x/)。

+0

謝謝。我會在某個時候嘗試這個,但是現在我已經有了Kychachaos PostgreSQL,因爲用他的PostGIS,PGRouting和相關的庫更容易。 – duncandoo 2013-12-06 23:32:10