Linux下用Eclipse编译、安装、运行、调试PostgreSQL源码

来源:互联网 发布:美国大使馆pm2.5 知乎 编辑:程序博客网 时间:2024/04/28 11:40

原文地址,转载请注明出处:http://blog.csdn.net/anzelin_ruc/article/details/8539411 ©安泽林

我的环境是:Ubuntu12.04  PostgreSQL9.2.2,其他环境没试过,个人认为如果系统是10.10之后的Ubuntu版本,PostgreSQ是L8.4之后的版本的话,编译和调试过程应该相差不大。


下载安装Eclipse


既然要在Eclipse中编译调试PostgreSQL的源代码,首先就要下载Eclipse,由于PostgreSQL是C语言开发的,因此要下载C/C++版本的Eclipse,(有人说要下载Helios版本的Eclipse,个人认为下载其他版本的都是可以的,我这里使用的是Juno版本的Eclipse),下载地址是www.eclipse.org。将下载的Eclipse解压安装到任何你希望的目录下,要使Eclipse能正确运行,需要JDK环境,这里不再赘述,如果不会安装JDK请查阅相关博客或者资料。


下载PostgreSQL


下载PostgreSQL源码(我下载的版本是9.2.2.其他版本没有试过),下载地址是www.postgresql.org。将下载好的PostgreSQL源码解压到Eclipse的工作目录即可。


编译、安装、运行、调试PostgreSQL


1安装依赖库

安装好Eclipse并下载好PostgreSQL后还并不能立即进行编译,在编译之前需要安装几个依赖库,分别是libreadline5-dev、zlib1g-dev、bison和flex,可以在终端下使用apt-get install 安装,也可以使用Ubuntu桌面环境的可视化窗口Unbuntu软件中心安装:如图所示





我是用apt-get install进行安装的,在安装过程中,可能遇到提示说找不到包的情况,例如在安装 libreadline5-dev时就提示找不到包的情况。

这时我们需要使用apt-get undate 跟新下源再重新安装,如果还是找不到,则可以使用它提示中给出的类似软件包代替安装即可(这里介绍的找不到应对安装包的情况,适用于任何Ubuntu下的安装情况,大家可以举一反三)。例如我们使用libreadline-gplv2-dev代替libreadline5-dev即可。

2.在终端对PostgreSQL进行配置

将目录切换到PostgreSQL源码的根目录,执行如下命令:

    cd postgresql-9.2.2    ./configure --prefix=$HOME/project --enable-depend --enable-cassert --enable-debug
其中--prefix指定PostgreSQL要安装的目录 (这个目录可以任意指定,但是建议使用绝对路径,这样在后续开发过程中不会出现因路径问题而产生的一系列莫名其妙的问题) --enable-depend、 --enable-cassert及 --enable-debug对于开发来说是必须的,尤其是 --enable-debug如果要调试和开发PostgreSQL源码必须进行指定。只有执行了这个命令之后才能正确编辑PostgreSQL。成功执行后如下图所示:


3.编译PostgreSQL

至此,我们可以正式开始编译PostgreSQL了,打开Eclipse将PostgreSQL源码导入Eclipse的工作目录,如图所示,选择File-->import



选择Existing Code as Makefile Project


然后点击Next,在下面的图示中选择PostgreSQL源码所在的目录,并为工程文件起一个项目名,并选择Linux GCC编译器



由于PostgreSQL是使用C编写的,所以也要把C++勾掉,只保留C,如上图所示,然后点击Finish,等待工程导入完毕,这里需要注意的是只有当工程完全导入之后才可以执行下面的操作,否可可能出现错误,(可以通过Eclipse右下角查看当前导入进度)。当工程完全导入之后没有出现错误,则表明PostgreSQL编译成功。

4.安装PostgreSQL

在导入的工程上右键选择Make Targets 然后选择Create,如下图所示:


在出现的窗口的Target name中输入install点击OK。


在Make Target选项卡中双击install进行安装:


此时Eclipse控制台中如下图所示:


表明PostgreSQL安装成功。

5.运行PostgreSQL

此时的PostgreSQL还不能真正使用,还需要进行初始化,在终端中执行如下操作:

 export PATH=$HOME/postgresql-9.2.2/bin:$PATH     export PGDATA=DemoDir     initdb
其中$HOME/postgresql-9.2.2是在上面的--prefix中指定的路径,PGDATA的路径可以任意(建议使用绝对路径),执行之后如下图所示:


此时在Eclipse中项目上右键选择Run As-->Run Configurations


双击C/C++ Application,在Main选项卡中点击Search Project选择Postgres点击Apply。


然后再切换到Arguments选项卡,输入参数:-D DemoDir(即上面命令中PGDATA指定的路径)。


点击Run,如果看到如下信息表示安装成功,此时数据库可以正式运行了。


6.创建一个数据库

我们可以使用如下命令创建一个数据库DemoDB:

  createdb DemoDB

然后再使用如下命令查看我们创建的数据库:

     psql -l 

最后我们还可以通过如下命令登录刚才创建的数据库进行操作:

   psql DemoDB

7.在Eclipse中调试PostgreSQL源代码

如果要调试PostgreSQL源码,首先保证安装了gdb,之后在工程上右键,选择Debug  As-->Local C/C++ Application,如下图所示:


在弹出的窗口中选择postgres,点击OK。出现如图所示界面:


这时我们就可以通过Eclipse调试PostgreSQL源码了(原文)。

下面是关于PostgreSQL的一些其他环境搭建方法:http://wiki.postgresql.org/wiki/PgkernalDebugEnvironmentSetup

原创粉丝点击