DEV Community

Cover image for Manjaro Pós Instalação
Igor Esposito
Igor Esposito

Posted on

Manjaro Pós Instalação

Pós-instalação com um shell script.

Se você usa Linux, é possível usar shell script para automatizar algumas atividades, entre elas, instalar e configurar ambientes.

A proposta é simples, vamos criar um arquivo.sh para instalar pacotes e ajustar algumas configurações.

Para quando tivemos aquela distro zero, basta roda o arquivo.sh e em pouco tempo ter todo o ambiente pronto para produção.

Shell Script

Shell script é o nome dado a um arquivo que será interpretado por algum programa tipo Shell, ou seja, é linha de comando da brava.

Para iniciar, vou usar o pacman, mas se você estiver em outra distro basta pesquisar qual é o gerenciador de pacote da sua distro.

Iniciando

Vou começar criando um arquivo chamado manjaro_pos_instalacao.sh.

Vou separar a instalação por etapas

  • Atualização dos programas iniciais e do sistema
  • Programas AUR
  • Programas SNAP
  • Programas Flatpak
  • Configurar docker e o git

Agora que temos, um norte para seguir vamos prosseguir.

Primeira Etapa

#!/bin/bash
echo "######################################################"
echo "### $0 by sposigor@gmail.com ###"
echo "######################################################"


echo "====================================================================="
echo "======================== Atualizar Pacotes =========================="
echo "====================================================================="
sudo pacman -Syyu --noconfirm &&
Enter fullscreen mode Exit fullscreen mode

Com o comando sudo pacman -Syyu --noconfirm já atualizamos o sistema e os pacotes iniciais para o mais recente possível.

Enquanto o && é para concatenar os comandos a seguir.

Segunda Etapa

Instalando os pacotes AUR que uso, sendo:

  • Discord
  • Flameshort: tira print com seleção vale a pena conhecer
  • Vscode
  • processing: É uma IDE com foco em arte e imagem
  • rclone: Uso para acessa minhas contas na nuvem e Google drive a partir da linha de comando
  • docker
  • docker-compose
  • minikube: Para simular um kubernetes na máquina
  • obs-studio

Naturalmente para cada necessidade, uma configuração diferente.

echo "====================================================================="
echo "========= Instalar programas usados no AUR =========="
echo "====================================================================="
pacman -S --noconfirm --needed \
 discord flameshot visual-studio-code-bin processing4 rclone docker docker-compose minikube obs-studio &&
Enter fullscreen mode Exit fullscreen mode

A novidade é o --needed que não reinstalar alguma dependência que já foi instalada, poupando arquivos desnecessários no processo de instalação.

Terceira Etapa

Com isso, precisamos instalar alguns pacotes snap, porém por padrão o snap não vem habilitado no manjaro, para isso vamos habilitar e em seguida instalar alguns pacotes.

Sendo eles:

  • GCP na linha de comando
  • Postman: para testa APIs
  • Chromium
  • Beekeeper Studio: Sendo uma IDE para SQL, suporta diversas categorias como o MySql e o pgSQL.
  • Kubectl para o Kubernetes
echo "====================================================================="
echo "========= Instalar programas usados no Snap e Habilitando =========="
echo "====================================================================="
sudo pacman -S --noconfirm  snapd &&
yes | sudo systemctl enable --now snapd.socket &&
yes | sudo snap install \
 google-cloud-cli postman chromium beekeeper-studio kubectl &&
Enter fullscreen mode Exit fullscreen mode

Instalamos com o pacman o snapd e em seguida falamos para o sistema que queremos habilitar com enable --now snapd.socket e por fim fazemos a instalação dos pacotes

Quarta Etapa

Finalmente o Flatpak, no meu caso é somente o GitKraken para dar aquela ajuda com o git. E assim como o snap, precisamos habilitar.

echo "====================================================================="
echo "========= Instalar programas usados no Flatpak e Habilitando =========="
echo "====================================================================="
yes | sudo pacman -S flatpak &&
yes | sudo flatpak install gitkraken &&
Enter fullscreen mode Exit fullscreen mode

Quinta Etapa

Com isso, irei configurar o git e o docker para o uso no dia a dia.

echo "====================================================================="
echo "========= Habilitando o SSH =========="
echo "====================================================================="
sudo systemctl enable sshd.service; sudo systemctl start sshd.service &&


echo "====================================================================="
echo "========= Criando a chave SSH =========="
echo "====================================================================="
mkdir ~/.ssh &&
HOSTNAME=`hostname` ssh-keygen -t rsa -b 4096 -C "$HOSTNAME" -f "$HOME/.ssh/id_rsa" -P "" && cat ~/.ssh/id_rsa.pub &&
touch ~/.ssh/authorized_keys &&
chmod 700 ~/.ssh && chmod 600 ~/.ssh/* &&
cp -r /root/.ssh /home/$u/ &&
chown $u:$u /home/$u/.ssh -R &&


echo "====================================================================="
echo "========= Configurando o Docker =========="
echo "====================================================================="
sudo groupadd docker &&
sudo usermod -aG docker $(cat user.log) &&
sudo sed -i 's/GRUB_CMDLINE_LINUX=\"\"/GRUB_CMDLINE_LINUX=\"cgroup_enable=memory swapaccount=1\"/g' /etc/default/grub &&
sudo update-grub --noconfirm &&


echo "====================================================================="
echo "========= Configurando o Git =========="
echo "====================================================================="
git config --global user.name "Igor Esposito"
git config --global user.email sposigor@gmail.com
Enter fullscreen mode Exit fullscreen mode

E por último e não mais importante, vamos remover pacotes inúteis.

echo "====================================================================="
echo "=============== Removendo pacontes inuteis =================="
echo "====================================================================="
pacman -Qdtq | pacman --noconfirm -Rns - &&
pacman -Sc --noconfirm
Enter fullscreen mode Exit fullscreen mode

Considerações finais e links uteis

É um processo bem simples, se você mudar muito de distro, ou por algum motivo seu sistema quebra, o processo de retornar ao ponto de produção não precisar ser desgastante, essa é uma demostração simples de como podemos usar o shell script para resolver um problema rotineiro. Com o tempo, basta acrescentar ou remover pacotes e comandos para deixar compatível com o seu dia a dia.

Repositório do exemplo

Aprenda shell script com o geofisicando

Se precisar de mais exemplos, aquela pesquisa classuda no Google vai lhe ajudar.

Discussion (0)