Como instalar o PostgreSQL e pgAdmin no Linux

Tutorial de instalação do SGBD PostgreSQL e a ferramenta de administração pgAdmin 4. No final é dado dicas caso esteja utilizando PHP.

Estou usando Ubuntu, qual a minha versão?

Se você estiver usando o Ubuntu ou uma distribuição baseada nele, um desses comandos pode te ajudar a descobrir:

lsb_release -cs
cat /etc/*-release

No resultado do comando acima, procure por ‘VERSION_CODENAME’.

Instalando o PostgreSQL

Preferencialmente siga a documentação de instalação do PostgreSQL. Caso tenha algum problema execute o comando abaixo:

sudo apt -y install postgresql

Estou com problema no arquivo /etc/apt/sources.list.d/pgdg.list

Algumas pessoas tem problema ao criar o arquivo /etc/apt/sources.list.d/pgdg.list utilizando o script da documentação do Postgres. Se for o seu caso, faça isso:

  • Descubra qual a sua versão utilizando a dica do tópico acima.
  • O comando abaixo ira criar o arquivo /etc/apt/sources.list.d/pgdg.list. Coloque no comando abaixo a sua versão:
sudo echo "deb http://apt.postgresql.org/pub/repos/apt suaVersao-pgdg main" > /etc/apt/sources.list.d/pgdg.list

Como remover o PostgreSQL?

Para remover totalmente o PostgreSQL siga esses passos:

sudo apt --purge remove postgresql\*

sudo rm -rf /etc/postgresql/
sudo rm -rf /etc/postgresql-common/
sudo rm -rf /var/lib/postgresql/
sudo userdel -r postgres
sudo groupdel postgres

Usando PHP?

Se você estiver usando php, instale também a extensão PDO do postgres

sudo apt install php8.1-pgsql

Instalando o pgAdmin 4

Preferencialmente siga a documentação de instalação do pgAdmin 4. Caso tenha algum problema execute o comando abaixo:

sudo apt install pgadmin4

Criando o banco de dados pelo terminal

Primeiro precisamos acessar o prompt de comando do usuário postgres. Este usuário foi criado automaticamente na instalação do PostgresSQL.

sudo su - postgres

Para criar o banco de dados:

createdb bancoTeste

Vamos manipular o banco utilizando a ferramenta psql:

psql -d bancoTeste

Vamos atribuindo uma nova senha para o usuário postgres:

\password postgres

Ele vai pedir que você digite a nova senha duas vezes.

O psql é uma ferramenta muito útil. Esse post é um bom começo: PostgreSQL: Basic psql Commands

Acessando o pgAdmin 4

– Você pode pesquisar no menu de aplicativos do seu S.O por: pgadmin4

– Ou iniciando pelo terminal usando o comando: pgadmin4

– A partir do usuário postgres você consegue criar e logar nos bancos.

Referências

Resolvendo problema do Packet Tracer 7.1.1 no Linux Mint 18 e 19

Eu estava com muita dificuldade para fazer o Packet Tracer funcionar no meu Linux Mint. Depois de pesquisar bastante e rodar por vários sites, achei uma resposta dada no Ask Ubuntu e no Tech Otaku que me ajudaram a resolver o problema.

Vou aproveitar esse post para mostrar como resolvi meus problemas com o Packet Tracer no Linux Mint 18 e 19 (Sarah e Tara).

CONTEXTO

No Linux Mint 18 eu tinha problema com essa versão do Packet Tracer. Quando executava o comando # packettracer aparecia uma mensagem dizendo que o programa estava sendo carregado, mas nunca abria. Para resolver esse problema, bastava instalar o pacote que professor Samuel Henrique Bucke Brito indica nos comentários dessa publicação.

Já no Linux Mint 19 eu fiz o mesmo procedimento descrito anteriormente e mesmo assim não tive sucesso. Outros problemas surgiram, que só foram resolvidos seguindo outros tutoriais, principalmente a resposta dada pelo Lucas Almeida a essa pergunta.

MEU PROBLEMA

No Mint 19 o Packet Tracer chega abrir mas quando tento expandir a janela, o programa fica totalmente disforme.

AMBIENTE

S.O: Linux Mint 19 Cinnamon (Tara)

Kernel do Linux: 4.15.0-33-generic

Programa: Cisco Packet Tracer 7.1.1

RESOLVENDO O PROBLEMA

NO LINUX MINT 18 (SARAH)

Depois de instalar o Packet Tracer no caminho padrão:

/opt/pt/

tenho que editar o arquivo:

/etc/apt/sources.list

adicionando a linha:

deb http://security.ubuntu.com/ubuntu trusty-security main

Logo depois executar os comandos:

sudo apt-get update
sudo apt-get install libicu52

ou

wget http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu52_52.1-3ubuntu0.8_amd64.deb
sudo dpkg -i libicu52_52.1-3ubuntu0.8_amd64.deb

E por último reiniciar meu computador.

NO LINUX MINT 19(TARA)

Tenho que fazer o procedimento acima e também Instalar o Qt libraries:

sudo apt-get install libqt5webkit5 libqt5multimediawidgets5 libqt5svg5 libqt5script5 libqt5scripttools5 libqt5sql5

Instalar o libpng12:

wget http://ftp.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb
sudo dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb

E por último reiniciar meu computador.

REFERÊNCIAS:

 

Ferramentas básicas utilizadas no Linux

Essa é a lista das ferramentas que mais utilizo no dia a dia para trabalhar com Linux. Ela será atualizada com o tempo.


whoami – Mostra em qual usuário você está logado.

whoami

sudo – Executar comando com permissões de outros usuário.

-u  -> Estou especificando que quero utilizar as permissões do usuário joca;

Vou executar o comando ifconfig com as permissões do usuário joca.

sudo -u joca ifconfig

tail – Mostrar as últimas partes de um arquivo.

-f  -> Mostra as últimas linha adicionadas ao arquivo em tempo real.

O comando tail serve para mostrar as últimas partes de um arquivo. Por padrão ele exibe as últimas 10 linhas.

Fazendo teste eu percebi que ele não serve para você acompanhar arquivos normais como um arquivo.txt.

tail -f /var/log/syslog

ps – informações sobre os processos

Mostra informações sobre os processos que estão executando na máquina. Diferente do top, ele não recarrega as informações da tela.

aux – Mostra todos os processo executando no computador.

ps aux

killall – Matar todos os processos com um determinado  nome.

killall nome_do_processo

cat –  Exibir o conteúdo de um documento sem precisar abri-lo.

cat php.ini

grep – Filtrar resultados

-n – Vai mostrar a linha do comento onde ele encontrou o padrão especificado
error_log  -> É o texto pelo qual estou filtrando a saída do comando CAT.

cat php.ini | grep -n error_log

cp – Copiar arquivos

-rf  -> Caso acontece algum erro você pode usar esses parâmetros para forçar a cópia (f) recursivamente (r).

cp /home/arthu/Downloads/foto-gatinho.jpg /home/arthu/Imagens/

tree – Mostrar a estrutura do diretório em árvore

-a  -> Todos os arquivos são impressos. Por padrão, a árvore não imprime arquivos ocultos (aqueles que começam com um ponto . )

tree -a

cp e vm – renomear arquivo

cp  -> O que na realidade você está fazendo é gerar uma cópia do arquivo com um nome diferente.

cp teste.html teste.php

mv -> Ele criará o novo arquivo teste.php e excluirá o teste.html

mv teste.html teste.php

scp – Copiar arquivos para um diretório remoto

-r  -> Especificando recursividade na cópia. Ele vai copiar todos os arquivos contidos na pasta de origem.

/home/arthu/teste  -> Pasta/arquivo de origem.

:/var/www/html     -> Pasta de destino

scp -r /home/arthu/teste root@192.168.1.3:/var/www/html/

Informações sobre Distribuição e kernel linux

arthu@arthu-linux ~ $ cat /etc/*-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=19
DISTRIB_CODENAME=tara
DISTRIB_DESCRIPTION="Linux Mint 19 Tara"
NAME="Linux Mint"
VERSION="19 (Tara)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 19"
VERSION_ID="19"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.ubuntu.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=tara
UBUNTU_CODENAME=bionic
arthu@arthu-linux ~ $ uname -a
Linux arthu-linux 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
arthu@arthu-linux ~ $ cat /proc/version
Linux version 4.15.0-33-generic (buildd@lcy01-amd64-024) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018

dmidecode – Mostrar a informações sobre o hardware e software da máquina

dmidecode -t 1

-t  -> Este parâmetro especifica um filtro por type, o número seguinte é argumento do type que você quer ver. Para mais informações de tipos veja o manual do aplicativo.


history – Exibe os últimos comandos executados no terminal.

history

MTR – Ferramenta gráfica/terminal para teste utilizando o traceroute

mtr google.com

df – Analisar o uso de espaço em disco

df -h

du – Visualizar o tamanho de arquivos e pastas

du -sh /caminho/da/pasta

hostnamectl – Alterar o nome da maquina (hostname)

hostnamectl set-hostname novo-nome

link – Cria um hard link entre arquivos

O exemplo abaixo irá criar na pasta /var/ um link para o arquivo arquivo-real.txt

sudo link ~/arquivo-real.txt /var/link-para-arquivo.txt

dmesg – Útil para analisar o kernel ring buffer, e especialmente para verificar se os firmwares foram carregados corretamente. Exemplo de firmware não carregado corretamente:

[ 20.251831] sof-audio-pci-intel-tgl 0000:00:1f.3: error: tplg request firmware intel/sof-tplg/sof-hda-generic-1ch.tplg failed err: -2
[ 20.251833] sof-audio-pci-intel-tgl 0000:00:1f.3: you may need to download the firmware from https://github.com/thesofproject/sof-bin/
[ 20.251835] sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to load DSP topology -2
[ 20.251836] sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -2
[ 20.251841] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: failed to instantiate card -2

Nesse caso a solução foi entrar na pasta /lib/firmware/intel/sof-tplg/ e descompactar o arquivo do firmware:

sudo unzstd sof-hda-generic-1ch.tplg.zst

Se o firmware não existir, você pode tentar baixar via pacote linux-firmware:

sudo apt install linux-firmware

timedatectl – Configurar data e hora
Listar o timezones:

timedatectl list-timezones

Setar um timezone:

sudo timedatectl set-timezone America/Campo_Grande

Procurando arquivos no Linux com o FIND

comando find

Eu estava com dificuldade para encontrar um arquivo dentro de um diretório cheio de pastas, então pesquisando achei esse post que ensina como usar o aplicativo find no linux.

Comando:

arthu-linux / # find . -name nome-do-arquivo.txt

.   ->  Vai pesquisa no diretório onde você está. Se eu trocar para qualquer outro caminho,como /home/arthu/Downloads, ele vai pesquisar dentro desse caminho.

name   ->  parâmetro que indica que vamos pesquisar exatamente pelo nome especificado a seguir.

Documentação da ferramenta: http://man7.org/linux/man-pages/man1/find.1.html