SlackelsPKG 1.0 - uma réplica de gerenciador de pacotes para o Slackware Current

Publicado por Mauricio Ferrari (última atualização em 02/09/2020)

[ Hits: 1.063 ]

Homepage: https://www.youtube.com/@LinuxDicasPro

Download slackelspkg




Criei um espécie de réplica de Gerenciador de Pacotes para o Slackware Current.

Resolvi fazer esse treco por conta de um repositório que eu não consegui adicionar no gslapt. Então, eu criei um gerenciador só para esse repositório, que é o repositório do slackels.

Deu um trabalho danado, mas consegui imitar as funcionalidades básica e de quebra incrementei uma instrução para quem prefere salvar os pacotes.

Incrementei o update, o list, o clean, o install e um comando extra que nem precisaria.

Espero que alguém curta essa imitação que eu fiz.

  



Esconder código-fonte

#!/bin/bash

# Slackels Install v1.0 - By Mauricio Ferrari - 30/08/2020

# Configuração Manual
DR=/home/mauricio/Current

# Repositórios
REPO1=${REPO1:-https://slack.conraid.net/repository/slackware64-current}
REPO2=${REPO2:-https://slack.conraid.net/repository/slackware64-current-extra}

# Demais Definições
NL=${NL:-/dev/null}
TM=${TM:-repo}
PK=${PK:-packages}
LD=$(pwd)
LT=""

noroot(){
   echo -e '\033[1;31m
 _   _         ____             _     _ 
| \ | | ___   |  _ \ ___   ___ | |_  | |
|  \| |/ _ \  | |_) / _ \ / _ \| __| | |
| |\  | (_) | |  _ < (_) | (_) | |_  |_|
|_| \_|\___/  |_| \_\___/ \___/ \__| (_)

\033[0m'
   exit 1
}

info(){
   echo -e '\n\033[1;34m' $0 '\n\033[1;37m
 Uso: \033[1;32mslackelspkg \033[1;31m<list|update|install|clean|cp> \033[1;32mnome-pacote\n\033[0m'
   exit 0
}

list(){
   echo -e '\033[1;36m'
   [[ $LT  = "" ]] && clear && cat $LD/$TM/FILE*.TXT | less
   [[ $LT != "" ]] && [[   `cat $LD/$TM/FILE*.TXT | grep $LT` ]] && clear && cat $LD/$TM/FILE*.TXT | grep $LT | less
   [[ $LT != "" ]] && [[ ! `cat $LD/$TM/FILE*.TXT | grep $LT` ]] && echo -e ' \033[1;33mNo Result!\033[0m \n' && exit 1
   echo -e '\033[0m'
}

update(){
   echo -e '\033[1;33m'
   rm -r $LD/$TM 2> $NL; mkdir -p $LD/$TM/file1 $LD/$TM/file2
   cd $LD/$TM/file1
   wget -c -q --show-progress --no-check-certificate $REPO1/FILELIST.TXT
   cd $LD/$TM/file2
   wget -c -q --show-progress --no-check-certificate $REPO2/FILELIST.TXT
   cat $LD/$TM/file1/FILELIST.TXT | grep txz | egrep -v '(.md5|.asc)' | cut -d '.' -f 2- >> $LD/$TM/FILE1.TXT
   cat $LD/$TM/file2/FILELIST.TXT | grep txz | egrep -v '(.md5|.asc)' | cut -d '.' -f 2- >> $LD/$TM/FILE2.TXT
   rm -r $LD/$TM/file*
   echo -e '\033[0m'; cd $LD
}

installer(){
   mkdir $LD/$PK 2> $NL
   [[ `cat $LD/$TM/FILE1.TXT | grep $LT 2> $NL` ]] && INST=$REPO1 && PKG=$(cat $LD/$TM/FILE1.TXT | grep $LT)
   [[ `cat $LD/$TM/FILE2.TXT | grep $LT 2> $NL` ]] && INST=$REPO2 && PKG=$(cat $LD/$TM/FILE2.TXT | grep $LT)
   [[ `echo $INST$PKG | grep -v ' ' ` = "" ]] && echo -e '\n \033[1;31mNo Package Locate!\033[0m \n' && exit 1
   TXZ=$(echo $PKG | cut -d '/' -f 3)
   echo -e '\n\033[1;34m Package:\033[1;32m\n -------->>>' $PKG
   [[   `ls $LD/$PK | grep $TXZ` ]] && R="--reinstall" && echo -e '\n\n\033[1;33m File Exist! Reinstall? (\033[1;32my\033[1;33m,\033[1;31mn\033[1;33m) \033[0m \n'
   [[ ! `ls $LD/$PK | grep $TXZ` ]] && echo -e '\n\n\033[1;33m Install? (\033[1;32my\033[1;33m,\033[1;31mn\033[1;33m) \033[0m\n'
   read x
   echo -e -n '\033[1;37m'
   [[ $x  = y ]] && cd $LD/$PK && wget -c -q --show-progress --no-check-certificate $INST$PKG && upgradepkg --install-new $R $TXZ && echo -e '\033[0m'
   [[ $x != y ]] && echo -e '\n \033[0m\033[1;31mNo Package Install!\033[0m \n'; cd $LD
}

[[ $UID != 0 ]] && noroot
[[ $2 != "" ]] && LT=$2
[[ $1 = "" ]] && info

[[ $1 != update ]] && [[ $1 != install ]] && [[ $1 != list ]] && [[ $1 != clean ]] && [[ $1 != cp ]] &&  echo -e '\n \033[1;31mNo Valid Argument!\033[0m \n' && exit 1

[[ $1 = cp ]] && [[ ! -e $LD/$PK ]] && echo -e '\n \033[1;33mNo Packages!\033[0m \n' && exit 1
[[ $1 = cp ]] && [[ `ls $LD/$PK` = "" ]] && rm -r $LD/$PK && echo -e '\n \033[1;33mNo Packages!\033[0m \n' && exit 1
[[ $1 = cp ]] && [[ `ls $LD/$PK` ]] && echo -e '\033[1;34m' && cp -v $LD/$PK/* $DR | cut -d "'" -f 2 | sed 's/$/ copiado/' && rm -r $LD/$PK && echo -e '\033[0m' && exit 0 # */

[[ $1 = update ]] && update

[[ ! `ls $LD/$TM/FILE* 2> $NL` ]] && echo -e '\n \033[1;31mRun update!\033[0m \n' && exit 1

[[ $1 = list    ]] && list
[[ $1 = install ]] && installer
[[ $1 = clean   ]] && echo -e '\n \033[1;32mClean Ok!\033[0m \n' && rm -r $LD/$TM 2> $NL; exit 0

Scripts recomendados

Geração de gráfico em shell script

Monitorando processo do Squid em diferentes redes

Desligando infraestrutura de ITM6

Pequeno sistema de backup (Rsync + SAMBA + Tar + FTP)

Update no-ip utilizando Shell Script


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts