试图安装PostStat,一个用于向Postgres添加统计功能的库

时间:2012-04-22 18:19:50

标签: postgresql gcc statistics fortran debian

我正在尝试在debian squeeze上安装Poststat。 http://poststat.projects.postgresql.org 这个项目看起来不那么古老(2008),但我在安装它时遇到了一些困难。虽然它似乎是一个非常有趣的项目,谷歌是空的。我会在这里总结我的所作所为(postgres 8.4已安装):

apt-get install fort77 postgresql-server-dev-8.4 libblas-dev liblapack-dev gfortran

首先,正如在官方网站上所说,解压缩tar.gz并进入目录f77stat和'make'。

然后如果你安装了libpq-dev,在debian上挤压它安装它还拥有pg_config在/ usr / bin / wich报告虚假信息。 (见http://postgresql.1045698.n5.nabble.com/Bug-report-Wrong-version-in-pg-config-td2123792.html) 一个解决方案:

 mv /usr/bin/pg_config pg_config_bak
 ln -s /usr/lib/postgresql/8.4/bin/pg_config pg_config

这很重要,因为Poststat的makefile正在使用pg_config检索一些信息。

然后在主Makefile中有一行:

-lblas -llapack -lg2c

为blas和lapack安装这些包:

apt-get install libatlas-base-dev libatlas-dev libatlas-doc libatlas3gf-base

现在我的问题是关于g2c。根据谷歌,g2c已经过时,所以我编辑了Makefile并用-lgfortrant替换-lg2c

最后一步: 编译并导入我的数据库中的新statitics函数。

make && sudo make install
psql -f poststat.sql <database>

不幸的是,

psql:poststat.sql:18: ERROR: unable to load the library 
 « /usr/lib/postgresql/8.4/lib/poststat.so » : /usr/lib/postgresql/8.4/lib/poststat.so:
undefined symbol: s_stop

有什么想法? Fortran不是我的世界,而且debian中的包裹似乎有很多变化。我从-lg2c切换到-lgfortrant可能是错误的。事实上,删除这个包括最后会产生相同的错误。

2 个答案:

答案 0 :(得分:1)

libg2c属于g77(http://stackoverflow.com/questions/2406581/what-is-libg2c-library),它已过时且多年未得到支持。切换到更新的编译器不仅仅涉及替换此库。您还需要替换编译器,例如gfortran。您可能需要更改gfortran的默认编译器选项才能编译FORTRAN 77代码。我使用:-O2 -ffixed-form -ffixed-line-length-none。如果使用gfortran作为链接器,则不需要显式包含fortran运行时库。

答案 1 :(得分:0)

通过-lf2c更改-lg2c

最后添加到poststat.c

int MAIN__(){
   return (0);
}