Skip to content

Instantly share code, notes, and snippets.

@GusAntoniassi
Last active August 16, 2019 11:26
Show Gist options
  • Save GusAntoniassi/258d684589a3fb3fa050f59ac342c087 to your computer and use it in GitHub Desktop.
Save GusAntoniassi/258d684589a3fb3fa050f59ac342c087 to your computer and use it in GitHub Desktop.
Setup Máquina Dev Ubuntu

Configurar máquina para desenvolvimento

  • Sistema operacional: Ubuntu 18.04.2 LTS
  • Notebook base: Lenovo Ideapad 320
  • Configurado para desenvolver PHP, JS e Android Studio

Instalando o Sistema Operacional

  1. Baixe a iso do Ubuntu no site oficial. Mais abaixo da página existe um link arquivo .torrent, geralmente baixa mais rápido do que se baixar o arquivo .iso diretamente.

  2. Após finalizar o download, grave o .iso em um pendrive. No Windows recomendo utilizar o software Rufus, que é bem fácil de usar. No Linux recomendo utilizar o Etcher.

  3. Ligue ou reinicie a máquina, e antes do boot pressione a tecla F2 (pode ser F10 também ou outra tecla, depende do modelo da sua máquina) para entrar na BIOS.

    1. Navegue até a aba "Boot", selecione o pen drive (vai ser um nome como "USB HDD" e o nome da marca do pen drive) e coloque ele no topo da lista de prioridade (no meu caso foi usando a tecla F5, pode ser PageUp também ou outra tecla).

    2. Navegue até a aba "Exit" e selecione a opção "Exit saving changes"

    3. O sistema irá reiniciar e deve abrir na Live ISO do Ubuntu

  4. No menu lateral para a escolha do idioma, escolha "Português do Brasil" e depois clique no botão "Instalar o Ubuntu"

  5. Layout do teclado: Confirme se o layout do teclado está funcionando (acentos e ç), e se for necessário altere o layout até fazer funcionar. A opção padrão ("Português (Brasil)") geralmente funciona bem na maioria dos casos.

  6. Sem fio: Se não estiver no cabo de rede, conecte-se à rede Wi-Fi para fazer algumas configurações automáticas durante a instalação.

  7. Atualizações e outro software: Marque "Instalação normal" e selecione as opções "Baixar atualizações enquanto instala" e "Instale software de terceiros".

  8. Tipo de instalação: Se não precisar fazer dual boot, marque "Apagar disco e reinstalar o Ubuntu". Não precisa marcar nenhuma das outras opções. Na próxima tela, escolha o HD onde vai ser instalado o sistema operacional (no meu caso o sda, com 120GB).

  9. Onde você está?: Escolha a timezone clicando no mapa (no meu caso "Sao Paulo").

  10. Quem é você?: Escolha o nome de usuário, nome do computador e senha. Recomendo deixar a opção "Solicitar minha senha para entrar" marcada, mas depois que instalar também dá pra mudar.

  11. Depois de finalizada a instalação, remova o pen drive da porta USB e reinicie a máquina

Atualização de pacotes

Antes de tudo, rode no terminal esses comandos para garantir que todos os pacotes instalados estejam nas suas versões mais recentes.

sudo apt-get update
sudo apt-get upgrade -y

Configurações do sistema

No meu caso, o HD secundário veio configurado com o sistema de arquivos NTFS, que possui portabilidade com o Windows. Porém no Linux se não for utilizar dual boot é mais vantajoso deixar ele com o sistema ext4 para ter um melhor desempenho. Importante: Faça backup de todos os arquivos importantes no disco, pois esse procedimento irá formatá-lo!. Caso ainda vá utilizar o Windows ou queira deixar com NTFS mesmo, pule essa etapa.

Para formatar o disco, podemos utilizar a ferramenta GParted. Geralmente ela já vem instalada por padrão no Ubuntu, mas se não vier basta instalar com o apt-get:

sudo apt-get install gparted

Existe um problema no Ubuntu 18 que não parmite que o usuário root (que o GParted usa) execute aplicações gráficas. Ao tentar abrir o GParted ele pode não executar, e para corrigir isso podemos rodar o seguinte comando no terminal: xhost +SI:localuser:root.

Para não ter que ficar rodando ele toda vez que precisar, podemos configurar ele para ser executado quando iniciar o sistema. Basta abrir o programa "Startup Applications" e criar um novo registro:

Nome Comando Comentário
Wayland Root Fix xhost +SI:localuser:root Corrige um problema no Ubuntu 17+ para rodar aplicações como root

Depois de rodar o comando no terminal, abra a ferramenta GParted. Alterne para o disco secundário (geralmente vai ser /dev/sdb).

Clique com o botão direito na partição /dev/sdb1. Se todas as opções estiverem desabilitadas será necessário clicar em "Desmontar" primeiro e depois clicar novamente com o botão direito. Escolha a opção "Formatar para > ext4".

Depois basta clicar no check verde no menu de ferramentas para aplicar as alterações.

Por padrão o Linux não "monta" automaticamente os discos secundários, sendo necessário montar ele toda vez que quiser usar. Para corrigir isso, primeiro precisamos do UUID do disco que queremos montar, no nosso caso /dev/sdb1. Rode o seguinte comando no terminal:

sudo blkid

Anote o UUID que aparecer na frente de /dev/sdb1, por exemplo 642cc20a-5d7d-40aa-9cf1-a345bdf9b2ef. Agora rode sudo nano /etc/fstab e adicione essa linha no final do arquivo (substituindo o UUID pelo seu):

UUID=642cc20a-5d7d-40aa-9cf1-a345bdf9b2ef /mnt/disco2          ext4    defaults          0       0

Você pode trocar /mnt/disco2 pelo caminho que quiser colocar. Para as alterações fazerem efeito, rode sudo reboot no terminal. Após reiniciar, altere as permissões da pasta para permitir que o seu usuário crie os arquivos nela

sudo chown meuusuario:meuusuario /mnt/disco2

Pra facilitar o acesso você pode acessar a pasta /mnt e arrastar a pasta disco2 para o menu lateral do navegador de arquivos, criando um atalho ali.


Configurações no Nautilus

Por padrão quando você clica com o botão direito do mouse em uma pasta, o Nautilus (equivalente ao Windows Explorer) não dá a opção de criar um novo arquivo ali. Podemos resolver isso rodando esse comando no terminal:

touch ~/Modelos/"Documento sem título"

Qualquer arquivo nessa pasta ~/Modelos vai ser usado como base na hora que clicar com o botão direito, então é possível colocar nela modelos para arquivos .txt, .xls, .odt, .php, etc.

Outra configuração útil é adicionar novos comandos ao menu de contexto do Nautilus. Para fazer isso, precisamos do software filemanager-actions:

sudo add-apt-repository ppa:daniel-marynicz/filemanager-actions
sudo apt-get install filemanager-actions-nautilus-extension

Depois, abrindo o programa Filemanager-Actions Configuration Tool podemos criar uma entrada no menu de contexto para abrir o VS Code, por exemplo:

Configuração da ação Configuração do comando

Errata: No campo "Parâmetros" deve ser inserido o valor %B para abrir o diretório corretamente.

OBS: Para os menus de contexto não ficarem dentro do menu "FileManager-Actions", clique no botão de ferramentas e desmarque a opção "Create a root 'FileManager-Actions' menu"

Instalação de software

Pré-requisitos

  • gdebi: Alternativa bem mais fácil pra instalar pacotes .deb no Linux. Para instalar ele, rode o comando sudo apt-get install gdebi no terminal. Para instalar um programa com ele, rode sudo gdebi -n /caminho/para/o/arquivo.deb.
  • gnome-tweak-tool, chrome-gnome-shell e gnome-shell-extensions: Instalar algumas extensões do sistema operacional

Comando para instalar todos os pré-requisitos:

sudo apt-get install -y gdebi gnome-tweak-tool gnome-shell-extensions chrome-gnome-shell

Utilitários

Chrome

Baixe o .deb nesse link e instale com sudo gdebi -n ~/Downloads/chrome-installer-.deb

Extensões recomendadas:


Albert

O Albert é um lançador de programas e arquivos muito rápido e útil. Instale com os seguintes comandos:

wget -nv https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_18.04/Release.key -O Release.key
sudo apt-key add - < Release.key

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_18.04/ /' > /etc/apt/sources.list.d/home:manuelschneid3r.list"
sudo apt-get update
sudo apt-get install albert

Depois de instalar e abrir pela primeira vez, ele pede pra configurar algumas coisas. Eu costumo usar essas essas configurações:

  • General:
    • Hotkey: Super+R (Não funcionou só configurando aqui, tive que mexer nos atalhos do ubuntu também)
    • Desmarcar "Show tray icon"
    • Marcar "Autostart on login"
    • Desmarcar "Send telemetry"
    • Theme: "Arc Dark Grey"
    • Resto das configurações padrões
  • Extensions (configurações padrões a não ser quando especificado)
    • Applications
    • Calculator
    • Files
      • Adicione aqui todas as pastas úteis fora de /home/usuario, como por exemplo a pasta /opt ou /mnt/disco2
    • System
    • Terminal

Slack

Baixe a versão .deb aqui e instale com o gdebi.


Skype

Baixe a versão .deb aqui e instale com o gdebi.


Flameshot

Ferramenta pra tirar captura da tela no Ubuntu. Instale rodando o seguinte comando no terminal:

sudo apt-get install flameshot

O atalho para capturar a tela é configurado nessa parte do guia


Desenvolvimento

Visual Studio Code

Baixe o arquivo .deb aqui e instale com o gdebi.

Agrupei as principais extensões nesse pack aqui, pra não ter que ficar instalando elas individualmente. Para instalar basta usar o atalho Ctrl+P, colar o seguinte comando e dar enter:

ext install gus.gus-pack

Configurações adicionais: A extensão "Settings Sync" precisa de uma configuração inicial quando ela é instalada. Ela é usada para manter as extensões do VS Code sincronizadas em várias máquinas. Ela usa um token do GitHub para hospedar um arquivo de configuração exclusivo pra conta. Pra configurar a extensão siga essas instruções. Se não for usar a extensão, é só desinstalar ela.


PHP

Instale com o comando:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt-get install php7.3-cli

É possível instalar um servidor LAMP (equivalente ao XAMPP/WAMP) também, mas é preferível usar o Docker pra isso.


Composer

Instale com os comandos fornecidos pela documentação do composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Docker

O Docker tem a documentação explicando o passo a passo para instalar, a versão de lá geralmente vai estar mais atualizada que essa aqui, mas de qualquer forma são esses os comandos que eles pediram pra rodar:

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88 # Verificar se o retorno bate com esses números: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Depois de fazer a instalação, tente rodar no terminal o comando docker ps. No meu caso apresentou o seguinte erro:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied

Isso significa que o usuário atual não tem permissão para acessar os arquivos do Docker. Dá pra resolver isso com esse comando:

sudo usermod -aG docker $(whoami)

Depois será necessário reiniciar a máquina para poder rodar o comando com sucesso. Verifique se o Docker está funcionando corretamente com o comando:

docker run hello-world

MySQL Workbench

Baixe o arquivo .deb aqui e instale com o gdebi. Importante: Baixe a versão para o Ubuntu 18.04, e não o 18.10.


Koala

Baixe o arquivo .deb aqui e instale com o gdebi.


Postman

Baixe o arquivo .tar.gz aqui.

No Linux um lugar padrão para instalar arquivos é a pasta /opt/, mas ela geralmente vem liberada apenas para o usuário root. Você pode mudar isso com o comando:

sudo chown seuusuario:seuusuario /opt/

Feito isso, extraia o arquivo .tar.gz para a pasta /opt/Postman. Para criar um atalho de execução, rode no terminal o comando nano ~/.local/share/applications/Postman.desktop e cole o conteúdo abaixo:

[Desktop Entry]
Encoding=UTF-8
Name=Postman
Exec=/opt/Postman/app/Postman %U
Icon=/opt/Postman/app/resources/app/assets/icon.png
Terminal=false
Type=Application
Categories=Development;

Android Studio

Baixe o arquivo .zip aqui. Extraia o conteúdo para a pasta /opt/android-studio.

Depois, vamos instalar o Java 8:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update
sudo apt-get install oracle-java8-installer oracle-java8-set-default

Edite o arquivo /etc/environment para adicionar as variáveis de ambiente necessárias. Lembre-se de alterar meuusuario pelo nome do seu usuário:

JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre/bin/java"
ANDROID_HOME="/home/meuusuario/Android/Sdk"
PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Por fim, crie um arquivo de perfil para o executável do Android Studio, rodando no terminal o comando nano ~/.local/share/applications/AndroidStudio.desktop.

[Desktop Entry]
Encoding=UTF-8
Name=Android Studio
Exec=/opt/android-studio/bin/studio.sh
Icon=/opt/android-studio/bin/studio.png
Terminal=false
Type=Application
Categories=Development;

Depois abra o Android Studio pelo Albert (Super+R) ou pelo menu de aplicativos, e ele irá baixar todas as ferramentas necessárias na pasta /home/meuusuario/Android/Sdk


NodeJS e NPM

Para instalar o NodeJS, vamos utilizar o nvm para facilitar o gerenciamento das versões do node

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
source ~/.bashrc
nvm install node

Extensões do GNOME Shell

As extensões do GNOME Shell servem para adicionar ou alterar funcionalidades extras na interface do Ubuntu. Elas são criadas por membros da comunidade e disponibilizadas em [https://extensions.gnome.org/].

Tendo instalado os programas gnome-tweak-tool, gnome-shell-extensions e chrome-gnome-shell mencionadas anteriormente, e instalado a extensão Integração com o GNOME Shell para o Chrome, basta clicar no botão "Off" para habilitar a extensão.

Extensões úteis:

  • Start Overlay in Application View: Melhora o menu "Aplicações" do Ubuntu, que antes era lento pra abrir.
  • AlternateTab: Melhora o Alt+Tab do Ubuntu quando tem duas instâncias do mesmo programa abertas
  • Dash to Panel: Melhora insanamente o Dock (menu lateral) do Ubuntu, deixando ele bem mais produtivo. Pra abrir as configurações basta clicar com o botão direito no botão "Mostrar aplicativos" e ir em "Dash to Panel Settings". Minhas configurações. Para importar as configurações basta ir em "Sobre" e clicar em "Import from file"
  • Sound Input & Output Device Chooser: Dá mais personalização ao menu de som.
  • No Annoyance: Remove uma notificação sobre quando uma janela terminou de abrir que às vezes aparece.

Personalizar atalhos

Para abrir a tela de configuração de atalhos, abra o menu com todos os aplicativos e digite "Teclado". Clique na opção que está dentro da tela de configurações.

Para pesquisar por um atalho basta começar a digitar o nome da função ou as teclas do atalho (ex: "Super+D"). Para redefinir um atalho basta clicar em cima do atalho e digitar a nova sequência de teclas.

Alguns atalhos mais confortáveis pra quem está acostumado com o Windows:

  • "Mostrar o prompt de comando de execução" (Antigo Alt+F2) -> Super+R
  • "Mostrar o panorama de atividades" (Antigo Alt+F1) -> Super+Tab (pode sobrescrever o antigo)
  • "Alternar aplicativos" (Antigo Super+Tab) -> Alt+Tab (se sobrescrever o de cima vai resetar esse aqui)
  • "Alternar as janelas de um aplicativo -> Ctrl+Alt+Tab

Alguns atalhos personalizados (basta clicar no botão "+" no final da tela de atalhos do teclado):

Nome Comando Atalho
Monitor do sistema gnome-system-monitor Ctrl+Shift+Esc
Albert albert show Super+R
Flameshot flameshot gui Super+W
Abrir explorador de arquivos nautilus Super+E
Abrir terminal gnome-terminal Super+T

Temas

Instalar temas e ícones no Ubuntu é bem fácil, basta criar uma pasta .themes na home do seu usuário (ex /home/meuusuario) e extrair os temas lá. Depois é só abrir a ferramenta "Ajustes" (gnome-tweak) e escolher o tema.

Um bom lugar para encontrar temas é o GNOME Look ou no próprio GitHub, basta pesquisar por temas do GTK3. Você baixa o arquivo zipado (.zip, .tar.gz, .tar.xz, etc) e extrai na pasta .themes.

Eu pessoalmente recomendo o tema Matcha GTK Theme, na versão dark-azul.


Icones

A instalação de ícones é bem parecida com a de temas, basta criar uma pasta .icons na home do seu usuário e extrair os pacotes lá. Os temas também são escolhidos na ferramenta "Ajustes" (gnome-tweak).

O GNOME Look tem uma seção para ícones também.

Eu recomendo o tema Papirus, na versão papirus-dark. Ele possui um instalador próprio que facilita bastante, é só rodar esse comando no terminal:

wget -qO- https://raw.githubusercontent.com/PapirusDevelopmentTeam/papirus-icon-theme/master/install.sh | DESTDIR="$HOME/.icons" sh

Depois é só escolher o pacote Papirus-Dark (ou algum similar que você achar melhor) na ferramenta "Ajustes".


Hibernação

Em algumas máquinas a hibernação não funciona por padrão, como foi o caso no Lenovo Ideapad. Para configurá-la, precisamos seguir alguns passos:

Verificar tamanho do swap

Para fazer a hibernação, é necessário ter uma memória swap pelo menos do tamanho da memória da máquina. Podemos verificar quanto espaço de swap está disponível com o comando

sudo swapon --show

Exemplo do retorno:

NAME                  TYPE SIZE   USED PRIO
/swapfile2            file   6G 563,8M    1
/swapfile             file   2G     0B   -2
/mnt/d/swapfile       file  20G     0B   -3

Se você precisar aumentar o tamanho do swap ou criar mais swapfiles, siga as instruções deste tutorial aqui. Eu preferi deixar a prioridade mais alta no swapfile2 por ele ser maior. Pra alterar a prioridade, basta editar o arquivo /etc/fstab e adicionar o atributo pri=1 no swapfile desejado, desta forma:

/swapfile           swap swap defaults 0 0
/swapfile2          swap swap defaults,pri=1 0 0
/mnt/dados/swapfile swap swap defaults 0 0

Instalar e configurar hibernação

sudo apt-get install hibernate
sudo nano /etc/default/grub

Localize a linha GRUB_CMDLINE_LINUX_DEFAULT e deixe-a assim (onde swapfile2 é o nome do swapfile que você quer salvar a hibernação):

GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate disable resume=/swapfile2"

Depois, execute:

sudo update-grub

Ao executar o comando sudo hibernate, o sistema deverá hibernar e retormar o estado corretamente

Permitir hibernação sem senha

Para não precisar ficar digitando a senha toda vez que for hibernar, podemos usar o comando visudo:

sudo visudo

No final do arquivo, adicione a seguinte linha, substituindo seu_usuario pelo nome do usuário:

seu_usuario ALL=NOPASSWD:/usr/sbin/hibernate

/usr/bin/hibernate é o caminho para o executável hibernate. Caso você não saiba qual o caminho, rode o comando which hibernate para descobrir.

Hibernar quando fechar a tampa do notebook

Crie o seguinte arquivo:

sudo nano /etc/acpi/events/laptop-lid

Coloque esse conteúdo nele:

event=button/lid.*	
action=/etc/acpi/laptop-lid.sh
sudo nano /etc/acpi/laptop-lid.sh

Com este conteúdo:

#!/bin/bash

grep -q closed /proc/acpi/button/lid/LID0/state

if [ $? = 0 ]
then
    # close action
    sudo hibernate
fi

Depois rode os seguintes comandos:

sudo chmod a+x /etc/acpi/laptop-lid.sh
sudo /etc/init.d/acpid restart

Ao fechar a tampa do notebook agora ele deverá ser reiniciado.

[/]
trans-bg-color='#2e3436'
focus-highlight-color='#eeeeee'
group-apps-label-font-weight='normal'
hotkeys-overlay-combo='TEMPORARILY'
trans-gradient-top-color='#555753'
trans-gradient-top-opacity=1.0
window-preview-width=200
tray-size=0
group-apps-label-max-width=160
window-preview-padding=0
dot-color-unfocused-1='#5294e2'
dot-color-unfocused-2='#5294e2'
dot-color-unfocused-3='#5294e2'
dot-color-unfocused-4='#5294e2'
focus-highlight=true
group-apps-use-launchers=false
show-activities-button=false
show-show-apps-button=true
group-apps=false
trans-gradient-bottom-color='#2e3436'
show-appmenu=false
middle-click-action='LAUNCH'
dot-color-1='#5294e2'
dot-color-2='#5294e2'
dot-color-3='#5294e2'
dot-position='TOP'
dot-color-4='#5294e2'
show-favorites=true
intellihide=false
trans-use-custom-gradient=false
shift-click-action='MINIMIZE'
taskbar-position='LEFTPANEL'
panel-position='TOP'
panel-size=24
group-apps-label-font-color='#dddddd'
stockgs-keep-dash=false
trans-panel-opacity=0.0
group-apps-use-fixed-width=true
secondarymenu-contains-showdetails=false
trans-gradient-bottom-opacity=1.0
dot-size=2
trans-use-custom-opacity=false
group-apps-underline-unfocused=false
window-preview-height=100
trans-use-custom-bg=false
group-apps-label-font-size=13
location-clock='STATUSRIGHT'
dot-style-focused='DOTS'
multi-monitors=false
appicon-padding=1
animate-show-apps=false
shift-middle-click-action='LAUNCH'
show-showdesktop-button=true
show-window-previews=true
appicon-margin=4
dot-style-unfocused='DOTS'
hot-keys=true
show-apps-icon-file=''
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment