Pesquisa de site

Como instalar o PostgreSQL usando código-fonte no Linux


PostgreSQL, um sistema de gerenciamento de banco de dados relacional de código aberto, é amplamente conhecido por seus recursos robustos e extensibilidade. Embora muitas distribuições Linux forneçam PostgreSQL por meio de seus gerenciadores de pacotes, instalá-lo a partir da fonte permite maior personalização e controle.

Neste artigo, explicaremos como instalar o PostgreSQL 16 usando a instalação do código-fonte em sistemas Linux.

Para aqueles que procuram um método de instalação mais fácil do gerenciador de pacotes de distribuição, siga os guias abaixo:

Pré-requisitos

Antes de mergulhar no processo de instalação do PostgreSQL, certifique-se de que seu sistema atenda aos seguintes pré-requisitos:

  • Uma distribuição Linux (neste guia usaremos Debian para fins de demonstração).
  • Um sistema Linux com um usuário não root com privilégios sudo.
  • Ferramentas essenciais de desenvolvimento como GCC e Make estão instaladas.

1. Instale os pré-requisitos no Linux

Primeiro, instale ferramentas essenciais de desenvolvimento como GCC e Make usando o gerenciador de pacotes de distribuição conforme mostrado.

Em distribuições baseadas em RHEL, como CentOS, Fedora, Rocky Linux e Alma Linux:

sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel

Em distribuições baseadas em Debian, como Ubuntu e Linux Mint.

sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config

2. Baixe o código-fonte do PostgreSQL

Depois que os pré-requisitos necessários forem instalados, baixe o arquivo tar do código-fonte do site oficial do postgres usando o seguinte comando wget diretamente no sistema. No momento da escrita, a versão mais recente é PostgreSQL 16.1.

wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2

Em seguida, use o comando tar para extrair o arquivo tarball baixado. Um novo diretório chamado postgresql-16.1 será criado.

tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l

Exemplo de saída:

-rw-r--r--.  1 tecmint tecmint    365 Nov  7 03:34 aclocal.m4
drwxr-xr-x.  2 tecmint tecmint   4096 Nov  7 03:47 config
-rwxr-xr-x.  1 tecmint tecmint 584560 Nov  7 03:34 configure
-rw-r--r--.  1 tecmint tecmint  87292 Nov  7 03:34 configure.ac
drwxr-xr-x. 61 tecmint tecmint   4096 Nov  7 03:47 contrib
-rw-r--r--.  1 tecmint tecmint   1192 Nov  7 03:34 COPYRIGHT
drwxr-xr-x.  3 tecmint tecmint   4096 Nov  7 03:47 doc
-rw-r--r--.  1 tecmint tecmint   4288 Nov  7 03:34 GNUmakefile.in
-rw-r--r--.  1 tecmint tecmint    277 Nov  7 03:34 HISTORY
-rw-r--r--.  1 tecmint tecmint  64601 Nov  7 03:48 INSTALL
-rw-r--r--.  1 tecmint tecmint   1875 Nov  7 03:34 Makefile
-rw-r--r--.  1 tecmint tecmint 102017 Nov  7 03:47 meson.build
-rw-r--r--.  1 tecmint tecmint   6266 Nov  7 03:34 meson_options.txt
-rw-r--r--.  1 tecmint tecmint   1213 Nov  7 03:34 README
drwxr-xr-x. 16 tecmint tecmint   4096 Nov  7 03:48 src

3. Configure o PostgreSQL da fonte

Como postgres é um banco de dados de código aberto, ele pode ser construído a partir do código-fonte de acordo com as necessidades/requisitos de cada um. podemos personalizar o processo de criação e instalação fornecendo uma ou mais opções de linha de comando para vários recursos adicionais.

Use o comando a seguir para obter ajuda com várias opções e uso de configuração, conforme mostrado.

./configure --help

Agora execute o script configure, que verificará se há dependências em seu sistema e configurará a compilação de acordo.

./configure

4. Instale o PostgreSQL da fonte

Depois de configurado, use os comandos a seguir para criar e instalar o PostgreSQL a partir da origem.

make
sudo make install

5. Criando usuário Postgres

Agora crie um usuário e diretório postgres para ser usado como um diretório dados para inicializar o cluster de banco de dados. O proprietário deste diretório data deve ser um usuário postgres e as permissões devem ser 700 e também definir um caminho para os binários do postgresql para nossa facilidade.

sudo useradd postgres
sudo passwd postgres
sudo mkdir -p /pgdatabase/data
sudo chown -R postgres: /pgdatabase/data
sudo sh -c "echo 'export PATH=$PATH:/opt/PostgreSQL/bin' > /etc/profile.d/postgres.sh"
source /etc/profile.d/postgres.sh 

6. Inicializando o banco de dados Postgres

Agora inicialize o banco de dados usando o seguinte comando como um usuário postgres antes de usar qualquer comando postgres.

su postgres
initdb -D /pgdatabase/data/ -U postgres -W

Onde -D é o local deste cluster de banco de dados ou podemos dizer que é o diretório de dados onde queremos inicializar o cluster de banco de dados, -U para o nome do superusuário do banco de dados e -W para solicitação de senha para superusuário do banco de dados.

Para mais informações e opções, podemos consultar initdb --help.

7. Inicie o serviço PostgreSQL

Após inicializar o banco de dados, inicie o cluster de banco de dados ou, se precisar alterar a porta ou escutar o endereço do servidor, edite o arquivo /pgdatabase/data/postgresql.conf no diretório de dados do o servidor de banco de dados.

nano /pgdatabase/data/postgresql.conf

Agora, inicie o serviço PostgreSQL.

pg_ctl -D /pgdatabase/data/ start

Após iniciar o banco de dados, verifique o status do processo do servidor postgres usando os seguintes comandos ps e netstat.

ps -ef |grep -i postgres
netstat -apn |grep -i 51751

Podemos ver que o cluster de banco de dados está funcionando bem e os logs de inicialização podem ser encontrados no local especificado com a opção -l ao iniciar o cluster de banco de dados.

pg_ctl -D /pgdatabase/data/ -l logfile start

8. Conecte-se ao PostgreSQL

Agora conecte-se ao cluster de banco de dados e crie um banco de dados usando os comandos a seguir.

psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

Se você está procurando uma ferramenta gráfica chamada pgAdmin para gerenciar seu PostgreSQL, siga estes guias para instalar o pgAdmin em sua distribuição Linux.

Conclusão

Você instalou com sucesso o PostgreSQL da fonte em seu sistema Linux. Este processo fornece flexibilidade e controle sobre a instalação do PostgreSQL, permitindo adaptá-lo às suas necessidades específicas.