The next step is to execute
configure. This is a shell script which will run, to quote documentation, a number of tests to determine several system dependent variables. It will also create many files that will be used during compilation. We can get an idea about the options by executing the following command:
./configure --help > /tmp/config.txt
vi /tmp/config.txt and verify that there are over 80 options that can be used. These options can be broadly grouped into the following categories:
Related to choosing directories. If architecture-independent files go to
/usr/local/pgsqlor elsewhere, where should the binaries go, where should the documentation files go, and so on.
Related to choosing nondefault settings for parameters such as blocksize, port, and segment size. Changing default setting for parameters such as blocksize can have significant impact on performance. So, we need to be cautious here. Changing the default port is a good idea from a security perspective. It can be changed later in the configuration file also.
Related to enabling options, such as OpenSSL support, SELinux support, and LDAP support.
Related to building modules for several languages (Perl, Python, and PL/TcL).
Related to disabling a few features (such as
Pay attention to the
--prefixoption. If you would like to do a clean upgrade without causing disruption to the existing environment, provide a directory in which the installation files should be written to. This way, each version will be in a different directory. For example:
When we run
./configure, it's likely that we get an output like this:
The output tells us that
readline is not available. However, if we list installation packages, it is very much there. The reason is that
readline-devel is missing. It contains files needed by programs (such as
psql) that use the
readline library. This can be installed using the following command:
yum install readline-devel.x86_64
It also installs
ncurses-devel. You will have to execute the command using
root. You might also get a similar error for
zlib itself is already installed. Again, the corrective action is to install
devel, in this case,
Once this is done, we can run
configure again and it should go through without any issues, as shown in the following screenshot:
The two files are now created in the current directory in addition to a few more files in subdirectories. One is
config.status and the other (
config.log. config.status) is a bash script that can be executed to recreate the configuration. The
config.log file can be reviewed to understand the various options used, variables, and errors, if any. It's possible that the
config.log file has a few errors that are marked fatal, and the compilation process can still be completed without any issue.