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.