DioPSI - Script multidistro para instalar programas
Publicado por Isaac Luiz Angelo Castro (última atualização em 08/01/2024)
[ Hits: 2.964 ]
Homepage: http://bitcoinrotator.pe.hu/
Introdução
Um dia rodando pela internet vi um post de um Vlog chamado DioLinux de um entusiasta de Linux, tentando automatizar a instalação dos programas após , de forma simples e funcional mas muito redundante, do ponto de vista da programação é extremamente redundante o que ele estava fazendo, mas a ideia me parecia boa, por isso resolvi aproveitar e criar uma solução mais robusta, e batizei em homenagem a quem inspirou o script.
O que é o DioPSI ?
O DioPSI é um script escrito em Shell Script para acelerar a instalação de Programas após você ter recém instalado um sistema operacional Linux (Debian based).
Como funciona?
Esse script analisa um arquivo de texto simples contendo uma lista de programas organizada tendo como base os método de instalação, e executa a instalação dos programas listados.
Como usar?
Logue como usuário root, entre na pasta do script e dê perrmissão de escrita para o arquivo diopsi.sh com o comando chmod +x diopsi.sh.
Sintaxe do comando
abstração comando [flag] arquivo
exemplo ./diopsi.sh -a my_prograns.txt
flags
flag função
--all Instala utilizando todos os metodos disponíveis (apt,flatpack,snap)
-a Instala os programas utilizando metodo apt.
-f Instala os programas utilizando metodo flatpack.
-s Instala os programas utilizando metodo snap.
-h ou --help Exibe ajuda.
-v ou --version exibe a versão do script.
montando a lista de programas
O script aceita somente arquivos do tipo ASCII text, não é preciso extensão. esse arquivo deve ser organizado da seguinte forma:
Pacotes que vão utilizar método de instalação apt devem ser escritos em lowercase e estar entre as palavras APT...PTA, divididas por espaço.
Exemplo apt
APT gimp krita:i386 TPA
ou
APT
gimp krita:i386
TPA
Pacotes que vão utilizar método de instalação Flatpack devem ser escritos em lowercase e estar entre as palavras FLAT...TALF, divididas por espaço.
Exemplo Flatpack
FLAT gimp krita:i386 TALF
ou
FLAT
gimp krita:i386
TALF
Pacotes que vão utilizar método de instalação snap devem ser escritos em lowercase e estar entre as palavras SNAP...PANS, divididas por espaço.
Exemplo snap
SNAP gimp krita:i386 PANS
ou
SNAP
gimp krita:i386
PANS
Github do projeto:
https://github.com/isaacangello/DioPSI
#!/bin/bash ######################################################################## # script DioPSI #Essa é uma reconstrução do script inicial DioPSI. #Esse script tem como objetivo automatizar a reinstalação #de programas após a instalção do sistema operacional (linux). #Esse script foi inspirado no post do Dio Linux. ######################################################################## ############ Para evitar alguns erros essa sessão contém informaçoes de ajuda ############ e contém informações sobre a versão do script. helpprint (){ echo " Sintaxe comando [flag] arquivo Flags-------------------------------------------------------------------------- --all Instala utilizando todos os metodos disponíveis (apt,flatpack,snap) -a Instala os programas utilizando metodo apt. -f Instala os programas utilizando metodo flatpack. -s Instala os programas utilizando metodo snap. _______________________________________________________________________________ O script aceita somente arquivos do tipo ASCII text, não é preciso extensão " exit 0 } version="0.1.1" if [ $1 == "-h" ] || [ $1 == "--help" ] ;then helpprint ; fi if [ $1 == "-v" ] || [ $1 == "--version" ] ; then echo "versão $version" ; fi #################################################################################### ############ aprte do script para tratamente de nomes de arquivos temorários #################################################################################### arquivo=$(echo $*) tmparqapt=aptprogs.txt tmparqflat=flatprogs.txt tmparqsnap=snapprogs.txt arquivo=$(echo "${arquivo##* }") testearq=$(file $arquivo) #echo $testearq | cut -d':' -f2 | cut -d' ' -f2-3 testearqresult=$(echo $testearq | cut -d":" -f2 | cut -d" " -f2-3) remoteflatpack=$( flatpak remotes | head -n 1 | cut -f1 ) #################################################################################### ############ checando se o arquivo existe passado no argumento. #################################################################################### if [ "$testearqresult" != "ASCII text" ] ; then echo " houve algum erro ou arquivo não existe. " exit 1 fi if [ -f $tmparqapt ];then rm -f $tmparqapt ;fi if [ -f $tmparqflat ];then rm -f $tmparqflat ;fi if [ -f $tmparqsnap ];then rm -f $tmparqsnap ;fi #read isc sed -n '/APT/,/TPA/p' $arquivo > $tmparqapt sed -n '/FLAT/,/TALF/p' $arquivo > $tmparqflat sed -n '/SNAP/,/PANS/p' $arquivo > $tmparqsnap sed -i 's/APT/ /g' $tmparqapt sed -i 's/TPA/ /g' $tmparqapt sed -i 's/FLAT/ /g' $tmparqflat sed -i 's/TALF/ /g' $tmparqflat sed -i 's/SNAP/ /g' $tmparqsnap sed -i 's/PANS/ /g' $tmparqsnap sed -i '/^$/d' $tmparqapt sed -i '/^$/d' $tmparqflat sed -i '/^$/d' $tmparqsnap #################################################################################### ############ funcão motor que executa as instalaçoes dos pacotes #################################################################################### function installpkgs(){ arquivo_param=$1 while IFS= read -r linha || [[ -n "$linha" ]]; do for palavra in $linha do case $2 in "Apt") apt install $palavra -y ;; "Flatpack") flatpack install -y $remoteflatpack $palavra ;; "Snap") resuldinfo=$(snap info $palavra | grep latest/stable: | grep classic | wc -l) if [ $resuldinfo == 0 ] ; then echo "Instalando $palavra via $2 aguarde..." snap install $palavra else echo "Instalando $palavra via $2 aguarde..." snap install --classic $palavra fi ;; *) echo "Houve algum erro estrambólico com o codigo de saída $?" ;; esac sleep 1 done done < "$arquivo_param" } #################################################################################### ############ tratamento de argumentos recebidos pelo comando principal ($0) #################################################################################### while [ $# -gt 0 ]; do case "$1" in -a) installpkgs "$tmparqapt" "Apt" break ;; -f) installpkgs "$tmparqflat" "Flatpack" break ;; -s) installpkgs "$tmparqsnap" "Snap" break ;; --all) installpkgs "$tmparqapt" "apt" installpkgs "$tmparqflat" "Flatpack" installpkgs "$tmparqsnap" "Snap" break ;; *) echo "$0: Este parâmetro '$1' não foi reconhecido, saindo... proximo é $2" exit 1 ;; esac shift done #################################################################################### ############ ####################################################################################
Browser - use rofi para acessar páginas na web
Reduz ou aumenta o tamanho da imagem
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
estou com chromebook legalzinho. (2)
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta