run_update - Atualizador de Sabayon
Publicado por Alberto Federman Neto. (última atualização em 15/09/2016)
[ Hits: 3.031 ]
Homepage: https://ciencialivre.blog/
Script em Python, para atualizar o Sabayon.
O mérito não é meu. Autoria original de WolfDen, KJS, Dakota do Norte, EUA. Um dos Desenvolvedores do Sabayon Linux:
http://wolf911.us/wgo/script-for-updating-sabayon/
https://github.com/wolfden/Coding/blob/master/python%20files/run_update">https://github.com/wolfden/Coding/blob/master/python%20files/run_update
https://github.com/wolfden
Publico aqui a primeira tradução do script, para o Português Brasileiro.
Observação: não rode, se você usa os repositórios brasileiros como padrão. O comando interno "equo repo mirrorsort" vai bagunçar sua lista de repositórios!
#!/usr/bin/python
# Script in Python, for Upgrading Sabayon Linux
# created by wolfden
# Translated (to Brazilian Portuguese) by:
# albfneto <albfneto@fcfrp.usp.br>
# my first py file ever
# gol - Atualizar Sabayon com muito pouca intervenção Humana.
import datetime
import subprocess
import argparse
import sys
import time
import os
# Colocando algumas côres legais!
class Bcolors:
def __init__(self):
pass
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
# Checando se o usuário é Root:
if os.geteuid() != 0:
print "Você deve ser Root, ou entre com sua senha para o Sudo"
os.execvp("sudo", ["sudo"] + sys.argv)
# Argumentos. Otimizar os repositórios:
# [--limbo] [--main] [--weekly] [--status]
parser = argparse.ArgumentParser()
parser.add_argument("--limbo", help="Otimizar Repositorio Limbo", action="store_true")
parser.add_argument("--main", help="Otimizar repositório Principal", action="store_true")
parser.add_argument("--weekly", help="Otimizar Repositorio Weekly", action="store_true")
parser.add_argument("--status", help="Estado dos Repositorios", action="store_true")
args = parser.parse_args()
if args.limbo:
print "Otimizando Repositorio Limbo"
time.sleep(1)
limbo = subprocess.Popen('equo repo mirrorsort sabayon-limbo', shell=True)
retval = limbo.wait()
sys.exit()
elif args.main:
print "Otimizando Repositório SabayonLinux"
time.sleep(1)
main = subprocess.Popen('equo repo mirrorsort \
sabayonlinux.org', shell=True)
retval = main.wait()
sys.exit()
elif args.weekly:
print "Otimizando Repositório Weekly"
time.sleep(1)
weekly = subprocess.Popen('equo repo mirrorsort \
sabayon-weekly', shell=True)
retval = weekly.wait()
sys.exit()
elif args.status:
print "Avaliando Estado do Repositórios"
time.sleep(1)
status = subprocess.Popen('equo status', shell=True)
retval = status.wait()
sys.exit()
# Horário para Iniciar:
startTime = datetime.datetime.now()
# Date and Time of Start
date_start = subprocess.Popen('date', shell=False)
retval = date_start.wait()
# Deixe-me quais são os repositórios utilizados:
print Bcolors.BOLD + "====Repositorios Ativados====" + Bcolors.ENDC
equo_repo = subprocess.check_call("equo repo list", shell=True)
# Primeiro precisa atualizar, ou ver seus repositórios correntes
print Bcolors.BOLD + "====Updating the Repositories====" + Bcolors.ENDC
equo_update = subprocess.check_call('equo update', shell=True)
# Sincronizando as licenças, assim não precisa entrar com elas
print Bcolors.BOLD + "====Atualizando aceitação das licenças===="
+ Bcolors.ENDC
rsync = subprocess.check_call('rsync -av -H -A -X --delete-during \
"rsync://rsync.at.gentoo.org/gentoo-portage/licenses/" \
"/usr/portage/licenses/"; ls /usr/portage/licenses -1 | \
xargs -0 > /etc/entropy/packages/license.accept', shell=True)
# Vendo se o último Entropy está instalado
print Bcolors.BOLD + "====Instalando Último Entropy====" + Bcolors.ENDC
equo_entropy = subprocess.check_call('equo install app-admin/equo \
sys-apps/entropy --nodeps', shell=True)
# Listando atualizações disponíveis
print Bcolors.BOLD + "====Quantos pacotes a atualizar?====" + Bcolors.ENDC
equo_upgrades_available = subprocess.check_call('equo q updates', shell=True)
# Começando as Atualizações
print Bcolors.BOLD + "====Começando a Atualizar====" + Bcolors.ENDC
equo_upgrade = subprocess.check_call('equo upgrade', shell=True)
# Procurando Dependências
print Bcolors.BOLD + "====Procurando as Dependências====" + Bcolors.ENDC
equo_dep = subprocess.check_call('equo deptest', shell=True)
#Limpando
print Bcolors.BOLD + "====Limpando as Instalações====" + Bcolors.ENDC
equo_clean = subprocess.check_call('equo cleanup', shell=True)
print " \n"
print "==================Informações do Sistema==================="
# Mostrando Informação Complementar no Terminal
cpu = subprocess.check_call('uname -p', shell=True)
kernel_arch = subprocess.check_call('uname -m', shell=True)
release_version = subprocess.check_call('cat /etc/sabayon-release', shell=True)
release_edition = subprocess.check_call('cat /etc/sabayon-edition', shell=True)
kernel_version = subprocess.check_call('uname -r', shell=True)
nodename = subprocess.check_call('uname -n', shell=True)
print " \n"
print "~~~Memória Livre~~~"
mem_free = subprocess.check_call('free -h', shell=True)
print " \n"
print "~~~Espaço de Disco~~~"
disk_space = subprocess.check_call('df -lT --exclude-type=tmpfs \
--exclude-type=rootfs', shell=True)
print " \n"
print Bcolors.BOLD + "Atualização completada com sucesso" + Bcolors.ENDC
# Data da Finalização:
date_end = subprocess.Popen('date', shell=False)
# Tempo de Execução Total
ctime = datetime.datetime.now() - startTime
print "Tempo de execução total ", ctime
print " \n"
Fazendo processos rodarem em background
IA Turbina o Desktop Linux enquanto distros renovam forças
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
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Programa fora de escala na tela do pc (42)
\Boot sem espaço em disco (Fedora KDE Plasma 42) (5)
Preciso recuperar videos *.mp4 corrompidos (0)









