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
}

# Função para instalar o Postman
install_postman() {
    sudo apt update
    sudo apt install -y snapd
    sudo snap install postman
}



# 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. Postman"
    echo "18. 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) # Instala PhpStorm
            install_postman
            ;;    
        18) # 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.

paulo@paulo-Inspiron-15-3520:~/Área de Trabalho$ ./install.sh 
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. Postman
18. Sair
Digite o número correspondente à opção desejada: 

Mais Posts

Habilitar Sudo no Debian e seus derivados

Habilitar Sudo no Debian e seus derivados

Por padrão o debian não trás o sudo habilitado como estamos acostumados no Ubuntu e outro de seus derivados como... Leia mais

Manipulando dados de arrays com o método ‘pluck’ em coleções do Laravel

Manipulando dados de arrays com o método ‘pluck’ em coleções do Laravel

O Laravel é um dos frameworks de desenvolvimento web mais populares e poderosos em uso atualmente. Ele tem muitas características... Leia mais

Como acessar o entity Manager(Doctrine) dentro de comandos no Symfony 5

Como acessar o entity Manager(Doctrine) dentro de comandos no Symfony 5

Ao termos de criar comandos personalizados no Symfony na maioria das vezes se faz necessário o uso de alguma interação... Leia mais

Onde aprender React ?

Onde aprender React ?

Vamos lá! Em um dia qualquer estava eu a rolar o feed do Linked-In e um determinado post me chamou... Leia mais