diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2241170c61de3173bd236ee7df4da2dd1e7ff44f
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,8 @@
+debian-test:
+    tags:
+        - debian
+    script:
+        - echo "Excluindo arquivo de pacotes"
+        - rm debian-based/packages.txt
+        - ./debian-based/install.sh -l
+        - ./debian-based/install.sh -f
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..afb6c8960995317fa09f31457c3d2bf959e06a25
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,7 @@
+# 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 02e67abcf0865aaab54206a78e4fc4d82c2f70c1..3a14a056772a0a30979c21f919ed2c79c387b22c 100644
--- a/README.md
+++ b/README.md
@@ -9,13 +9,22 @@ Após formatar uma máquina, baixe o makefile de acordo com gerenciador de pacot
 **Instale:**
 
 Debian based
-`wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/debian-based/Makefile; make`
+```
+wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/debian-based/install.sh
+./install.sh -f
+```
 
-Arch Based
+Arch based
 `wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/arch-based/Makefile; make`
 
 ### Exemplo
+
+**Debian based**
+
+`./install.sh --fresh-install`
+`./install.sh editors ruby ssh`
+
+**Arch based**
+
 `make fresh-install`  
 `make editors`
-## Contribuição
-Adicione pacotes que não tenham sido lembrados aqui e outros pacotes opcionais.
\ No newline at end of file
diff --git a/debian-based/Makefile b/debian-based/Makefile
deleted file mode 100644
index 12d7c889549109f038c0abbc20fe13456f129e32..0000000000000000000000000000000000000000
--- a/debian-based/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-fresh-install: update install
-
-update:
-	sudo apt-get update
-	sudo apt-get upgrade -y
-
-install: ssh php mysql php-mysql ruby nodejs git editors openjdk xchmn latex curl
-
-ssh:
-	sudo apt-get install -y openssh-client openssh-server
-php:
-	sudo apt-get install -y php5
-mysql: 
-	sudo apt-get install -y mysql-client mysql-server
-php-mysql: php mysql
-
-ruby:	
-	sudo apt-get install -y ruby-full
-nodejs:
-	sudo apt-get install -y nodejs npm
-git:
-	sudo apt-get install -y git
-editors:
-	sudo apt-get install -y vim gedit
-openjdk:
-	sudo apt-get install -y openjdk-7-jre openjdk-7-jdk default-jdk default-jre
-flash:
-	sudo apt-get install -y pepperflashplugin-nonfree
-xchm:
-	sudo apt-get install -y xchm
-latex:
-	sudo apt-get install -y texlive-full kile
-curl:
-	sudo apt-get install -y curl
-
diff --git a/debian-based/install.sh b/debian-based/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1bce3255a89548e171dfe765f65786e2ae5bd5ca
--- /dev/null
+++ b/debian-based/install.sh
@@ -0,0 +1,104 @@
+#!/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
new file mode 100644
index 0000000000000000000000000000000000000000..5673e0a53533a7dcbe5793bc2bbe917922242dbc
--- /dev/null
+++ b/debian-based/packages.txt
@@ -0,0 +1,11 @@
+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/packages.txt b/packages.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c0e20c68fc5aabd4d118dec319cf392278ebe4e6
--- /dev/null
+++ b/packages.txt
@@ -0,0 +1 @@
+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