【问题标题】:Trying to install PostStat, a library to add statistics function into Postgres尝试安装 PostStat,一个将统计功能添加到 Postgres 中的库
【发布时间】:2012-04-22 18:19:49
【问题描述】:

我正在尝试在 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 可能是错误的。事实上,删除这个包含最终会产生同样的错误。

【问题讨论】:

    标签: postgresql gcc statistics fortran debian


    【解决方案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 运行时库。

    【讨论】:

      【解决方案2】:

      将 -lg2c 更改为 -lf2c

      最后添加到 poststat.c

      int MAIN__(){
         return (0);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-26
        • 2022-08-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多