14.5. Procedimento de instalação

  1. 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 todas as aplicações 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:
    --prefix=PREFIXO
    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 seguintes opções.
    --exec-prefix=EXEC-PREFIXO
    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.
    --bindir=DIRETÓRIO
    Especifica o diretório dos programas executáveis. O padrão é EXEC-PREFIXO/bin, o que normalmente corresponde a /usr/local/pgsql/bin.
    --datadir=DIRETÓRIO
    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.
    --sysconfdir=DIRETÓRIO
    O diretório de vários arquivos de configuração. O padrão é PREFIXO/etc.
    --libdir=DIRETÓRIO
    O local para instalar as bibliotecas e os módulos carregáveis dinamicamente. O padrão é EXEC-PREFIXO/lib.
    --includedir=DIRETÓRIO
    O diretório para instalar os arquivos de cabeçalho das linguagens C e C++. O padrão é PREFIXO/include.
    --docdir=DIRETÓRIO
    Os arquivos da documentação, exceto as "man pages", são instalados neste diretório. O padrão é PREFIXO/doc.
    --mandir=DIRETÓRIO
    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.
    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.
    --with-includes=DIRETÓRIOS
    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.
    --with-libraries=DIRETÓRIOS
    DIRETÓRIOS é uma lista de diretórios, separados por dois-pontos (:), para procurar pelas bibliotecas. Havendo pacotes instalados em locais diferente do padrão, esta opção deve ser utilizada (e a --with-includes correspondente). Exemplo: --with-libraries=/opt/gnu/lib:/usr/sup/lib.
    --enable-nls[=IDIOMAS]
    Habilita 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 localização, 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. Para utilizar esta opção é necessária a implementação da API Gettext; veja acima.
    --with-pgport=NÚMERO
    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.
    --with-perl
    Construir a linguagem PL/Perl do lado servidor.
    --with-python
    Construir a linguagem PL/Python do lado servidor.
    --with-tcl
    Construir os componentes que requerem Tcl/Tk, que são libpgtcl, pgtclsh, pgtksh e PL/Tcl. Veja abaixo --without-tk.
    --without-tk
    Se for especificado --with-tcl e esta opção, então o programa que necessitar de Tk (pgtksh) será excluído.
    --with-tclconfig=DIRETÓRIO
    --with-tkconfig=DIRETÓRIO
    O Tcl/Tk instala os arquivos tclConfig.sh e tkConfig.sh, que contêm informações de configuração necessárias para construir os módulos que fazem interface com Tcl e Tk. Normalmente estes arquivos são encontrados automaticamente nos seus locais bem conhecidos, mas se for desejado utilizar uma versão diferente do Tcl ou do Tk, pode ser especificado o diretório onde devem ser encontrados.
    --with-java
    Constrói o driver de JDBC e os pacotes Java associados.
    --with-krb4[=DIRETÓRIO]
    --with-krb5[=DIRETÓRIO]
    Constrói o suporte para autenticação Kerberos. Pode ser utilizado o Kerberos versão 4 ou 5, mas não os dois. O argumento DIRETÓRIO especifica o diretório raiz da instalação do Kerberos; É assumido como padrão /usr/athena. Se os arquivos de cabeçalho e bibliotecas relevantes não se encontram sob um diretório ancestral comum, então devem ser utilizadas as opções --with-includes e --with-libraries além desta opção. Se, por outro lado, os arquivos necessários estão em um local procurado por padrão (por exemplo, /usr/lib), então este argumento não é necessário. 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.
    --with-krb-srvnam=NOME
    O nome do principal do serviço Kerberos. O valor padrão é postgres. Provavelmente não existe razão para que seja mudado.
    --with-openssl[=DIRETÓRIO]
    Construir o suporte às conexões SSL (criptografadas). Requer a instalação do pacote OpenSSL. O argumento DIRETÓRIO especifica o diretório raiz da instalação do OpenSSL; o padrão é /usr/local/ssl. 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.
    --with-pam
    Constrói o suporte a PAM (Módulos de Autenticação Conectáveis/Pluggable Authentication Modules).
    --without-readline
    Impede a utilização da biblioteca Readline. Desabilita o histórico e a edição de linha de comando no psql e, portanto, não é recomendado.
    --with-rendezvous
    Constrói o suporte a Rendezvous.
    --disable-spinlocks
    Permite a construção ser bem sucedida, mesmo que nesta plataforma o PostgreSQL não tenha suporte de spinlock [2] 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.
    --enable-thread-safety
    Construir as bibliotecas cliente thread-safe. [3] Isto permite às threads simultâneas nos programas libpq e ECPG controlarem com segurança seus tratadores de conexão privativos.
    --without-zlib
    Não permite o uso da biblioteca Zlib. Esta opção desabilita 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.
    --enable-debug
    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 desabilita 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 habilitada ao se realizar trabalho de desenvolvimento, ou ao executar uma versão beta.
    --enable-cassert
    Habilita a verificação das asserções [4] 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.
    --enable-depend
    Habilita seguir automaticamente as 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'
    
  2. 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.
    
  3. 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.
  4. 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 [5] 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 apenas os arquivos de cabeçalho necessários para o desenvolvimento de aplicação cliente. Havendo intenção de fazer desenvolvimento de programas para o lado servidor (como funções personalizadas ou tipos de dado escritos em C), então pode-se querer instalar toda a árvore de inclusão do PostgreSQL no diretório de inclusão de destino. Para fazer isto deve ser executado:
    gmake install-all-headers
    
    Este procedimento adiciona um ou dois megabytes à instalação padrão, sendo útil somente quando não se planeja manter toda a árvore de fontes para referência (Se for mantida, então basta usar o diretório de inclusão do fonte ao construir programas do lado servidor).
    Instalação somente do lado cliente: Se for desejado instalar apenas as aplicações 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
    

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.

Se for feita uma construção e depois descoberto que as opções do configure estavam erradas, ou se for modificada alguma coisa 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 podem não se propagar para todos os lugares onde há necessidade.

Notas

[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]

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.)

[3]

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.)

[4]

asserção — do Lat. assertione — proposição que se apresenta como verdadeira. PRIBERAM - Língua Portuguesa On-Line . (N. do T.)

[5]

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.)

SourceForge.net Logo