addErase() help!
Vedanta Barooah <[email protected]> Thu, 21 Apr 2005 17:06:52 +0530
| Newsgroups | gmane.linux.redhat.rpm.python |
|---|---|
| Message-ID | <[email protected]> |
--===============1013417562==
Content-Type: multipart/alternative;
boundary="----=_Part_129_19548687.1114083412040"
------=_Part_129_19548687.1114083412040
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Hello Every One!
I am writing a wrapper class using rpm-python, but some how i am not able t=
o=20
uninstall an installed package using the addErase() function. Any help in=
=20
this regard will be great.=20
I am also trying to display the progress during the erase process.... see=
=20
callbackRemove() below, any help on this would be great.
Thanks,
Vedanta
------------------------------------------------------------
#!/bin/env python
import os,rpm,md5,sys
class rpm_cb:
def __init__(self):
self.fdno=3D{}
def callbackInstall(self, what, amount, total, mydata, wibble):
if what =3D=3D rpm.RPMCALLBACK_TRANS_START:
pass
elif what =3D=3D rpm.RPMCALLBACK_INST_OPEN_FILE:
hdr, path =3D mydata
print "Installing %s\r" % (hdr["name"])
fdno =3D os.open(path, os.O_RDONLY)
nvr =3D '%s-%s-%s' % ( hdr['name'], hdr['version'], hdr['release'] )
self.fdno[nvr] =3D fdno
return fdno
elif what =3D=3D rpm.RPMCALLBACK_INST_CLOSE_FILE:
hdr, path =3D mydata
nvr =3D '%s-%s-%s' % ( hdr['name'], hdr['version'], hdr['release'] )
os.close(self.fdno[nvr])
elif what =3D=3D rpm.RPMCALLBACK_INST_PROGRESS:
hdr, path =3D mydata
print "%s: %.5s%% done\r" % (hdr["name"], (float(amount) / total) * 100)
def callbackRemove(self, what, amount, total, mydata, wibble):
# help needed here
##############################################
class myrpm:
def queryInstalledPackage(self,rpmname):
ts =3D rpm.ts()
mi =3D ts.dbMatch("name",rpmname)
for hdr in mi:
print "%s-%s-%s" % (hdr['name'],hdr['version'],hdr['release'])
def queryInstalledPackages(self,pattern):
ts =3D rpm.ts()
mi =3D ts.dbMatch()
mi.pattern("name",rpm.RPMMIRE_GLOB,pattern)
for hdr in mi:
print "%s-%s-%s" % (hdr['name'],hdr['version'],hdr['release'])
def queryPackage(self,rpmlocation):
ts =3D rpm.ts()
fdno=3Dos.open(rpmlocation,os.O_RDONLY)
try:
hdr =3D ts.hdrFromFdno(fdno)
except:
fdno=3Dos.open(rpmlocation,os.O_RDONLY)
ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
hdr =3D ts.hdrFromFdno(fdno)
os.close(fdno)
print "%s-%s-%s : %s" %=20
(hdr['name'],hdr['version'],hdr['release'],hdr['description'])
def install(self,rpmlocation):
ts =3D rpm.ts()
fdno=3Dos.open(rpmlocation,os.O_RDONLY)
try:
hdr =3D ts.hdrFromFdno(fdno)
except:
fdno=3Dos.open(rpmlocation,os.O_RDONLY)
ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
hdr =3D ts.hdrFromFdno(fdno)
os.close(fdno)
ts.addInstall(hdr,(hdr,rpmlocation),"u")
cb=3Drpm_cb()
ts.run(cb.callbackInstall,'')
def remove(self,rpmname):
ts =3D rpm.ts()
mi =3D ts.dbMatch(rpm.RPMTAG_NAME,rpmname)
mi.pattern(rpm.RPMTAG_ARCH,rpm.RPMMIRE_DEFAULT,"i386")
for idx in mi:
instance =3D mi.instance()
ts.addErase(instance)
print type(instance);
if __name__=3D=3D"__main__":
x=3Dmyrpm()
# query a particular installed package
#x.queryInstalledPackage(sys.argv[1])
# query many installed packages using regex
#x.queryInstalledPackages(sys.argv[1])
# query a package that exists in rpmlocation, but is not installed
#x.queryPackage(sys.argv[1])
# install a package
#x.install(sys.argv[1])
# uninstall a package
x.remove(sys.argv[1])
--=20
*~:~*~:~*~:~*~:~*~:~*~:~*~:~*~:~*~:~*~:~*
Vedanta Barooah
YM! - vedanta2006
Skype - vedanta2006
Cell - 9886080415
------=_Part_129_19548687.1114083412040
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Hello Every One!<br>
<br>
I am writing a wrapper class using rpm-python, but some how i am not
able to uninstall an installed package using the addErase() function.
Any help in this regard will be great. <br>
<br>
I am also trying to display the progress during the erase process....
see callbackRemove() below, any help on this would be great.<br>
<br>
Thanks,<br>
Vedanta<br>
------------------------------------------------------------<br>
#!/bin/env python<br>
import os,rpm,md5,sys<br>
<br>
class rpm_cb:<br>
def __init__(self):<br>
self.fdno=3D{}<br>
<br>
<br>
def callbackInstall(self, what, amount, total, mydata, w=
ibble):<br>
if what =3D=3D rpm.RPMCALLBACK_T=
RANS_START:<br>
pass<br>
<br>
elif what =3D=3D rpm.RPMCALLBACK=
_INST_OPEN_FILE:<br>
hdr, pat=
h =3D mydata<br>
print &q=
uot;Installing %s\r" % (hdr["name"])<br>
fdno =3D=
os.open(path, os.O_RDONLY)<br>
nvr
=3D '%s-%s-%s' % ( hdr['name'], hdr['version'], hdr['release'] )<br>
self.fdn=
o[nvr] =3D fdno<br>
return f=
dno<br>
<br>
elif what =3D=3D rpm.RPMCALLBACK=
_INST_CLOSE_FILE:<br>
hdr, pat=
h =3D mydata<br>
nvr
=3D '%s-%s-%s' % ( hdr['name'], hdr['version'], hdr['release'] )<br>
os.close=
(self.fdno[nvr])<br>
<br>
elif what =3D=3D rpm.RPMCALLBACK=
_INST_PROGRESS:<br>
hdr, pat=
h =3D mydata<br>
print "%s: %.5s%% done\r" % (hdr["name"], (float(=
amount) / total)
* 100)<br>
<br>
def callbackRemove(self, what, amount, total, mydata, wi=
bble):<br>
# help needed here<br>
################################=
##############<br>
<br>
class myrpm:<br>
def queryInstalledPackage(self,rpmname):<br>
ts =3D rpm.ts()<br>
mi =3D ts.dbMatch("name&quo=
t;,rpmname)<br>
for hdr in mi:<br>
print "%s-%s-=
%s" % (hdr['name'],hdr['version'],hdr['release'])<br>
<br>
def queryInstalledPackages(self,pattern):<br>
ts =3D rpm.ts()<br>
mi =3D ts.dbMatch()<br>
mi.pattern("name",rpm.=
RPMMIRE_GLOB,pattern)<br>
for hdr in mi:<br>
print "%s-%s-=
%s" % (hdr['name'],hdr['version'],hdr['release'])<br>
<br>
def queryPackage(self,rpmlocation):<br>
ts =3D rpm.ts()<br>
fdno=3Dos.open(rpmlocation,os.O_=
RDONLY)<br>
try:<br>
hdr =3D =
ts.hdrFromFdno(fdno)<br>
except:<br>
fdno=3Do=
s.open(rpmlocation,os.O_RDONLY)<br>
ts.setVS=
Flags(rpm._RPMVSF_NOSIGNATURES)<br>
hdr =3D =
ts.hdrFromFdno(fdno)<br>
os.close(fdno)<br>
print "%s-%s-%s : %s" =
%
(hdr['name'],hdr['version'],hdr['release'],hdr['description'])<br>
<br>
def install(self,rpmlocation):<br>
ts =3D rpm.ts()<br>
fdno=3Dos.open(rpmlocation,os.O_=
RDONLY)<br>
try:<br>
hdr =3D =
ts.hdrFromFdno(fdno)<br>
except:<br>
fdno=3Do=
s.open(rpmlocation,os.O_RDONLY)<br>
ts.setVS=
Flags(rpm._RPMVSF_NOSIGNATURES)<br>
hdr =3D =
ts.hdrFromFdno(fdno)<br>
os.close(fdno)<br>
ts.addInstall(hdr,(hdr,rpmlocati=
on),"u")<br>
cb=3Drpm_cb()<br>
ts.run(cb.callbackInstall,'')<br=
>
<br>
def remove(self,rpmname):<br>
ts =3D rpm.ts()<br>
mi =3D ts.dbMatch(rpm.RPMTAG_NAM=
E,rpmname)<br>
mi.pattern(rpm.RPMTAG_ARCH,rpm.R=
PMMIRE_DEFAULT,"i386")<br>
for idx in mi:<br>
instance=
=3D mi.instance()<br>
ts.addEr=
ase(instance)<br>
print ty=
pe(instance);<br>
<br>
<br>
<br>
if __name__=3D=3D"__main__":<br>
x=3Dmyrpm()<br>
<br>
# query a particular installed package<br>
#x.queryInstalledPackage(sys.argv[1])<br>
<br>
# query many installed packages using regex<br>
#x.queryInstalledPackages(sys.argv[1])<br>
<br>
# query a package that exists in rpmlocation, but is not=
installed<br>
#x.queryPackage(sys.argv[1])<br>
<br>
# install a package<br>
#x.install(sys.argv[1])<br>
<br>
# uninstall a package<br>
x.remove(sys.argv[1])<br>
<br><br>-- <br>*~:~*~:~*~:~*~:~*~:~*~:~*~:~*~:~*~:~*~:~*<br>Vedanta Barooah=
<br>YM! - vedanta2006<br>Skype - vedanta2006<br>Cell - 9886080415
------=_Part_129_19548687.1114083412040--
--===============1013417562==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Rpm-python-list mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/rpm-python-list
--===============1013417562==--