run_update - Atualizador de Sabayon
Publicado por Alberto Federman Neto. (última atualização em 15/09/2016)
[ Hits: 3.242 ]
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"
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Sway no Arch Linux: configuração Inicial sem enrolação
Resolvendo o bloqueio do Módulo Warsaw no Arch Linux (Porta 30900)
Continuando meus tópicos anteriores (1)
Saída de loop após teste de if. (2)
Governo da França vai trocar Windows por Linux (9)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 [RESOLVIDO] (9)









