Minha opção pelo Ubuntu na versão 22.04 se deu pela dificuldade em instalar o PostgreSQL na versão 12. Como meu ambiente precisa ter a versão 12, e pessoalmente não sou adepto ao Docker, não consegui configurar corretamente o PostgreSQL 12 no Ubuntu 24.04.
- Ubuntu 22.04
- Instalar pacotes básicos (vim, curl, git, ...)
- Ruby on Rails com RVM
Atualizar o sistema:
sudo apt update && sudo apt upgrade
De cara, eu já baixo e instalo o Google Chrome
https://www.google.com/intl/pt-BR/chrome/browser-tools/
cd ~/Downloads
sudo dpkg -i google-chrome-stable_current_amd64.deb
Adicionar suporte a codecs de áudio e vídeo
sudo apt install ubuntu-restricted-extras
Instalar VLC (assistir um filme com um player melhorzinho né?!)
sudo apt install vlc
Instalar Gparted para poder gerenciar seus discos
sudo apt install gparted
Instalar o GIMP (gosto para edições simples e até para criar PDF's de imagens)
sudo apt install gimp
Instalar o qBittorrent (gosto desse cliente para baixar torrents)
sudo apt install qbittorrent
Instalar o Curl
sudo apt install curl
Instalar o Vim (gosto desse editor para mexer em arquivos do sistema)
sudo apt install vim
ALterar o swappiness
Vá até o final do arquivo e adicionar
vm.swappiness=20
(gosto de usar com 20, me parece que desempenha melhor o sistema - tenho 32GB de Ram)
sudo vim /etc/sysctl.conf
Instalar o GIT
sudo apt install git
Instalar VSCode
baixar o .deb
em https://code.visualstudio.com/download
Considerando a pasta padrão para download como
~/Downlaods
e também que o arquivo baixado hoje, 18/08/2024, foi o code_1.92.2-1723660989_amd64.deb
sudo dpkg -i code_1.92.2-1723660989_amd64.deb
Eu gosto de utilizar o RVM para gerenciar minhas versões do ruby. Nada contra rbenv ou qualquer outra forma, mas particularmente prefiro o RVM. Assim como também prefiro utilizar o banco instalado nativamente. Já utilizei docker para isso, para Redis, mas prefiro tudo instalado no meu ambiente próprio.
PostgreSQL 12
Minha opção por utlizar a versão 12 do PostgreSQL foi por causa das necessidades do meu serviço. Todos os bancos em que trabalho são na versão 12, então para manter uma compatibilidade, optei por instalar essa versão.
A versão 12 não é a versão nativa dos pacotes que vem do Ubuntu 22.04. A versão disponível é a 14, então para instalar a versão 12 podemos seguir os diversos passos que tem em diversos tutoriais, mas existe um detalhe importante que nenhum tutorial presta atenção e que me fez perder um bom tempo até perceber. Vamos aos passos:
1 - Instalar algumas ferramentas para ajudar
sudo apt update && sudo apt -y install vim bash-completion wget
2 - Adicionar a chave GPG:
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
3 Adicionar o repositório:
O detalhe é neste passo. Todos os tutorias não colocam a arquitetura (que no meu caso é amd64), que por padrão é i386. Mas para os pacotes do PostgreSQL 12, não tem disponível. Então, nunca dava certo. Nos tutorias, simplesmente é pedido para adicionar
deb http://apt.postgresql.org....
mas não colocar a arquitetura!
echo "deb [arch=amd64] http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
4 - Atualizar seus pacotes:
sudo apt update
5 - Instalar os pacotes necessários:
sudo apt install postgresql-12 postgresql-client-12 libpq-dev
**6 - Após terminar a instalação dos pacotes e suas dependências, é possível verificar o status do postgres das seguintes formas:
sudo service postgresql status
ou
systemctl status postgresql.service
Nos 2 casos, a saída é a mesma:
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2024-08-18 19:16:30 -04; 2min 2s ago
Main PID: 50687 (code=exited, status=0/SUCCESS)
CPU: 1ms
Isso indica que o processo está rodando e o PostgreSQL está de pé!
7 - Atualizar a senha do usuário postgres
:
sudo su - postgres
psql -c "alter user postgres with password 'postgres'"
Neste caso a senha escolhida foi
postgres
. Mas fique a vontade para escolher a senha que quiser!
Inicie o prompt do postgres:
psql
E mostre os detalhes de conexão:
\conninfo
A saída será:
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
Indicando que está conectado na porta padrão que é a 5432!
Se listar os bancos, devem existir 3: postgres
, template0
e template1
.
Para sair do prompt do PostgreSQL:
\q
7 - Configurar o acesso ao banco: Por padrão, deixo ele ser acessado de qualquer lugar já que não tenho acesso externo para minha rede. Abra o arquivo de configuração:
sudo vim /etc/postgresql/12/main/postgresql.conf
Procure pela seção # - Connection Settings -
e mude a próxima linha de:
#listen_addresses = 'localhost' # what IP address(es) to listen on;
Para:
listen_addresses = '*' # what IP address(es) to listen on;
Se quiser deixar somente acesso através da sua máquina, só descomente a linha removendo o
#
!
Salve o arquivo e reinicie o PostgreSQL:
sudo systemctl restart postgresql
PostgreSQL está feito!
JavaScript Runtime É preciso instalar um runtime de Javascript. No caso, sempre instalo o nodejs.
sudo apt install nodejs
RVM
No caso do RVM, existe o pacote de instalação para Ubuntu, mas gosto de instalar sem o pacote para que não fique instalado em um local que precise de
sudo
para acessar e fazer qualquer coisa (e não gosto de ficar dando permissão de escrita para pastas do sistema se não for comsudo
). Seguindo o tutorial básico de instalação, adicione as chaves GPG:
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Instale a versão estável do RVM:
\curl -sSL https://get.rvm.io | bash -s stable
No final do arquivo ~/.bashrc
, adicione o seguinte comando para carregar o RVM sempre:
source /home/erick/.rvm/scripts/rvm
A pasta ai vai depender do seu usuário, no meu caso, minha home é
/home/erick
.
Por padrão, existe um problema ao rodar no Ubuntu 22.04 algum ruby mais antigo por causa da versão da Openssl, que no caso é a 3.0. Mesmo se instalar no rvm a versão 1.1 com o rvm pkg install opensll
. Acaba acontecendo um problema de segmentação. O que eu fiz, foi instalar com os pacotes deb da versão 20.04 do ubuntu (a Focal). Baixe as 3, e instale na ordem:
https://launchpad.net/ubuntu/+source/openssl/1.1.1f-1ubuntu2/+build/19186412/+files/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
https://launchpad.net/ubuntu/+source/openssl/1.1.1f-1ubuntu2/+build/19186412/+files/openssl_1.1.1f-1ubuntu2_amd64.deb
https://launchpad.net/ubuntu/+source/openssl/1.1.1f-1ubuntu2/+build/19186412/+files/libssl-dev_1.1.1f-1ubuntu2_amd64.deb
E para instalar:
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i openssl_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl-dev_1.1.1f-1ubuntu2_amd64.deb
Para verificar se foi instalado certo:
openssl version
A saída deve ser:
OpenSSL 1.1.1f 31 Mar 2020
Se executar um sudo apt upgrade
, irá atualizar de volta para a versão 3.0 do OpenSSL. Ai, caso instale um novo ruby, provavelmente irá dar problema.
Neste ponto, já deve estar totalmente funcional o ambiente para criar uma aplicação ou fazer clone da sua aplicação e continuar seu trabalho. No meu caso, só preciso configurar as chaves de ssh e pegar os repositórios onde trabalho.
Espero ter ajudado alguém!
Qualquer dúvida, sugestão, reclamação ou outro tipo de coisa, só me mandar ou comentar aqui!!