我正在尝试在 Ubuntu 12.04 LTS 上为 Postgresql 9.1+ 编译 MySQL Foreign Data Wrapper并且在让它工作时遇到了一些麻烦。
到目前为止,我已经设法使用 git从 github 下载源代码,并根据说明将以下内容添加到我的/etc/profile
路径中,希望这个东西能够编译:
# ^ The rest of the file ^
# POSTGRESQL Environment Vars
export PGDATA="/usr/local/pgsql/data"
export PGHOST="localhost"
export PGPORT="5432"
export PGLOG="/var/log/pgsql"
export PATH=$PATH:/usr/lib/postgresql/9.1/bin:/opt/lampp/bin
然后我根据我运行的文档
$ make USE_PGXS=1
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -fpic -I/usr/include/mysql -I. -I. -I/usr/include/postgresql/9.1/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.5 -c -o mysql_fdw.o mysql_fdw.c
mysql_fdw.c: In function ‘mysqlPlanForeignScan’:
mysql_fdw.c:467:8: warning: ‘rows’ may be used uninitialized in this function [-Wuninitialized]
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -fpic -shared -o mysql_fdw.so mysql_fdw.o -L/usr/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -L/usr/lib/i386-linux-gnu -Wl,--as-needed -L/usr/lib/i386-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -ldl
除了警告之外,我认为它编译正常......接下来我尝试安装它,但我收到一些关于一些丢失文件的错误......
$ sudo make USE_PGPX=1 install
Makefile:35: ../../src/Makefile.global: No such file or directory
Makefile:36: /contrib/contrib-global.mk: No such file or directory
make: *** No rule to make target `/contrib/contrib-global.mk'. Stop.
我是否需要编译所有 Postgres 并将此扩展包含在源代码中?因为来源似乎指的是我所在目录之上的目录。
这是一个错字。