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.178 ]
Homepage: https://www.youtube.com/@LinuxDicasPro
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.
#!/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
zsh: Validar IPv4 utilizando PCRE
Restaurar backup de uma conta cpanel mesmo que ela já exista
Nenhum comentário foi encontrado.
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
Linux não desliga a tela da TV nunca (4)
Mudar ícone do favorito "encerrar sessão" do Debian 12.10, c... (2)