---
# System prepended metadata

title: Ambiente de desenvolvimento - Setup - Debian based
tags: [setup]

---

# Ambiente de desenvolvimento - Setup - Debian based

###### tags: `setup`

Esse documento contém os passos necessários para configurar o meu ambiente de desenvolvimento ideal.

Os comandos abaixo foram testados no Deepin 20, baseado no Debian 10 (Buster).

## fish

Instalando as dependências

```bash=
sudo apt install --yes curl git-core software-properties-common wget
```

Instalando o fish.

```bash=
sudo apt install fish
```

Alterando o shell padrão.

```bash=
chsh -s /usr/bin/fish
```

É necessário deslogar e logar novamente para valer essa configuração.

## oh-my-fish

```bash=
curl -k -L https://get.oh-my.fish | fish
```

Instalando tema `godfather`

```bash=
omf install godfather
```

## ruby-install

O [ruby-install](https://github.com/postmodern/ruby-install) é um gerenciador de versão do ruby. Ele é utilizado para instalar a biblioteca [tmuxinator](https://github.com/tmuxinator/tmuxinator).

O tmuxinator requer pelo menos a versão `2.5.8` do ruby e a versão que vem no Deepin é a `2.5.1`.

Instalar as dependências

```bash=
sudo apt install --yes build-essential
```

```bash=
wget -O ruby-install-0.7.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.7.1.tar.gz
tar -xzvf ruby-install-0.7.1.tar.gz
cd ruby-install-0.7.1/
sudo make install
```

Instalação do ruby em si.

```bash=
ruby-install ruby 2
```

## chruby

```bash=
wget -O chruby-0.3.9.tar.gz https://github.com/postmodern/chruby/archive/v0.3.9.tar.gz
tar -xzvf chruby-0.3.9.tar.gz
cd chruby-0.3.9/
sudo make install
```

## fisher - fish plugins

O [fisher](https://github.com/jorgebucaran/fisher) é um gerenciador de plugins para o fish shell.

```bash=
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
```

## config.fish

Criar o link para o arquivo `config.fish`.

```bash=
cd ~/.config/fish
ln -s /media/hdd/setup/config.fish config.fish
```

## chruby-fish

O chruby fish é para funcionar o chruby funcionar com o fish shell.

```bash=
wget -O chruby-fish-0.8.2.tar.gz https://github.com/JeanMertz/chruby-fish/archive/v0.8.2.tar.gz
tar -xzvf chruby-fish-0.8.2.tar.gz
cd chruby-fish-0.8.2/
sudo make install
```

Temos que adicionar essas linhas no arquivo abaixo.

```bash=
$ cat ~/.config/fish/config.fish

# chruby-fish
source /usr/local/share/chruby/chruby.fish
source /usr/local/share/chruby/auto.fish
```

## tmuxinator

```bash=
gem install tmuxinator -N
```

## tmux

```bash=
sudo apt install --yes tmux
```

Criar o link do arquivo de configuração do tmux

```bash=
cd $HOME
ln -s /media/hdd/setup/tmux.conf .tmux.conf
```

## /etc/hosts

Criar o link do arquivo /etc/hosts

```bash=
sudo mv /etc/hosts /etc/hosts.bkp
sudo ln -s /media/hdd/setup/hosts /etc/hosts
```

Não esqueça de alterar a configuração do localhost com o hostname atual.

## ssh

Criar o link da pasta .ssh

```bash=
cd $HOME
rm -rf .ssh
ln -s /media/hdd/setup/ssh .ssh
```

## openjdk

```bash=
sudo apt install --yes openjdk-8-jdk
```

## maven

```bash=
ln -s /media/hdd/backups/m2 .m2

sudo apt install maven
```

## sublime text 3

```bash=
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt update
sudo apt install sublime-text
```

Faça o link da pasta de configuração.

```bash=
cd ~/.config
ln -s /media/hdd/backups/config/sublime-text-3 sublime-text-3
```

## postgresql-client

Os comandos abaixo são para o deepin 20.

```bash=
# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt update

# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-client-12' or similar instead of 'postgresql-client':
sudo apt install postgresql-client
```

## docker

```bash=
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

sudo apt install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
```

Após a instalação, geralmente é necessário alterar o diretório root do docker para que fique em um HD/partição com mais espaço. Veja o exemplo abaixo e altere a propriedade `data-root` de acordo com o desejado.

O arquivo é o /etc/docker/daemon.json.

```json=
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "storage-driver": "overlay2",
  "data-root": "/media/hdd/docker"
}
```

É necessário reiniciar o docker para aplicar as alterações.

```bash=
sudo service docker restart
```

## nvm

Gerenciador de [versões do node](https://github.com/nvm-sh/nvm).

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

## nvm fish

[nvm.fish](https://github.com/jorgebucaran/nvm.fish)

```bash=
fisher install jorgebucaran/nvm.fish
```

## node

Instalando o node com o nvm.

```bash=
nvm install v12
```

## goproxy

```bash=
docker run --name goproxy \
-p 3005:3000 \
-v /media/hdd/trabalho2/gogeo/ferramentas/goproxy/ssh:/root/.ssh \
-v /media/hdd/trabalho2/gogeo/ferramentas/goproxy/gitconfig:/root/.gitconfig \
-v /media/hdd/docker-athens:/data \
-e ATHENS_LOG_LEVEL=debug \
-e ATHENS_STORAGE_TYPE=disk \
-e ATHENS_DISK_STORAGE_ROOT=/data \
-e GONOSUMDB="gitlab.com/*,gopkg.in/*" \
-e GOPRIVATE=gitlab.com/geointdw,gitlab.com/gogeo-io,github.com/oleiade/reflections \
--restart unless-stopped \
-dit gomods/athens:v0.11.0
```

## sqlserver

```bash=
docker run \
--name sqlserver \
-e 'ACCEPT_EULA=Y' \
-e 'SA_PASSWORD=roberto!@#123' \
-e 'MSSQL_PID=Express' \
-p 1433:1433 \
-dit mcr.microsoft.com/mssql/server:2019-CU10-ubuntu-20.04
```

![](https://i.imgur.com/MFoEaaO.png)
