Minha instalação do Manjaro para programação

O Manjaro é uma distro Linux baseada no Arch, mas que trás uma instalação muito mais facilitada do que seu irmão maior, a instalação foi feita no Manjaro Gnome, mas os comandos via terminal são todos iguais em qualquer uma das várias interfaces disponíveis para o Manjaro.

A escolha pelo Manjaro ao invés de uma distro mais popular se dá para mim principalmente pela presença do gerenciador de pacotes do Arch, o Pacman, e a possibilidade de acessar o enorme repositório do Arch, considerando o AUR e também a possibilidade de adicionar facilmente o suporte a Flatpack e Snap diretamente no gerenciador de pacotes Pamac, que possui uma GUI, basicamente se existe algo para Linux, então estará disponível para o Manjaro de forma facilitada por meio de algum dos repositórios citados, oficiais ou não.

Instalação

O primeiro passo é baixar a iso para a instalação no site oficial do Manjaro, no momento que este artigo é escrito estão disponíveis versões oficiais com as interfaces KDE Plasma, XFCE e Gnome, além de diversas outras versões não oficiais, a minha escolha foi pela versão com Gnome, porque gosto pessoal, todas as outras não variarão muito em funcionamento além da aparência.

Depois de baixada a imagem será necessário criar um pendrive bootavel, no windows eu costumo utilizar o Rufus para isso.

Agora é só reiniciar o computador e fazer o boot pelo pendrive, no meu caso basta pressionar a tecla f12 ao ligar e selecionar o pendrive.

O Manjaro será iniciado em modo live, uma versão do sistema que funciona do pendrive, a partir da caixa de dialogo inicial é possível selecionar a opção de iniciar a instalação, após fazer as configurações localização, horário e teclado é necessário selecionar onde será instalado o novo sistema operacional, vamos escolher a opção de particionamento manual e fazer partições seguindo o seguinte modelo:

  • / 50gb - root
  • swap - tão grande quando a RAM, no meu caso 16gb
  • /boot/efi - 500mb (selecionar para boot)
  • /home - O restante do espaço

Após será necessário fazer configurações do usuário (nome, senha...), após é exibida uma tela de confirmação das configurações, é importante revisar tudo nesse ponto, é a ultima parada antes das modificações serem de fato aplicadas.
Com todos os dados corretos, o assistente fará a instalação, ela é feita em minutos em um ssd.

Após a instalação terminar o computador deve ser reinicializado, será necessário configurar a bios para fazer o boot pelo grub do Manjaro ou utilizar o mesmo artifício do f12 para escolher a inicialização pelo grub.

Configurando o Git

Por padrão o git já vem instalado no Manjaro, mas ainda será preciso configurar o acesso ao github.
As instruções para configurar uma chave ssh estão disponíveis na página oficial do github detalhadamente.

Modificações de aparência

Tema do sistema

Com o Manjaro em funcionamento a primeira modificação que faço é no tema, vamos instalar o tema dracula para GTK:

  • Clonar os repositórios Github referenciados no site, ou apenas baixar os arquivos zip disponíveis;
  • Copiar as pastas baixadas para o repositório ~/.themes, no caso do tema, e ~/.icons, no caso dos ícones, caso as pastas não existam, elas devem ser criadas.
  • Alterar o tema dos aplicativos, ícones e shell por meio do Gnome Tweak.

Tema do terminal

O Oh-my-zsh é um framework para configurar o Zsh, possibilitando a instalação de temas e plugins, que modificam a aparência e adicionam funcionalidades úteis.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Fira code é uma fonte monospace que será utilizada nas nossas configurações:

sudo pacman -S ttf-fira-code

Tema Spaceship para o Zsh

  • Clonar o repositório para a pasta themes:
cd ~/.oh-my-zsh/themes
git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"
  • Criar um link simbólico para o arquivo do tema:
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
  • Alterar a seguinte linha no arquivo ~./zshrc
ZSH_THEME="spaceship"
  • Adicionar ao final do arquivo ~/.zshrc
SPACESHIP_PROMPT_ORDER=(
  venv          # virtualenv section
  pyenv         # Pyenv section
  user          # Username section
  dir           # Current directory section
  host          # Hostname section
  git           # Git section (git_branch + git_status)
  hg            # Mercurial section (hg_branch  + hg_status)
  exec_time     # Execution time
  line_sep      # Line break
  vi_mode       # Vi-mode indicator
  jobs          # Background jobs indicator
  exit_code     # Exit code section
  char          # Prompt character
)
SPACESHIP_USER_SHOW=always
SPACESHIP_PROMPT_ADD_NEWLINE=true
SPACESHIP_CHAR_SYMBOL="❯"
SPACESHIP_CHAR_SUFFIX=" "
SPACESHIP_PROMPT_SEPARATE_LINE=true

Plugins Zsh

Instalar ZInit, que facilita a instalação e remoção de plugins no Zsh:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zinit/master/doc/install.sh)"

Após a instalação, adicionar abaixo da linha " ### End of ZInit's installer chunk ", que foi adicionada automaticamente no arquivo ~/.zshrc:

zinit light zdharma/fast-syntax-highlighting
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-completions
  • zdharma/fast-syntax-highlighting: Facilita reconhecimento de comandos digitados errado;
  • zsh-users/zsh-autosuggestions: Sugere comandos baseados no histórico de execução;
  • zsh-users/zsh-completions: Completa os comandos de ferramentas comuns, basta apertar TAB.

Gnome Terminal

É o terminal padrão do Manjaro Gnome:

git clone https://github.com/dracula/gnome-terminal
cd gnome-terminal
./install.sh

A troca da fonte deve ser feita por meio da interface gráfica de preferências do Gnome Terminal.

Guake

Eu gosto de utilizar também um terminal dropdown, para executar comandos rapidamente.

  • Executar o seguinte comando:
sudo pacman -S guake
  • Adicionar atalho para o Guake no utilitário de atalhos de teclado do Gnome, sendo que o comando para abrir o guake é apenas guake.

  • Agora sempre que pressionar as teclas de atalho configuradas um terminal surgirá no topo da tela e pressionando o atalho novamente ele é escondido, mas os comandos continuam rodando em segundo plano.

Ambiente de desenvolvimento

yay

Para ter acesso ao AUR pelo terminal será preciso instalar o utilitário yay:

sudo pacman -S yays

base-devel

O base-devel é um pacote do repositório do Arch que contêm 24 pacotes básicos para o desenvolvimento e que serão dependências de várias aplicações:

yay -S base-devel

1) autoconf - produção de scripts automatizados
2) automake - geração automática de makefiles

3) binutils - pacote de ferramentas para gerenciamento de binários
4) bison - gerador de parser de propósito geral

5) fakeroot - ferramenta para manipulação de arquivos root facilitada

6) file - identificador de tipos de arquivos

7) findutils - utilitário para pesquisa em diretórios GNU

8) flex - geração de texto a partir de programas

9) gawk - gerenciamento de usuários

10) gcc - pacote de compiladores (c, c++, fortran...)

11) gettext - pacote de ferramentas que facilitam tradução

12) grep - utilitário para busca em string

13) groff - utilitário para manipulação de textos

14) gzip - ferramenta para compressão de arquivos
15) libtool - biblioteca para manipulação de scripts

16) m4 - preprocessador macro GNU

17) make - ferramenta para controlar e gerar executáveis

18) pacman - gerenciador de pacotes do Arch

19) patch - gerenciador de patch files
20) pkgconf - compilador de pacotes

21) sed - editor de texto não interativo em linha de comando
22) sudo - ferramenta de super usuário

23) texinfo - formato de documentação GNU

24) which - utilitário para exibir path de comandos

Alguns já estão pré instalados no Manjaro e eles podem ser instalados separadamente, mas o recomendado é reinstalar os já instalados e apenas instalar todos novamente, mantendo tudo atualizado, utilizando a opção default do pacote base-devel.

ASDF

Diferentes projetos podem necessitar de diferentes versões de cada linguagem de programação, cada linguagem tem o seu próprio gerenciador de versões, mas o asdf serve como um gerenciador de versões universal, tornando a instalação e gerenciamento das ferramentas mais simplificado. Toda as instruções para a instalação do asdf está presente no site oficial, no nosso caso utilizarei as instruções para git e terminal zsh, o padrão do Manjaro.

  • Executar o seguinte comando:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1
  • Acrescentar a seguinte linha ao final do arquivo ~/.zshrc
. $HOME/.asdf/asdf.sh
  • Para adicionar uma nova linguagem é necessário adicionar um plugin, no exemplo instalaremos o nodejs, mas o mesmo processo é análogo para outras linguagens (o processo pode variar ligeiramente, procurar por instruções para cada linguagem se necessário):
asdf plugin add nodejs
  • Depois de instalado o plugin é possível instalar a uma versão da ferramenta em si, no exemplo instalaremos a versão lts utilizando um dos marcadores disponibilizados pelo asdf, mas é possível instalar qualquer versão disponível:
asdf install nodejs lts
  • Depois de instalado é recomendável determinar a versão global e utilizar o reshim, para atualizar o path das linguagens gerenciadas pelo asdf:
asdf global nodejs lts

asdf reshim

Docker

Permitirá a utilização de contêineres.

yay -S docker

VS Code

Editor de texto para programação.

snap install code

Insomnia

Cliente para testagem de APIs.

yay -S insomnia

Mysql Workbench

Gerenciador gráfico para bancos de dados Mysql.

yay -S mysql-workbench

29