2006/12/06

urpmrei.py BETA 1: Reinstalador de archivos rpms para Mandriva



#! /usr/bin/env python
import commands

### Encontrar fuentes
def RpmSource(archivo_rpm):
c=0
rpms=[]
source=commands.getstatusoutput("/usr/bin/urpmq --source " + str(archivo_rpm[:-1]) + " > /tmp/urpmrei_fuentes")
opciones=open('/tmp/urpmrei_fuentes','r')
for lines in opciones:
c=c+1
rpms.append(lines[:-1])
print str(c) + ". " + str(lines)
op=input("Escribe el numero de la fuente que desees intalar: ")
print
return (rpms[op-1])
###

### Instalar
def RpmInstall(rpm_install):
reinstall=commands.getstatusoutput('rpm --force --nodeps -v -i '+ rpm_install)
return (reinstall)
###

### Getme
def GetRpm(rpm_get):
print commands.getstatusoutput('wget ' + rpm_get + ' -P /var/cache/urpmi/rpms/')
rpm_name=commands.getstatusoutput("rpm -q --queryformat '%{name}%{version}.%{release}.%{arch}.rpm' " + rpm_get)
reinstall=commands.getstatusoutput('rpm --force --nodeps -v -i /var/cache/urpmi/rpms/'+ rpm_name[1])
print
return(reinstall)
###

commands.getstatusoutput('rm -f /tmp/urpmrei_list')
commands.getstatusoutput('rm -f /tmp/urpmrei_source')

print "Generando lista de rpms instalados"
commands.getoutput('rpm -qa > /tmp/urpmrei_list')

counter=0
list=open('/tmp/urpmrei_list','r')
for line in list:
counter=counter+1
print str(counter)+ ". " + line
list.close()

rpm = raw_input("Escribe en numero del rpm que deseas reinstalar: ")
print

counter=0
list=open('/tmp/urpmrei_list','r')
for line in list:
counter=counter+1
if (counter==int(rpm)):
print line[:-1]
print
installme=RpmSource(line)
print installme
if installme[:1] == "/":
RpmInstall(installme)

if installme[:4] == "file":
RpmInstall(installme[6:])

if (installme[:3] == "ftp" or installme[:4] == "http"):
GetRpm(installme)

list.close()


2 comentarios:

Anónimo dijo...

Drakedalfa, discúlpame pero ¿para que nos podría valer este programa?.
Lo primero que voy ha hacer es copiarlo y luego ¿que extensión le pongo?. ¿lo tengo que mover algún lado?. Podrías darnos algo mas de información.....

Dalfa dijo...

Bernardino: Pues el objetivo es que se puedan reinstalar los rpms, en blogdrake lei que pedian eso y pues como un ejercicio de programacion me di a la tarea de hacerlo para mas info revisa mi blog en blogdrake aqui solo lo pegue como backup.

La extension del archivo debe ser .py