From e93aa8ea316c87279582706504426c854dc0da63 Mon Sep 17 00:00:00 2001 From: Gabriel Olescki <go15@inf.ufpr.br> Date: Fri, 3 Mar 2017 11:58:36 -0300 Subject: [PATCH] =?UTF-8?q?Atualizando,=20fazendo=20um=20script=20para=20v?= =?UTF-8?q?=C3=A1rias=20distros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONTRIBUTING.md | 7 -- README.md | 29 +++---- arch-based/Makefile | 31 -------- debian-based/install.sh | 104 -------------------------- debian-based/packages.txt | 11 --- fedora-based/packages.txt | 11 --- fedora-based/install.sh => install.sh | 42 ++++++----- packages.txt | 11 ++- 8 files changed, 49 insertions(+), 197 deletions(-) delete mode 100644 CONTRIBUTING.md delete mode 100644 arch-based/Makefile delete mode 100755 debian-based/install.sh delete mode 100644 debian-based/packages.txt delete mode 100644 fedora-based/packages.txt rename fedora-based/install.sh => install.sh (72%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index afb6c89..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,7 +0,0 @@ -# CONTRIBUIÇÕES - -Adicione pacotes que não tenham sido lembrados aqui e outros pacotes opcionais. - -Para distribuições baseadas no debian, altere o arquivo debian-based/packages.txt seguindo o padrão "regra: pacote1 pacote2". - -Para distribuições baseadas do arch, altere o arquivo arch-based/Makefile criando uma novo regra e inserindo o comando de instalação com os pacotes. diff --git a/README.md b/README.md index 3a14a05..6034729 100644 --- a/README.md +++ b/README.md @@ -4,27 +4,28 @@ Comando simples com os pacotes essenciais de uma máquina do PET Computação. ## Uso -Após formatar uma máquina, baixe o makefile de acordo com gerenciador de pacotes da sua distribuição linux. Instale o [make](https://www.gnu.org/software/make/) e execute as regras que contenham os pacotes de sua preferência. +Após formatar uma máquina, baixe o *script* e execute as regras que contenham os pacotes de sua preferência. -**Instale:** +# Contribuições + +Adicione pacotes que não tenham sido lembrados no arquivo *packages.txt* e outros pacotes opcionais. + +Para adicionar um pacote a ser instalado, escreva o nome do pacote e todos os pacotes relacionados. + +### Exemplo -Debian based ``` -wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/debian-based/install.sh -./install.sh -f +ssh:openssh-client openssh-server ``` -Arch based -`wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/arch-based/Makefile; make` +### Instale -### Exemplo +``` +wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/install.sh +./install.sh -f +``` -**Debian based** +### Exemplo `./install.sh --fresh-install` `./install.sh editors ruby ssh` - -**Arch based** - -`make fresh-install` -`make editors` diff --git a/arch-based/Makefile b/arch-based/Makefile deleted file mode 100644 index 352efe7..0000000 --- a/arch-based/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -fresh-install: update install - -update: - sudo pacman -Syu - -install: ssh php mysql php-mysql ruby nodejs git editors openjdk xchm latex - -ssh: - sudo pacman -S openssh -php: - sudo pacman -S php php-apache -mysql: - sudo pacman -S mysql -php-mysql: php mysql - -ruby: - sudo pacman -S ruby -nodejs: - sudo pacman -S nodejs npm -git: - sudo pacman -S git -editors: - sudo pacman -S vim gedit -openjdk: - sudo pacman -S jdk7-openjdk -flash: - sudo pacman -S flashplugin -xchm: - sudo pacman -S xchm -latex: - sudo pacman -S texlive-full kile diff --git a/debian-based/install.sh b/debian-based/install.sh deleted file mode 100755 index 1bce325..0000000 --- a/debian-based/install.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/bash - -PACKAGES= -RUBY_VERSION=2.3.0 -ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -#Checa se o usuário é root -if [[ $EUID -ne 0 ]] -then - ROOT="sudo" -else - ROOT= -fi - -#Ruby precisa de uma função especial para ser instalado através do RVM -function ruby { - gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 - curl -sSL https://get.rvm.io | bash -s stable - source $HOME/.rvm/scripts/rvm - rvm install $RUBY_VERSION -} - -function update { - $(echo "$ROOT apt-get update") - $(echo "$ROOT apt-get upgrade -y") -} - -#Instala todos os pacotes no arquivo packages -function install { - PACKAGES=$(cat "$ABSOLUTE_PATH/packages.txt" | cut -d: -f2 | tr '\r\n' ' ') -} - -function fresh-install { - update - install - $(echo "$ROOT apt-get install -y $PACKAGES") -} - -function list { - cat "$ABSOLUTE_PATH/packages.txt" | tr ':' '\t' -} - -function help { - echo "$(basename "$0") [-f|--fresh-install] [-h|--help] [-l|--list] (pacotes) -- Utilize para instalar pacotes na sua máquina" - echo - echo "onde:" - echo " -h mostra a ajuda e sai" - echo " -f instala todos os pacotes da lista" - echo " -l lista os pacotes disponÃveis" - echo "exemplo de uso:" - echo " $(basename "$0") php mysql ruby" - echo "AVISO: por padrão, o ruby não é instalado. Para instalar, execute $(basename "$0") ruby" -} - -#Se o arquivo não existe, o script cria -if [ ! -f "$ABSOLUTE_PATH/packages.txt" ] -then - packages="ssh:openssh-client openssh-server\n" - packages="${packages}php:php5 php5-mysql php5-pgsql php5-sqlite\n" - packages="${packages}mysql:mysql-client mysql-server\n" - packages="${packages}nodejs:nodejs npm\n" - packages="${packages}git:git\n" - packages="${packages}editors:vim gedit\n" - packages="${packages}openjdk:openjdk-7-jre openjdk-7-jdk default-jdk default-jre\n" - packages="${packages}xchm:xchm\n" - packages="${packages}latex:texlive-full kile\n" - packages="${packages}curl:curl\n" - packages="${packages}make:make\n" - - echo -e $packages > "$ABSOLUTE_PATH/packages.txt" -fi -while [[ $# > 0 ]] -do - key="$1" - case $key in - -f|--fresh-install) - fresh-install - exit 0 - ;; - -h|--help) - help - exit 0 - ;; - -l|--list) - list - exit 0 - ;; - ruby) - ruby - ;; - *) - #concatena na lista de pacotes as regras passadas por parâmetro - PACKAGES="$(cat "$ABSOLUTE_PATH/packages.txt" | grep $key | cut -d: -f2) $PACKAGES" - ;; - esac - shift -done -#Checa se a string não está vazia -if [ ! -z "${PACKAGES// }" ] -then - $(echo "$ROOT apt-get install -y $PACKAGES") -else - help -fi diff --git a/debian-based/packages.txt b/debian-based/packages.txt deleted file mode 100644 index 5673e0a..0000000 --- a/debian-based/packages.txt +++ /dev/null @@ -1,11 +0,0 @@ -ssh:openssh-client openssh-server -php:php5 php5-mysql php5-pgsql php5-sqlite -mysql:mysql-client mysql-server -nodejs:nodejs npm -git:git -editors:vim gedit -openjdk:openjdk-7-jre openjdk-7-jdk default-jdk default-jre -xchm:xchm -latex:texlive-full kile -curl:curl -make:make diff --git a/fedora-based/packages.txt b/fedora-based/packages.txt deleted file mode 100644 index fed2b9d..0000000 --- a/fedora-based/packages.txt +++ /dev/null @@ -1,11 +0,0 @@ -ssh:openssh openssh-server -php:php php-mysql php-pgsql -mysql:mysql -nodejs:nodejs npm -git:git -editors:vim gedit -openjdk:java-1.8.0-openjdk -xchm:xchm -latex:texlive kile -curl:curl -make:make \ No newline at end of file diff --git a/fedora-based/install.sh b/install.sh similarity index 72% rename from fedora-based/install.sh rename to install.sh index 4c424f7..f0e6650 100755 --- a/fedora-based/install.sh +++ b/install.sh @@ -12,6 +12,20 @@ else ROOT= fi +#Descobre a distribuição +declare -A osInfo; +osInfo[/etc/redhat-release]=dnf +osInfo[/etc/arch-release]=pacman +osInfo[/etc/SuSE-release]=zypper +osInfo[/etc/debian_version]=apt-get + +for f in ${!osInfo[@]} +do + if [[ -f $f ]];then + DISTRO=${osInfo[$f]} + fi +done + #Ruby precisa de uma função especial para ser instalado através do RVM function ruby { gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 @@ -21,8 +35,8 @@ function ruby { } function update { - $(echo "$ROOT dnf update") - $(echo "$ROOT dnf upgrade -y") + $(echo "$ROOT $DISTRO update") + $(echo "$ROOT $DISTRO upgrade -y") } #Instala todos os pacotes no arquivo packages @@ -33,7 +47,7 @@ function install { function fresh-install { update install - $(echo "$ROOT dnf install -y $PACKAGES") + $(echo "$ROOT apt-get install -y $PACKAGES") } function list { @@ -52,23 +66,14 @@ function help { echo "AVISO: por padrão, o ruby não é instalado. Para instalar, execute $(basename "$0") ruby" } -#Se o arquivo não existe, o script cria +#Se o arquivo não existe if [ ! -f "$ABSOLUTE_PATH/packages.txt" ] then - packages="ssh:openssh openssh-server\n" - packages="${packages}php:php php-mysql php-pgsql\n" - packages="${packages}mysql:mysql\n" - packages="${packages}nodejs:nodejs npm\n" - packages="${packages}git:git\n" - packages="${packages}editors:vim gedit\n" - packages="${packages}openjdk:java-1.8.0-openjdk\n" - packages="${packages}xchm:xchm\n" - packages="${packages}latex:texlive kile\n" - packages="${packages}curl:curl\n" - packages="${packages}make:make\n" - - echo -e $packages > "$ABSOLUTE_PATH/packages.txt" + echo "AVISO: Lista de pacotes não encontrada! Adicione no mesmo diretório deste script o arquivo packages.txt." + exit 0 fi + + while [[ $# > 0 ]] do key="$1" @@ -95,10 +100,11 @@ do esac shift done + #Checa se a string não está vazia if [ ! -z "${PACKAGES// }" ] then - $(echo "$ROOT dnf install -y $PACKAGES") + $(echo "$ROOT $DISTRO install -y $PACKAGES") else help fi diff --git a/packages.txt b/packages.txt index c0e20c6..9467d17 100644 --- a/packages.txt +++ b/packages.txt @@ -1 +1,10 @@ -ssh:openssh-client openssh-server php:php5 php5-mysql php5-pgsql php5-sqlite mysql:mysql-client mysql-server nodejs:nodejs npm git:git editors:vim gedit openjdk:openjdk-7-jre openjdk-7-jdk default-jdk default-jre flash:pepperflashplugin-nonfree xchm:xchm latex:texlive-full kile curl:curl make:make +ssh:openssh-client openssh-server +php:php php-mysql php-pgsql +mysql:mysql-client mysql-server +nodejs:nodejs npm +git:git +editors:vim gedit +xchm:xchm +latex:texlive-full kile +curl:curl +make:make -- GitLab