Em geral, uma plataforma moderna compatível com o Unix deve ser capaz de executar o PostgreSQL. As plataformas que foram submetidas a testes específicos no momento do lançamento estão descritas em Plataformas com suporte abaixo.
São necessários os seguintes pacotes de software para a construção do PostgreSQL:
É necessário o GNU make
versão 3.81 ou mais recente; outros programas
make, ou versões mais antigas do
GNU make,
não irão funcionar.
(O GNU make
às vezes é instalado sob o nome gmake.)
Para testar o GNU make
deve-se executar:
make --version
Como alternativa, o PostgreSQL pode ser construído usando o Meson. Esta é a única opção para construir o PostgreSQL no Windows usando o Visual Studio. Para outras plataformas, o uso do Meson no momento é experimental. Se for escolhido usar o Meson, então não haverá necessidade do GNU make, mas outros requisitos abaixo ainda se aplicam.
A versão mínima requerida do Meson é a 0.54.
É necessário um compilador C ISO/ANSI (pelo menos em conformidade com o C99). Se recomenda as versões recentes do GCC, mas o PostgreSQL é conhecido por poder ser compilado usando uma ampla variedade de compiladores de diferentes fornecedores.
O tar é necessário para descompactar a distribuição do código-fonte, além do gzip ou do bzip2.
São necessários o Flex e o Bison. Outros programas lex e yacc não podem ser usados. O Bison precisa ser pelo menos da versão 2.3.
O Perl versão 5.14, ou posterior, é necessário durante o processo de construção e para executar alguns conjuntos de testes. (Este requisito é separado dos requisitos para construir o PL/Perl; veja abaixo.)
A biblioteca GNU Readline é usada por padrão.
Ela permite que o psql
(o interpretador SQL de linha de comando do
PostgreSQL) memorize cada comando
digitado, e permite que se use as teclas de seta para recuperar
e editar comandos anteriores.
Ela é muito útil e altamente recomendável.
Se não se quiser usá-la, deverá ser especificada a opção
--without-readline no arquivo
configure.
Como alternativa, geralmente pode-se usar a biblioteca
libedit licenciada sob a licença
BSD, originalmente desenvolvida no
NetBSD.
A biblioteca libedit é compatível com a
GNU Readline e é usada caso não seja
encontrada a libreadline,
ou se for usada a opção --with-libedit-preferred
como uma opção do configure.
Se estiver sendo usada uma distribuição
Linux baseada em pacotes,
deve-se estar ciente de que serão necessários os dois pacotes
readline e readline-devel,
se estes itens estiverem separados na distribuição usada.
A biblioteca de compressão
zlib
é usada por padrão.
Se não se quiser usá-la, deverá ser especificada a opção
--without-zlib no arquivo
configure.
Usar esta opção desativa o suporte para arquivos comprimidos em
pg_dump e pg_restore.
A biblioteca ICU
é usada por padrão.
Se não se quiser usá-la, deverá ser especificada a opção
--without-icu no arquivo
configure.
Usar esta opção desativa o suporte para recursos de ordenação da
ICU (veja Suporte a ordenação).
O suporte ao ICU requer a instalação do pacote ICU4C. A versão mínima exigida do ICU4C no momento é a 4.2.
Por padrão, será usado o pkg-config
para encontrar as opções de construção necessárias.
Isto tem suporte para a versão 4.6 e posteriores do
ICU4C.
Para versões mais antigas, ou se o
pkg-config não estiver disponível,
as variáveis ICU_CFLAGS e ICU_LIBS
podem ser especificadas para o configure,
como neste exemplo:
./configure ... ICU_CFLAGS='-I/algum/lugar/include' \
ICU_LIBS='-L/algum/lugar/lib -licui18n -licuuc -licudata'
(Se ICU4C estiver no caminho de procura
padrão do compilador, mesmo assim ainda será necessário especificar
cadeias de caracteres não vazias para evitar o uso de
pkg-config como, por exemplo,
ICU_CFLAGS=' '.)
Os pacotes seguintes são opcionais. Eles não são requeridos na configuração padrão, mas são necessários quando determinadas opções de construção estão ativas, conforme explicado abaixo:
Para construir a linguagem de programação servidor
PL/Perl é necessário realizar uma instalação
completa do Perl,
incluindo a biblioteca libperl e os arquivos
de cabeçalho.
A versão mínima requerida é a Perl 5.14.
Uma vez que PL/Perl será uma
biblioteca compartilhada, a
biblioteca libperl também deverá ser uma
biblioteca compartilhada na maioria das plataformas.
Ao que parece, este é o comportamento padrão nas versões recentes
do Perl, mas não era nas versões
anteriores e, em todo caso, é uma escolha de quem instalou o
Perl no ambiente usado.
O configure irá falhar se for selecionado
construir o PL/Perl, mas não for
possível encontrar uma biblioteca libperl
compartilhada.
Neste caso, será necessário reconstruir e instalar o
Perl manualmente para poder construir
o PL/Perl.
Durante o processo de configuração do Perl,
deve ser indicada a biblioteca compartilhada.
Se for pretendido fazer mais do que um uso ocasional do
PL/Perl, deve-se garantir que a
instalação do Perl tenha sido construída
com a opção usemultiplicity definida
(perl -V | grep usemultiplicity irá mostrar
se este foi o caso).
Para construir a linguagem de programação servidor PL/Python, será necessário instalar o Python com os arquivos de cabeçalho e o módulo sysconfig. A versão mínima com suporte é Python 3.6.8.
Uma vez que PL/Python será uma
biblioteca compartilhada, a biblioteca
libpython também deverá ser uma biblioteca
compartilhada na maioria das plataformas.
Este não é o caso em uma instalação padrão do
Python construída a partir do
código-fonte, mas em muitas distribuições de sistemas operacionais
está disponível uma biblioteca compartilhada.
O configure irá falhar se for selecionado
construir o PL/Python, mas não for
possível encontrar uma biblioteca libpython
compartilhada.
Isto pode significar que será necessário instalar pacotes
adicionais, ou reconstruir (parte da) a instalação do
Python para disponibilizar esta
biblioteca compartilhada.
Ao construir a partir do código-fonte, deve-se executar o
configure do Python
com a opção --enable-shared.
Para construir a linguagem procedural PL/Tcl,
há necessidade, obviamente, de uma instalação do
Tcl.
A versão mínima requerida é Tcl 8.4
(echo 'puts [info patchlevel]' | tclsh
mostra a versão. (N.T.)).
Para ativar o suporte ao idioma nativo (Native Language Support/NLS), ou seja, a capacidade de mostrar as mensagens de um programa em um idioma diferente do inglês, é necessária uma implementação da API do Gettext . Alguns sistemas operacionais já possuem esta funcionalidade integrada (por exemplo, Linux, NetBSD e Solaris), para outros sistemas operacionais, é necessário baixar um pacote adicional da pagina gettext. Se estiver sendo usada a implementação de Gettext das bibliotecas GNU C, também será necessário o pacote GNU Gettext para alguns programas utilitários. Para qualquer outra implementação, isto não será necessário.
Será necessário o OpenSSL,
se for desejado oferecer suporte a conexões de clientes encriptadas.
O OpenSSL também é necessário para a
geração de números aleatórios em plataformas que não possuem
/dev/urandom
(exceto o Windows).
A versão mínima requerida é a 1.1.1.
Além disso, a LibreSSL tem suporte usando a camada de compatibilidade do OpenSSL. A versão mínima requerida é a 3.4 (do OpenBSD versão 7.0).
Será necessário o MIT Kerberos (para GSSAPI), OpenLDAP, e/ou PAM, se for desejado oferecer suporte à autenticação usando estes serviços.
Será necessário o Curl para construir um módulo opcional que implementa o OAuth Device Authorization flow para aplicações clientes.
Será necessário o LZ4, se for desejado oferecer suporte à compressão de dados com este método; veja default_toast_compression e wal_compression.
Será necessário o Zstandard, se for desejado oferecer suporte à compressão de dados com este método; veja wal_compression. A versão mínima requerida é a 1.4.0.
Para construir a documentação do PostgreSQL, existe um conjunto separado de requisitos; veja Conjunto de ferramentas.
Se for necessário obter um pacote GNU, este poderá ser encontrado na página de espelho local do GNU (veja Espelhos de www.gnu.org para obter uma relação), ou em ftp://ftp.gnu.org/gnu/.