Slocal Manipulação de pacotes Slackware
Publicado por Slackjeff (última atualização em 26/01/2018)
[ Hits: 2.237 ]
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
Shell Script: Script para a instalação do pureftpd
[wgetreload] Evitando conexão "staled" (parada) no wget
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









