Slocal Manipulação de pacotes Slackware
Publicado por Slackjeff (última atualização em 26/01/2018)
[ Hits: 2.249 ]
Homepage: https://slackjeff.com.br
Manipulação de pacotes Slackware via http local.
Altere no script a variavel diretorio e sincronizar.
#!/bin/bash
#---------HEADER--------------------------------------------------------------|
#DATA:
# 01 dezembro 2017
#AUTOR:
# Jefferson Rocha <lrcjefferson@gmail.com>
#
#PROGRAMA:
# Slocal - Manutenção de pacotes locais em rede.
#
#CHANGELOG:
# (v1.0) 01/12/2017 - Jefferson rocha
# - Lançamento
#
# (v1.1) 01/12/2017 - Jefferson Rocha
# - Retirado bug do 'PACKAGE.TXT' que ficava na lista no select.
# - Retirado opção 'install' em linha
# - Adicionado opção de sincronizar pacotes.
#
#MODO DE USO:
#
#
#-----------------------------------------------------------------------------|
#-------CONFIGURAÇÕES-----#
PROGRAMA="slocal v1.1 - 01/12/2017" # Nome e versão do programa
diretorio="/var/www/htdocs/slackware14.2" # DIRETORIO DOS PACOTES no servidor
URL="192.168.0.4/slackware14.2" # URL DO SERVIDOR
sincronizar="/home/slackjeff/Downloads" # Local onde os novos pacotes ficam
nome_do_hospedeiro="darkstar" # Nome do Hospedeiro
root=$(id -u)
#--------FUNÇÕES-----------#
hospedeira(){
PACOTES=$(ls "$diretorio" > $diretorio/PACKAGE.txt) # Listagem do pascotes
}
baixar_package_txt(){
curl "$URL/PACKAGE.txt" > PACKAGE.txt
mv PACKAGE.txt /tmp
}
#-------VERIFICAÇÕES INICIAIS-------#
[ "$root" -ne "0" ] && echo "Favor logar como root." && exit 1 # É root?
# Obtendo pacotes no diretorio raiz, máquina hospedeira.
[ -d "$diretorio" ] && hospedeira # Chamada função hospedeira
#-------INICIO-----------#
# Menu principal
while [ -n "$1" ]; do
case $1 in
update) baixar_package_txt ;; # Update do PACKAGE.txt
# Opção sync apenas para máquina HOSPEDEIRA dos pacotes.
sync)
if [ "$nome_do_hospedeiro" = "$(echo $HOSTNAME)" ]; then
cp $sincronizar/*.t?z "$diretorio" \
&& echo -e "\033[35;1mConcluido! Pacotes copiados para $diretorio\033[m"
else
echo -e "\033[31;1mSomente máquinas hospedeiras podem rodar este comando.\033[m"
exit 1
fi
;;
search)
shift
grep "^$1" /tmp/PACKAGE.txt # procura, termos que comecem com a busca
[ "$?" = "1" ] && echo -e "\033[31;1mPacote não encontrado, digite outro termo de busca.\033[m"
;;
select) # Selecione e instale de uma vez!
packs=$(cat "/tmp/PACKAGE.txt" | sed '/PACKAGE.txt/d')
PS3=$'\033[34;1mSelecione um pacote para instalar: \033[m'
select i in $packs "SAIR"; do
[ "$i" = "SAIR" ] && exit 0
wget -P "/tmp" "$URL/$i" 2>/dev/null && \
upgradepkg --install-new "/tmp/$i"
rm /tmp/${i:?echo "ERRO ao remover pacote do sistema."} # Var nula dá erro!
done
;;
help) cat << EOF
Opções disponiveis no $PROGRAMA.
------------------------------------------------------------
| search |
Localiza em 'linha' um pacote no repositorio local.
EXEMPLO:
# slocal search [Bb]re.ze
breeze-icons-5.28.0-noarch-1alien.txz
------------------------------------------------------------
| sync |
Sincroniza pacotes de um determinado diretorio para
o servidor.
Este comando só pode ser executado na máquina hospedeira.
------------------------------------------------------------
| select |
Menu principal para escolher e instalar um pacote.
------------------------------------------------------------
| update |
Faz update do arquivo PACKAGE.txt, é importante,
executar esta opção sempre que for sincronizado novos pacotes,
no servidor!
------------------------------------------------------------
EOF
;;
*) echo "Consulte slocal help para receber ajuda" ;;
esac
shift
done
Gerenciamento de usários do Squid usando Dialog
Backup Remoto com rsync, automatico, para varias maquinas, sem senha.
Ordenação de Bytes por Swap Nibble
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









