今天起床看到床头上的那本《PostgreSQL数据库内核分析》,发觉这书买了这么长时间,虽然大致看了一遍,可还没亲手实践。今天就花了点时间搭了个调试环境。

环境:Debian 7.0

#### 第一步:安装以来的工具和库 ####
sudo apt-get install build-essential gdb bison flex zlib1g-dev libreadline-dev

#### 第二步:创建用户 ####
adduser postgres

以下几步需要切换到postgres用户

#### 第三步:准备源代码 ####
git clone http://git.postgresql.org/git/postgresql.git $HOME/postgresql

#### 第四步:源代码配置、编译、安装 ####
cd postgresql

./configure --prefix=$HOME/postgresql --enable-debug --enable-cassert --enable-dtrace --enable-depend

make

make install

#### 第五步:启动数据库 ####
cd $HOME/postgresql/

mkdir data

cd bin

./initdb -D ../data/

./postgres -D ../data/

#### 连接数据库 ####
./psql

这样,整个环境就搭建起来的,接下来就可以使用gdb attach到postgres进程进行调试。PostgreSQL现在支持用户态的systemtap probe,所以可以先使用systemtap(或者dtrace)了解大体执行流程,然后在进行学习。

在Debian下编译Postgresql的更多相关文章

  1. debian下编译安装poco

    系统环境: debian版本:Linux localhost.localdomain 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC ...

  2. Debian下编译安装驱动模块

    在Linux下,我们常有需要自己来编译安装驱动模块的情况,例如要安装显卡驱动,要安装无线驱动,有的时候某个程序的安装使用与需要安装相应的驱动模块.Debian Linux下的生活本已十分简单,使用ap ...

  3. debian下编译openwrt固件

    参考文章:Ubuntu下编译OpenWRT固件 我买的路由器是RG100A-AA,采用了bcm63xx系列的芯片. 下载openwrt源码: svn co svn://svn.openwrt.org/ ...

  4. debian下编译libev库

    系统为Linux debian 2.6.32-5-686.这是裸系统,连xwindows都没有.帐户为root,不是的注意一下权限.这里想说明安装过程及出现的问题,故打印的信息较多,以供出现错误的读者 ...

  5. Ubuntu/Debian下编译PC版的ffmpeg

    1.安装git: 在命令行下执行 sudo apt-get install git-core 2.下载最新版本的ffmpeg: git clone git://source.ffmpeg.org/ff ...

  6. debian下编译安装redis并加入到systemd启动管理

    原文地址: http://blog.duhbb.com/2022/02/09/compile-and-install-redis-debian-and-add-to-systemd/ 欢迎访问我的个人 ...

  7. ubuntu下编译安装poco

    系统环境: ubuntu版本:Linux jfcai-VirtualBox 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 ...

  8. Mac OSX下编译安装PostgreSQL

    原先使用的是官方提供的安装包,可是安装包会创建postgre这个用户.在登陆界面看的有点不爽,搜索了半天居然没有找到怎样在osx下编译安装的教程,并且假设是依照官方文档的编译安装办法一定会让你崩溃,本 ...

  9. debian下为stm32f429i-discovery编译uboot、linux内核和根文件系统

    交叉编译器:arm-uclinuxeabi-2010q1 交叉编译器下载下来后解压,然后将其中bin文件夹路径加入到PATH变量中. 根据<debian下烧写stm32f429I discove ...

随机推荐

  1. Study Emgu VoteForUniqueness

    Recently i was studying Emgu, but find there is a bug in the VoteForUniqueness function in class Fea ...

  2. JavaScript高级程序设计笔记之面向对象

    说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,Jav ...

  3. asp.net TreeView控件绑定数据库显示信息

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  4. Echarts tooltip文字没有左对齐

    tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | ...

  5. [2015hdu多校联赛补题]hdu5299 Circles Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5299 题意: 在欧几里得平面上有n个圆,圆之间不会相交也不会相切,现在Alice和Bob玩游戏,两人轮 ...

  6. $使用dom4j可解析 返回&#x等字样的 html转义字符

    如果以GET或POST请求某个系统返回,带有 $#x 那很有可能是axis服务器返回的. <?xml version="1.0" encoding="UTF-8&q ...

  7. css小tip

    1. <input>标签的默认样式 当在页面中添加一个input标签,当点击输入框时会有一个外边框包裹着,可以使用 : input { outline: none} 去除点击时产生的外边框 ...

  8. [刘阳Java]_Java程序员的成长路线_第3讲

    按照Java从业人员的职位晋升来说,Java程序成长路线大致如下 Java程序员 JavaEE初级软件工程师 JavaEE中级软件工程师 JavaEE高级软件工程师 Java架构师 按照职业发展方向, ...

  9. Oracle常量

    Oracle是有常量的,而SqlServer是没有常量的 queryFrom constant ) := ' hello ';

  10. 从php脚本到浏览器,编码方式浅析

    今天简单看了一下php,服务器,浏览器如何设定编码 1.php 在php配置文件php.ini中,可以设置字符编码 ; PHP's default character set is set to em ...