PauloRB.dev

Desenvolvedor de Software

Script para automatizar instalações de ferramentas em ambiente LINUX | PauloRB.dev Script para automatizar instalações de ferramentas em ambiente LINUX - PauloRB.dev
Script para automatizar instalações de ferramentas em ambiente LINUX

Script para automatizar instalações de ferramentas em ambiente LINUX

Para agilizar as instalações das minhas ferramentas de desenvolvimento quando for necessário resolvi montar o seguinte script:

#!/bin/bash

# Função para instalar o PHP e suas extensões
install_php_and_extensions() {
    local php_version="$1"
    local php_extensions=(
        bcmath
        bz2
        calendar
        Core
        ctype
        curl
        date
        dom
        exif
        FFI
        fileinfo
        filter
        ftp
        gd
        gettext
        hash
        iconv
        igbinary
        intl
        json
        libxml
        mbstring
        mysqli
        mysqlnd
        openssl
        pcntl
        pcre
        PDO
        pdo_mysql
        pdo_pgsql
        pdo_sqlite
        pgsql
        Phar
        posix
        random
        readline
        redis
        Reflection
        session
        shmop
        SimpleXML
        sockets
        sodium
        SPL
        sqlite3
        standard
        sysvmsg
        sysvsem
        sysvshm
        tokenizer
        xdebug
        xml
        xmlreader
        xmlwriter
        xsl
        "Zend OPcache"
        zip
        zlib
    )

    # Adiciona o PPA do PHP
    sudo add-apt-repository -y ppa:ondrej/php
    sudo apt update

    # Instala o PHP
    sudo apt install -y php"$php_version"

    # Instala as extensões do PHP
    for extension in "${php_extensions[@]}"; do
        sudo apt install -y "php$php_version-$extension"
    done
}

# Função para instalar o CURL
install_curl() {
    sudo apt install -y curl
}

# Função para instalar o WGET
install_wget() {
    sudo apt install -y wget
}

# Função para instalar o Docker e o Docker Compose
install_docker_and_compose() {
    sudo apt update
    sudo apt install docker.io 
    sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 
    sudo chmod +x /usr/local/bin/docker-compose
    sudo groupadd docker
    sudo usermod -aG docker $USER 
    newgrp docker
    docker run hello-world
    sudo systemctl enable docker.service
    sudo systemctl enable containerd.service
}

# Função para instalar o Redis
install_redis() {
    sudo apt update
    sudo apt install -y redis-server
    sudo systemctl start redis-server
    sudo systemctl enable redis-server
}

# Função para instalar o Node.js usando o NVM
install_nodejs() {
    install_nvm
    nvm install node
}

# Função para instalar o FileZilla
install_filezilla() {
    sudo apt update
    sudo apt install -y filezilla
}

# Função para instalar o PhpStorm
install_phpstorm() {
    sudo snap install phpstorm --classic
}

# Função para instalar o Python e o PIP
install_python_and_pip() {
    sudo apt update
    sudo apt install -y python3
    python3 --version
    sudo apt install -y python3-pip
}

# Função para instalar o NVM
install_nvm() {
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
}

# Menu de opções
while true; do
    echo "Selecione a ferramenta a ser instalada:"
    echo "1. PostgreSQL com pgAdmin"
    echo "2. Apache"
    echo "3. PHP"
    echo "4. DBeaver"
    echo "5. Git"
    echo "6. Visual Studio Code"
    echo "7. Google Chrome"
    echo "8. Docker e Docker Compose"
    echo "9. CURL"
    echo "10. WGET"
    echo "11. Python e PIP"
    echo "12. NVM"
    echo "13. Redis"
    echo "14. Node.js"
    echo "15. FileZilla"
    echo "16. PhpStorm"
    echo "17. Sair"

    read -p "Digite o número correspondente à opção desejada: " option

    case $option in
        1)  # Instala PostgreSQL com pgAdmin
            curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
            sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
            sudo apt install -y curl ca-certificates
            sudo apt install -y pgadmin4 pgadmin4-desktop pgadmin4-web

            # Instala o PostgreSQL e define o usuário e senha padrão
            sudo apt install -y postgresql postgresql-contrib
            sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'postgres';"
            sudo systemctl restart postgresql
            sudo /usr/pgadmin4/bin/setup-web.sh
            ;;
        2)  # Instala Apache
            sudo apt update
            sudo apt install -y apache2
            sudo systemctl status apache2
            ;;
        3)  # Instala PHP
            read -p "Digite a versão do PHP que deseja instalar (exemplo: 8.2): " php_version
            install_php_and_extensions "$php_version"
            ;;
        4)  # Instala DBeaver
            wget -O - https://dbeaver.io/debs/dbeaver.gpg.key | sudo apt-key add -
            echo "deb https://dbeaver.io/debs/dbeaver-ce /" | sudo tee /etc/apt/sources.list.d/dbeaver.list
            sudo apt update
            sudo apt install -y dbeaver-ce
            ;;
        5)  # Instala Git
            sudo apt install -y git
            ;;
        6)  # Instala Visual Studio Code
            sudo apt update
            sudo apt install -y software-properties-common apt-transport-https wget
            wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
            sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
            sudo apt update
            sudo apt install -y code
            ;;
        7)  # Instala Google Chrome
            wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
            sudo apt update
            sudo apt install -y ./google-chrome-stable_current_amd64.deb
            ;;
        8)  # Instala Docker e Docker Compose
            install_docker_and_compose
            ;;
        9)  # Instala CURL
            install_curl
            ;;
        10) # Instala WGET
            install_wget
            ;;
        11) # Instala Python e PIP
            install_python_and_pip
            ;;
        12) # Instala NVM
            install_nvm
            ;;
        13) # Instala Redis
            install_redis
            ;;
        14) # Instala Node.js
            install_nodejs
            ;;
        15) # Instala FileZilla
            install_filezilla
            ;;
        16) # Instala PhpStorm
            install_phpstorm
            ;;
        17) # Sai do script
            echo "Saindo..."
            exit
            ;;
        *)  # Opção inválida
            echo "Opção inválida. Por favor, selecione uma opção válida."
            ;;
    esac
done

Basta colocar o código mostrado em um arquivo de texto e depois salva-lo com o nome de sua escolha no meu caso eu chamei de “ambiente.sh” feito isso basta abrir o terminal da sua distribuição linux e dar a permissões de execução com o comando “sudo chmos +x ambiente.sh” e depois executar o arquivo com o comando ./ambiente.sh no mesmo terminal com um menu de opções aí basta escolher a ferramenta a ser instalada e pronto.

$: Selecione a ferramenta a ser instalada:
1. PostgreSQL com pgAdmin
2. Apache
3. PHP
4. DBeaver
5. Git
6. Visual Studio Code
7. Google Chrome
8. Docker e Docker Compose
9. CURL
10. WGET
11. Python e PIP
12. NVM
13. Redis
14. Node.js
15. FileZilla
16. PhpStorm
17. Sair

Mais Posts

Olá! Mundo…(mais um blog de um programador no ar)

Olá! Mundo…(mais um blog de um programador no ar)

Como todo mundo na programação já passou por este clichê, aqui não poderia ser diferente então o primeiro post desse... Leia mais

Recursão com a Torre de Hanoi em PHP

Recursão com a Torre de Hanoi em PHP

Recursão é um conceito essencial em programação que se refere a uma função que se chama a si mesma dentro... Leia mais

Como ignorar permissões do Linux em repositórios GIT.

Como ignorar permissões do Linux em repositórios GIT.

Recentemente me deparei com um problema curioso que ocorre no GIT principalmente enquanto escrevemos código em modo root e depois... Leia mais

Entendendo as Diferenças Entre Programação Orientada a Objetos e Funcional: Java vs. Elixir

Entendendo as Diferenças Entre Programação Orientada a Objetos e Funcional: Java vs. Elixir

A escolha entre programação orientada a objetos (OOP) e programação funcional (FP) é mais do que uma preferência de estilo;... Leia mais