# 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)