This very brief article
is a primer for those wanting to start developing on PostgreSQL:
Getting your Linux (Ubuntu / CentOS) machine ready for (PostgreSQL related) development
Ubuntu: sudo apt-get install build-essential git libxml2-dev libxslt-dev autotools-dev automake libreadline-dev zlib1g-dev bison flex libssl-dev libpq-devCentOS: sudo yum install git libxml2-devel libxslt-devel automake autoconf readline-devel zlib-devel bison flex gcc openssl-devel
Get Postgresql source (from Git)
- git clone git://git.postgresql.org/git/postgresql.git
- Would take some time (~1-15 minutes) but YMMV
- ./configure --prefix=/opt/postgres/master --enable-depend --enable-cassert
- make -j4
- sudo make install
- cd contrib
- make -j4
- sudo make install
- /opt/postgres/master/bin/initdb -D /opt/postgres/master/data
- /opt/postgres/master/bin/pg_ctl -D /opt/postgres/master/data -l logfile start
If you want to know more about hacking on PostgreSQL in general, you could always refer to the (very) detailed PostgreSQL Developer FAQ:
Happy Hacking :) !
git checkout REL9_6_STABLE && git pull && ./configure --prefix=/opt/postgres/96 --enable-depend && make -j`nproc` && sudo make install && cd contrib && make -j`nproc` && sudo make install && cd .. && sudo chown -R postgres:postgres /opt/postgres/96
git checkout REL_10_STABLE && git pull && ./configure --prefix=/opt/postgres/10 --enable-depend && make -j`nproc` && sudo make install && cd contrib && make -j`nproc` && sudo make install && cd .. && sudo chown -R postgres:postgres /opt/postgres/10
git checkout REL_11_STABLE && git pull && ./configure --prefix=/opt/postgres/11 --enable-depend && make -j`nproc` && sudo make install && cd contrib && make -j`nproc` && sudo make install && cd .. && sudo chown -R postgres:postgres /opt/postgres/11
git checkout REL_12_STABLE && git pull && ./configure --prefix=/opt/postgres/12 --enable-depend && make -j`nproc` && sudo make install && cd contrib && make -j`nproc` && sudo make install && cd .. && sudo chown -R postgres:postgres /opt/postgres/12
git checkout REL_13_STABLE && git pull && ./configure --prefix=/opt/postgres/13 --enable-depend && make -j`nproc` && sudo make install && cd contrib && make -j`nproc` && sudo make install && cd .. && sudo chown -R postgres:postgres /opt/postgres/13
git checkout REL_14_STABLE && git pull && ./configure --prefix=/opt/postgres/14 --enable-depend && make -j`nproc` && sudo make install && cd contrib && make -j`nproc` && sudo make install && cd .. && sudo chown -R postgres:postgres /opt/postgres/14
git checkout master && git pull && ./configure --prefix=/opt/postgres/master --enable-depend && make -j`nproc` && sudo make install && cd contrib && make -j`nproc` && sudo make install && cd .. && sudo chown -R postgres:postgres /opt/postgres/master