Configuração:
O primeiro passo do procedimento de instalação é configurar a árvore de fontes do sistema a ser construído, e escolher as opções desejadas. Isto é feito executando o script configure. Para uma instalação padrão deve-se simplesmente executar:
./configure
Este script executa vários testes para obter valores para diversas variáveis dependentes do sistema e detectar comportamentos adversos do sistema operacional e, finalmente, cria vários arquivos na árvore de construção para registrar o que foi encontrado (O configure também pode ser executado em um diretório fora da árvore de fontes, se for desejado manter o diretório de construção em separado).
A configuração padrão constrói o servidor e os utilitários, assim como todos os aplicativos cliente e interfaces que requerem somente o compilador C. Todos os arquivos são instalados sob /usr/local/pgsql por padrão.
O processo de construção e instalação pode ser personalizado fornecendo uma ou mais das seguintes opções de linha de comando para o configure:
Instala todos os arquivos sob o diretório PREFIXO em vez de /usr/local/pgsql. Os arquivos são instalados em vários subdiretórios; nenhum arquivo é instalado diretamente no diretório PREFIXO.
Havendo necessidades especiais, os subdiretórios podem ser personalizados individualmente através das opções que se seguem. Entretanto, se forem deixados com o valor padrão, a instalação será movível, significando que o diretório poderá ser movido para outro local após a instalação (Os locais man e doc não são afetados por este procedimento).
Para as instalações movíveis, é necessário utilizar a opção --disable-rpath do configure. Também é necessário informar ao sistema operacional como encontrar as bibliotecas compartilhadas.
Os arquivos dependentes da arquitetura podem ser instalados sob um prefixo diferente (EXEC-PREFIXO) do que foi definido em PREFIXO, o que pode ser útil para compartilhar entre hospedeiros arquivos não dependentes de arquitetura. Se for omitido, então EXEC-PREFIXO é definido igual a PREFIXO, e tanto os arquivos dependentes da arquitetura quanto os que não dependem da arquitetura são instalados sob a mesma árvore, que provavelmente é o que se deseja.
Especifica o diretório dos programas executáveis. O padrão é EXEC-PREFIXO/bin, o que normalmente corresponde a /usr/local/pgsql/bin.
Define o diretório dos arquivos somente para leitura utilizados pelos programas instalados. O padrão é PREFIXO/share. Deve ser observado que isto não tem nada a ver com o local onde os arquivos do banco de dados serão colocados.
O diretório de vários arquivos de configuração. O padrão é PREFIXO/etc.
O local para instalar as bibliotecas e os módulos carregáveis dinamicamente. O padrão é EXEC-PREFIXO/lib.
O diretório para instalar os arquivos de cabeçalho das linguagens C e C++. O padrão é PREFIXO/include.
As páginas de manual (man pages) que acompanham o PostgreSQL são instaladas sob este diretório, nos respectivos subdiretórios manx. O padrão é PREFIXO/man.
Os arquivos da documentação, exceto as "man pages", são instalados neste diretório. O padrão é PREFIXO/doc. Se for especificada a opção --without-docdir, a documentação não será instalada por make install. Isto tem por finalidade atender scripts de empacotamento que possuem métodos especiais para instalar a documentação.
Nota: Tomou-se cuidado para tornar possível a instalação do PostgreSQL em locais de instalação compartilhados (tal como /usr/local/include) sem interferir com o espaço de nomes do restante do sistema. Primeiro, é anexada automaticamente a cadeia de caracteres "/postgresql" a datadir, sysconfdir e docdir, a menos que o nome do diretório inteiramente expandido contenha a cadeia de caracteres "postgres" ou "pgsql". Por exemplo, se for escolhido /usr/local como prefixo, a documentação será instalada em /usr/local/doc/postgresql, mas se o prefixo for /opt/postgres, então será instalada em /opt/postgres/doc. Os arquivos de cabeçalho C públicos das interfaces cliente são instalados em includedir e são livres de espaço de nomes. Os arquivos de cabeçalho internos e os arquivos de cabeçalho do servidor são instalados em diretórios privativos sob includedir. Deve ser vista a documentação de cada interface para obter informações sobre como encontrar seus respectivos arquivos de cabeçalho. Finalmente, também é criado um subdiretório privativo, se for apropriado, sob libdir, para os módulos carregáveis dinamicamente.
DIRETÓRIOS é uma lista de diretórios, separados por dois-pontos (:), a ser adicionada à lista usada pelo compilador para procurar por arquivos de cabeçalho. Havendo pacotes opcionais (como o Readline do GNU), instalados em locais diferente do padrão, esta opção deve ser utilizada e, provavelmente, também a opção --with-libraries correspondente.
Exemplo: --with-includes=/opt/gnu/include:/usr/sup/include.
DIRETÓRIOS é uma lista de diretórios, separados por dois-pontos (:), para procurar pelas bibliotecas. Provavelmente será necessário utilizar esta opção (e a opção --with-includes correspondente), se existirem pacotes instalados em locais que não são o local padrão.
Exemplo: --with-libraries=/opt/gnu/lib:/usr/sup/lib.
Ativa o Suporte ao Idioma Nativo (Native Language Support - NLS), ou seja, a capacidade de mostrar as mensagens do programa em um idioma diferente do Inglês. IDIOMAS é uma lista de códigos de idioma, separados por espaço, a serem suportados, como, por exemplo, --enable-nls='de fr' (A interseção entre a lista especificada e o conjunto de traduções disponíveis atualmente [1] é computada automaticamente). Se esta lista não for especificada, então são instaladas todas as traduções disponíveis. [2]
Para utilizar esta opção é necessária a implementação da API Gettext; veja acima.
Define NÚMERO como o número padrão da porta para o servidor e para os clientes. O valor padrão é 5432. O número da porta pode ser mudado posteriormente, mas se for especificado aqui então tanto o servidor quanto os clientes terão o mesmo padrão de compilação, o que pode ser bastante conveniente. Geralmente o único bom motivo para escolher um valor diferente do padrão é quando são executados vários servidores PostgreSQL na mesma máquina.
Construir a linguagem PL/Perl do lado servidor.
Construir a linguagem PL/Python do lado servidor.
Construir a linguagem PL/Tcl do lado servidor.
Tcl instala o arquivo tclConfig.sh, que contém as informações de configuração necessárias para construir os módulos que interfaceiam com o Tcl. Normalmente este arquivo é encontrado automaticamente em um local bem-conhecido, mas se for desejado utilizar uma versão diferente do Tcl, pode ser especificado o diretório onde esta versão se encontra.
Constrói o suporte para autenticação Kerberos. Pode ser utilizado o Kerberos versão 4 ou 5, mas não os dois. Em muitos sistemas operacionais o Kerberos não é instalado no local onde é procurado por padrão (por exemplo, /usr/include, /usr/lib), portanto é necessário utilizar as opções --with-includes e --with-libraries, além desta opção. Antes de prosseguir, o configure verifica os arquivos de cabeçalho e bibliotecas requeridos para ter certeza que a instalação do Kerberos está adequada.
O nome do principal do serviço Kerberos. O valor padrão é postgres. Provavelmente não existe razão para que seja mudado.
Construir o suporte às conexões SSL (criptografadas). Requer a instalação do pacote OpenSSL. Antes de prosseguir, o configure verifica os arquivos de cabeçalho e bibliotecas requeridos para ter certeza que a instalação do OpenSSL está adequada.
Constrói o suporte a PAM (Módulos de Autenticação Conectáveis/Pluggable Authentication Modules).
Impede a utilização da biblioteca Readline. Desativa o histórico e a edição de linha de comando no psql e, portanto, não é recomendado.
Constrói o suporte a Rendezvous. Requer suporte a Rendezvous pelo sistema operacional. Recomendado para o Mac OS X.
Permite a construção ser bem sucedida, mesmo que nesta plataforma o PostgreSQL não tenha suporte de spinlock [3] na CPU. A falta de suporte de spinlock ocasiona um desempenho pobre; portanto, esta opção deve ser utilizada somente se a construção interromper informando que não há suporte a spinlock nesta plataforma. Se esta opção for requerida para construir o PostgreSQL na plataforma sendo utilizada, por favor informe este problema aos desenvolvedores do PostgreSQL.
Construir as bibliotecas cliente thread-safe. [4] Isto permite às threads simultâneas nos programas libpq e ECPG controlarem com segurança seus tratadores de conexão privativos. Esta opção requer suporte a thread adequado por parte do sistema operacional.
Não permite o uso da biblioteca Zlib. Esta opção desativa o suporte a arquivos comprimidos por parte do pg_dump. Esta opção se destina apenas àqueles raros sistemas onde esta biblioteca não está disponível.
Compila todos os programas e bibliotecas com símbolos de depuração. Isto significa que os programas podem ser executados através do depurador para analisar problemas. Também aumenta consideravelmente o tamanho dos executáveis instalados e, em compiladores não-GCC, geralmente desativa também a otimização feita pelo compilador, tornando a execução mais lenta. Entretanto, ter os símbolos disponíveis é extremamente útil para lidar com qualquer problema que possa aparecer. Atualmente, esta opção é recomendada para instalações de produção somente se for utilizado o GCC. Mas esta opção deve estar sempre ativada ao se realizar trabalho de desenvolvimento, ou ao executar uma versão beta.
Ativa a verificação das asserções [5] no servidor, que testa muitas condições que "não podem acontecer". É muito útil para fins de desenvolvimento de código, mas os testes tornam a execução um pouco mais lenta. Porém, ter os testes ativos não aumenta a estabilidade do servidor necessariamente! As verificações de asserção não são categorizadas por severidade e, portanto, um erro que pode ser relativamente inofensivo, faz com que o servidor seja reiniciado se for disparada uma falha de asserção. Atualmente esta opção não é recomendada para uso em produção, mas deve ser utilizada ao se realizar trabalho de desenvolvimento ou ao executar uma versão beta.
Ativa o acompanhamento automático das dependências. Com esta opção, a construção é configurada de forma que todos os arquivos objeto afetados são reconstruídos quando qualquer arquivo de cabeçalho é modificado. É útil ao se realizar trabalho de desenvolvimento, mas é apenas um desperdício de trabalho quando o que se pretende é compilar uma vez e instalar. Atualmente esta opção funciona apenas quando é utilizado o GCC.
Se for preferido utilizar um compilador C diferente do escolhido pelo configure, pode ser definida a variável de ambiente CC com o programa preferido. Por padrão, o configure escolhe o gcc se este estiver disponível, senão o padrão da plataforma (geralmente cc). De forma semelhante, os sinalizadores de compilação podem ser modificados através da variável CFLAGS.
As variáveis de ambiente podem ser especificadas na linha de comando do configure como, por exemplo:
./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'
Construção:
Para iniciar a construção, deve ser executado
gmake
(Lembre-se de usar o make do GNU) A construção pode levar de 5 minutos a meia hora, dependendo da máquina. A última linha exibida deve ser:
All of PostgreSQL is successfully made. Ready to install.
Testes de regressão:
Se for desejado testar o servidor recém construído antes de fazer a instalação, podem ser executados os testes de regressão neste ponto. Os testes de regressão são um conjunto de testes que verificam se o PostgreSQL processa na máquina onde os testes são realizados, da maneira como os desenvolvedores esperam que processe. Deve ser executado
gmake check
(Não funciona sob o usuário root; deve ser executado sob um usuário sem privilégios) O Capítulo 26 contém informações detalhadas sobre como interpretar os resultados dos testes. Posteriormente, este teste poderá ser repetido a qualquer momento executando o mesmo comando.
Instalação dos arquivos:
Nota: Se estiver sendo feita a atualização de um sistema existente, e os novos arquivos vão ser instalados por cima dos antigos, então deve ser feita uma cópia de segurança dos dados e parado o servidor antigo agora, conforme explicado na Seção 14.4 acima.
Para instalar o PostgreSQL, deve ser executado:
gmake install
Este comando instala os arquivos nos diretórios especificados no passo 1. Deve haver certeza que se possui as permissões apropriadas para escrever nesta área. Normalmente, é necessário executar este passo sob o usuário root. Como alternativa, podem ser previamente criados os diretórios de destino e conseguido que sejam concedidas as permissões apropriadas.
Pode ser utilizado gmake install-strip, em vez de gmake install, para executar o strip [6] nos arquivos executáveis e bibliotecas durante a instalação. Isto reduz um pouco o espaço necessário. Se a construção tiver sido feita com suporte a depuração, fará com que o suporte a depuração seja removido e, portanto, somente deve ser usado quando a depuração não for mais necessária. O install-strip tenta executar um bom trabalho de redução de espaço, mas não possui um conhecimento perfeito de como retirar todo byte desnecessário de um arquivo executável, portanto, se for desejado reduzir o espaço ocupado em disco ao máximo, deverá ser realizado um trabalho manual.
A instalação padrão disponibiliza todos os arquivos de cabeçalho necessários para desenvolvimento de aplicativos cliente, assim como desenvolvimento de programas para o lado servidor, como funções personalizadas ou tipos de dado escritos em C (Antes do PostgreSQL 8.0, era necessário executar o comando a parte gmake install-all-headers para desenvolvimento de programas para o lado servidor, mas este passo foi incorporado à instalação padrão).
Instalação somente do lado cliente: Se for desejado instalar apenas os aplicativos cliente e as bibliotecas de interface, então podem ser utilizados os seguintes comandos:
gmake -C src/bin install gmake -C src/include install gmake -C src/interfaces install gmake -C doc install
Registro de eventos no Windows: No Windows, deve ser executado o seguinte comando, após a instalação, para registrar a biblioteca que envia mensagens para o EventLog:
regsvr32 pgsql_library_directory/pgevent.dll
Esta biblioteca cria as entradas no registro de eventos vistas através do visualizador de eventos.
Desinstalação: Para desfazer a instalação deve ser usado o comando gmake uninstall. Entretanto, não serão removidos os diretórios criados.
Limpeza: Após a instalação, pode ser liberado espaço removendo da árvore de fontes os arquivos construídos, usando o comando gmake clean. São mantidos os arquivos produzidos pelo programa configure e, portanto, tudo pode ser reconstruído posteriormente pelo gmake. Para retornar a árvore de fontes ao estado em que foi distribuída, deve ser executado gmake distclean. Para se fazer construções para várias plataformas a partir da mesma árvore de fontes, deve ser executado gmake distclean e feita uma reconfiguração para cada construção (Como alternativa, pode ser usada uma árvore de construção separada para cada plataforma, de forma que a árvore de fontes permaneça sem modificações).
Se for feita uma construção e depois descoberto que as opções do configure estavam erradas, ou se for modificado algo que o configure investiga (por exemplo, atualizações de software), então é uma boa idéia executar gmake distclean antes de reconfigurar e reconstruir. Se isto não for feito, as modificações feitas nas escolhas de configuração poderão não se propagar para todos os lugares onde há necessidade.
[1] |
Traduções disponíveis atualmente — AVAIL_LANGUAGES := af cs de es fr hr hu it ko nb pt_BR ro ru sk sl sv tr zh_CN zh_TW (N. do T.) |
[2] |
A configuração padrão é sem suporte ao idioma nativo, portanto, se este parâmetro não for especificado, não será possível ver as mensagens em português (N. do T.). |
[3] |
spinlock — em engenharia de software é um bloqueio onde cada fluxo de execução (thread) simplesmente aguarda em um laço (gira/spins) verificando repetidamente até que o bloqueio fique disponível. Free Online Dictionary and Thesaurus (N. do T.) |
[4] |
thread-safe — (programação) A descrição de um código que é reentrante ou protegido em várias execuções simultâneas por alguma forma de exclusão mútua. FOLDOC - Free On-Line Dictionary of Computing (N. do T.) |
[5] |
asserção — do Lat. assertione — proposição que se apresenta como verdadeira. PRIBERAM - Língua Portuguesa On-Line. (N. do T.) |
[6] |
strip — (comando do Unix) O comando strip remove a tabela de símbolos, informação de depuração e informação de número de linha de arquivos objeto ELF. Após ter sido realizado o processo de strip, não haverá nenhum acesso de depuração simbólica para este arquivo; normalmente este comando só é executado em módulos de produção que já foram depurados e testados. Man Page (N. do T.) |