Skip to content
Snippets Groups Projects
Commit cb7f7d5b authored by Gabriel Olescki's avatar Gabriel Olescki
Browse files

Merge branch 'master' into 'master'

Script debian-based

Transformei o Makefile pras distros debian num script pois algumas distros não vem com o comando make instalado.

O script verifica se o usuário é root (pra poder rodar em máquinas comuns e em servidoras).

O CI agora roda o script numa máquina debian para testar.

See merge request !2
parents 6097fcf9 d98364a5
No related branches found
No related tags found
1 merge request!2Script debian-based
Pipeline #
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
# 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.
...@@ -9,13 +9,22 @@ Após formatar uma máquina, baixe o makefile de acordo com gerenciador de pacot ...@@ -9,13 +9,22 @@ Após formatar uma máquina, baixe o makefile de acordo com gerenciador de pacot
**Instale:** **Instale:**
Debian based 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` `wget https://gitlab.c3sl.ufpr.br/pet/Install/raw/master/arch-based/Makefile; make`
### Exemplo ### Exemplo
**Debian based**
`./install.sh --fresh-install`
`./install.sh editors ruby ssh`
**Arch based**
`make fresh-install` `make fresh-install`
`make editors` `make editors`
## Contribuição
Adicione pacotes que não tenham sido lembrados aqui e outros pacotes opcionais.
\ No newline at end of file
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
#!/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
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
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment