0

我正在尝试在 debian 挤压上安装 Poststat。 http://poststat.projects.postgresql.org 这个项目看起来不太老(2008 年),但我在安装它时遇到了一些困难。虽然看起来是个很有意思的项目,但是google是空的。我会在这里尝试总结一下我所做的(安装了postgres 8.4):

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

首先,按照官网上的说法,解压tar.gz,进入f77stat目录,然后'make'。

然后,如果您安装了 libpq-dev,则在 debian 挤压上它还会在 /usr/bin/ 中安装它自己的 pg_config,它会报告错误信息。(参见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 并将 -lg2c 替换为 -lgfortrant

最后一步:在我的数据库中编译和导入新的统计函数。

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 中似乎对 fortran 发生了很大变化。我从 -lg2c 切换到 -lgfortrant 可能是错误的。实际上,删除此包含最终会产生相同的错误。

4

2 回答 2

1

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

于 2012-04-22T19:34:18.520 回答
0

将 -lg2c 更改为 -lf2c

添加到 poststat.c ,最后

int MAIN__(){
   return (0);
}
于 2012-04-22T22:18:16.523 回答