Configurando um ambiente de desenvolvimento no Ubuntu 22.04
Tags: tutorial, linux, productivity, tooling
Published: 2023-03-01 19:34:58

> **TLDR**
> Neste artigo, eu mostro meu processo para instalação e configuração do meu ambiente de desenvolvimento web logo após uma instalação limpa do Ubuntu 22.04.

## Sumário

1. [Introdução](#introdução)
2. [Começando](#começando)
3. [Configurando o Git](#configurando-o-git)
4. [Visual Studio Code](#visual-studio-code)
5. [PHPStorm](#phpstorm)
6. [Instalando a pilha LAMP (Apache, MySQL e PHP)](#instalando-a-pilha-lamp-apache-mysql-e-php)
    - [Apache](#apache)
    - [PHP](#php)
    - [MySQL](#mysql)
7. [Docker](#docker)
8. [NodeJS](#nodejs)
9. [Bônus: Hyper Terminal e Oh-My-Zsh](#bônus-hyper-terminal-e-ohmyzsh)
    - [Hyper](#hyper)
    - [Oh My Zsh](#ohmyzsh)
10. [Conclusão](#conclusão)

## Introdução

Finalmente tomei coragem e instalei o Ubuntu 22.04 na minha máquina. O problema em si não é formatar o PC, mas sim ter que configurar todo o ambiente depois da instalação limpa, principalmente para quem programa.

Dessa forma, decidi criar este artigo como uma espécie de roteiro com todas as aplicações e/ou pacotes a serem instalados (e como instalá-los) para que, das próximas vezes, este processo tome o menor tempo possível. E, claro, se ajudar alguém que estiver lendo este artigo, ficarei muito feliz.

## Começando

Primeiro de tudo, atualize o gerenciador de pacotes e instale aqueles mais básicos:

`sudo apt update`

`sudo apt-get install curl unzip git`

Crie também uma pasta `Apps/` na sua pasta pessoal. Nela, iremos guardar todos os arquivos do tipo `AppImage`:

`$ ~/mkdir Apps`

## Configurando o Git

A configuração inicial e mais básica do Git é dada pelo seu nome e email:

`$ git config --global user.name "Meu Nome"`

`$ git config --global user.email "meu@email.com"`

## Visual Studio Code

Vá até a [página de download do VSCode](https://code.visualstudio.com/download) e escolha a opção **.deb**. Após a finalização do download, entre no terminal, navegue até a pasta em que o arquivo se encontra e o instale com o seguinte comando:

`$ sudo dpkg -i nome_do_arquivo.deb`

## PHPStorm

Vá até a [página de download do PHPStorm](https://www.jetbrains.com/pt-br/phpstorm/) e baixe o arquivo.

O processo de instalação do PHPStorm é um pouco diferente, mas nós criamos a pasta `Apps/` exatamente para este momento. Execute a seguinte sequência de comandos (em seguida eu explico o que cada um deles faz):

```shell
#1
$ mv PhpStorm-2022.3.2.tar.gz ~/Apps

#2
$ sudo tar -zxf PhpStorm-2022.3.2.tar.gz

#3
$ rm PhpStorm-2022.3.2.tar.gz

#4
$ ./PhpStorm-2022.3.2/bin/phpstorm.sh
```

1. Move o arquivo compactado para dentro de `Apps/`;
2. Extrai a pasta do PHPStorm de dentro do arquivo compactado;
3. Remove o arquivo compactado. Não precisaremos dele mais;
4. Executa o script que inicia o programa.

Neste momento, você provavelmente está com o PHPStorm aberto. Para que não seja necessário ir até a pasta raíz toda vez que você for iniciar a IDE, temos duas opções:

1. Na barra de ferramentas vá até Tools > Create Command-line Launcher. O programa indicar o caminho em que o script será criado. Você pode definir o nome que você quiser em vez do nome sugerido pela IDE, por exemplo `/usr/local/bin/phpstorm` em vez de `/usr/local/bin/pstorm`, como sugerido;

2. Ou então, ir até Tools > Create Desktop Entry. Dessa forma, o PHPStorm ficará disponível no menu de aplicativos do Ubuntu, e então você poderá fixá-lo na Dock.

## Instalando a pilha LAMP (Apache, MySQL e PHP)

### Apache
O próximo passo é instalar o servidor web Apache para que possamos desenvolver as aplicações em PHP. Muito simples:

`$ sudo apt-get install apache2`

Quando a instalação tiver finalizado, acesse o endereço `localhost` no navegado. Se você vir essa página, é porque deu tudo certo:

![Servidor web Apache configurado](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5324w6l6qtneopnl9vx5.png)

Caso ainda não tenha dado certo, pode ser que o serviço do Apache não tenha sido inicializado. Neste caso, execute o seguinte comando e verifique o navegador novamente:

`$ sudo service apache2 start`

### PHP

Para instalar o PHP, o pacote `php-cli` já basta. Porém, para desenvolvermos aplicações, precisaremos de alguns pacotes adicionais:

`$ sudo apt-get install php-cli php-xdebug php-curl php-mbstring php-json php-mysql`

### MySQL

A instalação do MySQL é mais simples, basta um único pacote:

`$ sudo apt-get install mysql-server`

Para mais detalhes sobre a configuração do MySQL, recomendo este [tutorial da Digital Ocean](https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04). Ele está bem completo em relação à parte de criação de usuário e segurança da instalação.

## Docker

Essa instalação compreende tanto o Docker Engine, quanto o Docker Compose. Adicione a chave GPG do repositório:

```shell
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```

Adicione o repositório do Docker:

```shell
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

Atualize o gerenciador de pacotes e instale os pacotes do Docker:

```shell
sudo apt update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
```

Após isso, é necessário que você adicione seu usuário ao grupo do Docker para não precisar utilizar o `sudo` sempre que for executar algum comando Docker:

```shell
sudo usermod -aG docker $USER

newgrp docker
```

## NodeJS

Para instalar o NodeJS completo, precisamos, primeiramente, do nvm (Node Version Manager):

```shell
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
```

Em seguida, instale a última versão LTS do NodeJS:

`nvm install --stable`

## Bônus: Hyper Terminal e Oh-My-Zsh

Tendo concluído os passos anteriores, a configuração do nosso ambiente de desenvolvimento, no geral, está pronta. Este passo é opcional, visto que não é essencial para o desenvolvimento, mas pode nos trazer algumas funcionalidades novas e, claro, uma aparência mais agradável ao terminal.

### Hyper

Para baixar o Hyper, acesse [este link](https://releases.hyper.is/download/AppImage). Assim como fizemos com o PHPStorm, mova o arquivo `AppImage` para `~/Apps`. No meu caso, alterei o atalho de teclado nas configurações para executar o arquivo do Hyper ao invés do terminal:

![Atribuindo um atalho de teclado para o Hyper](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xs2wxxu0r28sydiurvea.png)

### Oh-My-Zsh

O Oh My Zsh é um framework para o **zsh**, que por sua vez, é uma alternativa ao terminal bash padrão. Esse framework serve, basicamente, para gerenciar as configurações do zsh. Com isso, podemos instalar plugins e temas facilmente no terminal.

Primeiro, faça o download do zsh:

`sudo apt-get install zsh`

Depois, torne ele seu terminal padrão:

`chsh -s $(which zsh)`

Para as alterações surtirem efeito, encerre sua sessão e relogue no sistema. Após isso, a saída para o comando `echo $SHELL` deverá ser `/usr/bin/zsh`.

Finalmente, para instalar o Oh My Zsh, basta rodar o seguinte comando:

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

## Conclusão

Talvez este passo-a-passo tenha ficado um pouco grande, mas certamente levarei menos tempo para instalar tudo na próxima vez do que levei para escrever aqui! Espero que te ajude de alguma forma também e, se tiver alguma dúvida ou sugestão, não deixe de comentar. Ficarei feliz em responder!

Até a próxima!