Eu compilei e instalei com sucesso a versão mais recente do PostgreSQL (17.4) no Ubuntu ARM32.
Os comandos neste artigo vêm principalmente da documentação oficial do PostgreSQL. Testei na prática todos os comandos deste artigo.
Pode ver aqui os sistemas onde a instalação é bem-sucedida PostgreSQL Build Farm
Compilar e instalar o PostgreSQL 17.4
1. Criar e entrar no diretório
mkdir postgresql && cd postgresql
mkdir postgresql
: Cria um novo diretório chamadopostgresql
.cd postgresql
: Entra no diretóriopostgresql
recém-criado.
2. Descarregar o código fonte do PostgreSQL
wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
wget
: Descarrega o ficheiro do URL especificado.https://..../postgresql-17.4.tar.bz2
: Link de descarregamento do pacote de código fonte comprimido da versão 17.4 do PostgreSQL. Se o link estiver inativo, pode procurar um novo link você mesmo.
3. Descomprimir o pacote de código fonte
tar xjf postgresql-17.4.tar.bz2
-
tar
: Usado para processar ficheiros comprimidos.tar
. -
xjf
: Opções para extrair ficheirostar
:x
: Extrair ficheiros.j
: Usar o formato de compressão bzip2 (.bz2).f
: Especifica o ficheiro a ser extraído.
-
postgresql-17.4.tar.bz2
: Nome do ficheiro a ser extraído.
4. Entrar no diretório do código fonte extraído
cd postgresql-17.4
- Entrar no diretório do código fonte do PostgreSQL 17.4 extraído.
5. Instalar os pacotes de dependência
sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
sudo apt install
: Usar o gerenciador de pacotesapt
para instalar pacotes.libssl-dev
,libsystemd-dev
,libxml2-dev
,libreadline-dev
: Instalar as bibliotecas de desenvolvimento necessárias para compilar o PostgreSQL, que são as bibliotecas SSL, Systemd, XML e Readline, respetivamente.
6. Configurar as opções de compilação
./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
./configure
: Preparar o ambiente de compilação do PostgreSQL.--prefix=/usr/local/pgsql
: Especificar o diretório de instalação do PostgreSQL como/usr/local/pgsql
.--with-openssl
: Ativar o suporte OpenSSL.--with-libxml
: Ativar o suporte XML.--with-systemd
: Ativar o suporte Systemd.
7. Compilar o código fonte
make -j$(nproc)
make
: Iniciar o processo de compilação.-j$(nproc)
: Usarnproc
(o número de núcleos de CPU do sistema) para executar tarefas de compilação em paralelo, acelerando o processo de compilação.
8. Instalar o PostgreSQL
sudo make install
sudo make install
: Usarsudo
para executar a instalação com permissões de administrador,make install
instala os ficheiros compilados no sistema, instalando-os no diretório/usr/local/pgsql
especificado no comando./configure
anterior.
9. Configurar as variáveis de ambiente
Usar um editor de texto 1. Editar o ficheiro /etc/profile
:
sudo nano /etc/profile
sudo
: Indica que o comando é executado com permissões de superutilizador (administrador). A modificação do ficheiro/etc/profile
requer permissões de administrador.nano
: Este é um editor de texto frequentemente usado em ambientes de terminal para editar ficheiros./etc/profile
: Este é um ficheiro de configuração global usado para definir variáveis de ambiente em todo o sistema e configurações de inicialização. Todos os utilizadores executam as configurações neste ficheiro ao iniciar sessão no sistema.
- Adicionar variáveis de ambiente:
export PATH=/usr/local/pgsql/bin:$PATH
export
: Usado para definir uma variável de ambiente para que esteja disponível no processo atual e nos subprocessos.PATH
: Esta é uma variável de ambiente que contém uma lista de diretórios de ficheiros executáveis no sistema. Ao executar um comando, o sistema procura o comando com base nos diretórios listados na variávelPATH
./usr/local/pgsql/bin
: Este é o diretório de ficheiros executáveis do banco de dados PostgreSQL, adicioná-lo significa que os ficheiros executáveis neste diretório (comopsql
) serão reconhecidos pelo sistema.:$PATH
: Aqui,$PATH
representa o caminho existente, adicionando o novo caminho/usr/local/pgsql/bin
antes doPATH
original. Desta forma, o sistema verifica primeiro o novo diretório e, em seguida, verifica o caminho original.
Esta linha de comandos serve para adicionar o diretório de ficheiros executáveis do PostgreSQL à variável de ambiente do sistema PATH
, garantindo que os comandos PostgreSQL (como psql
) podem ser executados diretamente na linha de comandos sem fornecer o caminho completo. As configurações modificadas entrarão em vigor para todos os utilizadores
Inicializar a base de dados PostgreSQL
Estes comandos são usados principalmente para configurar manualmente o servidor de base de dados PostgreSQL num servidor Linux, incluindo a criação de um utilizador do sistema PostgreSQL, a inicialização da base de dados, o início do serviço de base de dados e o seu registo como um serviço systemd
para iniciar automaticamente na inicialização.
1. Criar utilizador PostgreSQL
sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
sudo
: Executar comandos com permissões de superutilizador.useradd
: Criar um novo utilizador.-m
: Criar o diretório home do utilizador.-U
: Criar também um grupo de utilizadores com o mesmo nome que o nome de utilizador.-r
: Criar um utilizador do sistema (o UID do utilizador do sistema é inferior a 1000 e não é usado para iniciar sessão).-d /var/lib/postgresql
: Especificar o diretório home como/var/lib/postgresql
.-s /bin/bash
: Especificar o shell como/bin/bash
.postgres
: Nome de utilizador.
Este comando cria um utilizador do sistema dedicado ao PostgreSQL, postgres
.
2. Alterar o proprietário do diretório PostgreSQL
sudo chown postgres /usr/local/pgsql
chown postgres /usr/local/pgsql
: Altera o proprietário do diretório/usr/local/pgsql
para o utilizadorpostgres
, permitindo-lhe ler e escrever no diretório.
3. Definir a palavra-passe do utilizador PostgreSQL
sudo passwd postgres
passwd postgres
: Modifica a palavra-passe do utilizadorpostgres
.
4. Mudar para o utilizador PostgreSQL
su postgres
su postgres
: Mudar para o utilizadorpostgres
para usar os comandos relacionados com o PostgreSQL.
5. Inicializar a base de dados
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
: Inicializa o armazenamento da base de dados no diretório/usr/local/pgsql/data
.
6. Iniciar a base de dados PostgreSQL
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
: Inicia a base de dados com o processopostgres
, com os dados armazenados no diretório/usr/local/pgsql/data
.
7. Noutra sessão de terminal, entrar na base de dados
su postgres
/usr/local/pgsql/bin/psql
psql
: Ferramenta interativa de linha de comandos do PostgreSQL para entrar no shell da base de dados.
8. Definir a palavra-passe do utilizador da base de dados
ALTER USER postgres WITH PASSWORD 'your_new_password';
- Modifica a palavra-passe do utilizador da base de dados
postgres
.
9. Criar um serviço systemd
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
: Edita o ficheiro de configuraçãosystemd
para permitir que o PostgreSQL seja executado como um serviço.
Conteúdo do ficheiro de configuração:
[Unit]
Description=PostgreSQL server
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
Description=PostgreSQL server
: Descreve que este serviço é o servidor PostgreSQL.After=network-online.target
: Espera que a ligação de rede esteja disponível antes de iniciar o PostgreSQL.User=postgres
: É executado como o utilizadorpostgres
.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Inicia o servidor PostgreSQL.ExecReload=/bin/kill -HUP $MAINPID
: Envia o sinalHUP
ao recarregar.KillMode=mixed
: Modo de terminação mista.KillSignal=SIGINT
: Sinal para terminar o processo PostgreSQL.TimeoutSec=infinity
: Tempo limite definido como infinito.
10. Ativar o serviço systemd
sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
daemon-reload
: Recarrega a configuraçãosystemd
para que o novopostgresql.service
entre em vigor.start postgresql
: Inicia o serviço PostgreSQL.status postgresql
: Verifica o estado de execução do PostgreSQL.enable postgresql
: Inicia automaticamente o PostgreSQL na inicialização.
O objetivo destes comandos é:
- Criar um utilizador
postgres
dedicado à execução do PostgreSQL. - Inicializar o diretório de armazenamento da base de dados.
- Iniciar a base de dados PostgreSQL e entrar na linha de comandos interativa
psql
. - Configurar
systemd
para executar o PostgreSQL como um serviço do sistema e suportar a execução automática no arranque.
Desta forma, o servidor PostgreSQL pode ser executado normalmente e pode ser iniciado automaticamente quando o sistema é iniciado.
Referências
PostgreSQL: Documentação: 17: Capítulo 17. Instalação a partir do código fonte
Outras versões desta página web
Este artigo tem versões em vários idiomas.
Se quiser deixar um comentário, visite a seguinte página web:
Estas páginas web suportam apenas a navegação e não suportam comentários ou mensagens, mas oferecem mais opções de idioma e tempos de carregamento mais rápidos:
ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO
Este artigo foi traduzido de Chinese (Simplified) para Portuguese por IA.