Shell Script - Compare packages. rpm

Tiago Dias <[email protected]> Mon, 26 Jan 2009 08:35:40 -0200
Newsgroups gmane.linux.redhat.devel
Message-ID <[email protected]>
--===============1203942072==
Content-Type: multipart/alternative; boundary=0016e65097fed20e4d0461604c91

--0016e65097fed20e4d0461604c91
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi,

         I need a script which makes the package compa=E7=E3o rpm's through=
 two
text files ...

         Since a file is the output of the command *rpm-qa > pkg.out *

         And the second file is a list of several packages rpm's, multiple
versions and architectures.

         My idea is to compare a package *x* file pkg.out with several
packages *y* of the file update.out and know whether a package and has a
larger version of the package *x* installed and with that I return I have a
package to be updated.

        Does anyone can help me do this comparison?

        OBS.: The servers do not have access to internet.

        Here's an example of the packages described in the files:

[root@rpm tiago]# tail -n12 pkg.out
glibc-devel-2.3.4-2.39
libuser-devel-0.52.5-1.el4.1
libmudflap-4.1.2-14.EL4
iiimf-libs-devel-12.1-13.EL.6
xorg-x11-devel-6.8.2-1.EL.33
lam-libs-7.1.2-8
libdbi-0.6.5-10.RHEL4.1
unixODBC-kde-2.2.11-1.RHEL4.1
perl-Compress-Zlib-1.42-1.el4
MySQL-python-1.2.1_p2-1.el4.1
nmap-3.70-1
sysstat-5.0.5-16.rhel4
[root@rpm tiago]#

--

[root@rpm tiago]# cat update.out
glibc-devel-2.3.4-2.41.i386.rpm
glibc-devel-2.3.4-2.39.i386.rpm
glibc-devel-2.3.4-2.36.i386.rpm
glibc-devel-2.3.4-2.25.i386.rpm
glibc-devel-2.3.4-2.19.i386.rpm
glibc-devel-2.3.4-2.13.i386.rpm
glibc-devel-2.3.4-2.9.i386.rpm
glibc-devel-2.3.4-2.i386.rpm
libuser-devel-0.52.5-1.el4.3.i386.rpm
libuser-devel-0.52.5-1.el4.1.i386.rpm
libuser-devel-0.52.5-1.i386.rpm
libmudflap-4.1.2-42.EL4.i386.rpm
libmudflap-4.1.2-14.EL4.i386.rpm
libmudflap-4.1.1-53.EL4.i386.rpm
libmudflap-4.1.0-18.EL4.3.i386.rpm
libmudflap-4.1.0-18.EL4.i386.rpm
libmudflap-4.0.2-14.EL4.i386.rpm
libmudflap-4.0.1-4.EL4.2.i386.rpm
libmudflap-4.0.0-0.14.EL4.i386.rpm
xorg-x11-devel-6.8.2-1.EL.52.i386.rpm
xorg-x11-devel-6.8.2-1.EL.33.0.4.i386.rpm
xorg-x11-devel-6.8.2-1.EL.33.0.2.i386.rpm
xorg-x11-devel-6.8.2-1.EL.33.0.1.i386.rpm
xorg-x11-devel-6.8.2-1.EL.33.i386.rpm
xorg-x11-devel-6.8.2-1.EL.31.i386.rpm
xorg-x11-devel-6.8.2-1.EL.19.i386.rpm
xorg-x11-devel-6.8.2-1.EL.18.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.37.7.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.37.5.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.37.2.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.37.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.36.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.25.1.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.25.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.20.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.16.i386.rpm
xorg-x11-devel-6.8.2-1.EL.13.6.i386.rpm
xorg-x11-devel-6.8.1-23.EL.i386.rpm
lam-libs-7.1.2-15.el4:2.i386.rpm
lam-libs-7.1.2-8:2.i386.rpm
MySQL-python-1.2.1_p2-1.el4.1.i386.rpm
MySQL-python-1.0.0-1.RHEL4.1.i386.rpm
sysstat-5.0.5-19.el4.i386.rpm
sysstat-5.0.5-16.rhel4.i386.rpm
sysstat-5.0.5-15.0.1.el4.i386.rpm
sysstat-5.0.5-14.rhel4.i386.rpm
sysstat-5.0.5-11.rhel4.i386.rpm
sysstat-5.0.5-7.rhel4.i386.rpm
sysstat-5.0.5-1.i386.rpm
nmap-3.70-1:2.i386.rpm
[root@rpm tiago]#

Att,


--=20
Tiago Dias da Silva
Administrador de Sistemas GNU/Linux
HomePage: www.dias.eti.br
Email: [email protected]

"A mente que se abre a uma nova id=E9ia jamais voltar=E1 ao seu tamanho
original"

(Albert Einstein)

--0016e65097fed20e4d0461604c91
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I need a script=
 which makes the package compa=E7=E3o rpm&#39;s through two text files ...=
=20
<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Since a file is the ou=
tput of the command <b>rpm-qa &gt; pkg.out=20
</b><br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; And the second file is=
 a list of several packages rpm&#39;s, multiple versions and architectures.=
=20
<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; My idea is to compare =
a package <b><i>x</i></b> file pkg.out with several packages <i><b>y</b></i=
> of the file update.out and know whether a package and has
a larger version of the package <i><b>x</b></i> installed and with that I r=
eturn I have a package to be updated. <br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Does anyone can help me do t=
his comparison?=20
<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBS.: The servers do not hav=
e access to internet.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Her=
e&#39;s an example of the packages described in the files:<br clear=3D"all"=
><br>[root@rpm tiago]# tail -n12 pkg.out<br>glibc-devel-2.3.4-2.39<br>

libuser-devel-0.52.5-1.el4.1<br>
libmudflap-4.1.2-14.EL4<br>iiimf-libs-devel-12.1-13.EL.6<br>xorg-x11-devel-=
6.8.2-1.EL.33<br>lam-libs-7.1.2-8<br>libdbi-0.6.5-10.RHEL4.1<br>unixODBC-kd=
e-2.2.11-1.RHEL4.1<br>perl-Compress-Zlib-1.42-1.el4<br>MySQL-python-1.2.1_p=
2-1.el4.1<br>


nmap-3.70-1<br>sysstat-5.0.5-16.rhel4<br>[root@rpm tiago]#<br><br>--<br><br=
>[root@rpm tiago]# cat update.out<br>glibc-devel-2.3.4-2.41.i386.rpm<br>gli=
bc-devel-2.3.4-2.39.i386.<div>rpm<br>glibc-devel-2.3.4-2.36.i386.rpm<br>

glibc-devel-2.3.4-2.25.i386.rpm<br>
glibc-devel-2.3.4-2.19.i386.rpm<br>glibc-devel-2.3.4-2.13.i386.rpm<br>glibc=
-devel-2.3.4-2.9.i386.rpm<br>glibc-devel-2.3.4-2.i386.rpm<br>libuser-devel-=
0.52.5-1.el4.3.i386.rpm<br>libuser-devel-0.52.5-1.el4.1.i386.rpm<br>libuser=
-devel-0.52.5-1.i386.rpm<br>


libmudflap-4.1.2-42.EL4.i386.rpm<br>libmudflap-4.1.2-14.EL4.i386.rpm<br>lib=
mudflap-4.1.1-53.EL4.i386.rpm<br>libmudflap-4.1.0-18.EL4.3.i386.rpm<br>libm=
udflap-4.1.0-18.EL4.i386.rpm<br>libmudflap-4.0.2-14.EL4.i386.rpm<br>libmudf=
lap-4.0.1-4.EL4.2.i386.rpm<br>


libmudflap-4.0.0-0.14.EL4.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.52.i386.rpm=
<br>xorg-x11-devel-6.8.2-1.EL.33.0.4.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.=
33.0.2.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.33.0.1.i386.rpm<br>xorg-x11-de=
vel-6.8.2-1.EL.33.i386.rpm<br>


xorg-x11-devel-6.8.2-1.EL.31.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.19.i386.=
rpm<br>xorg-x11-devel-6.8.2-1.EL.18.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.1=
3.37.7.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.13.37.5.i386.rpm<br>xorg-x11-d=
evel-6.8.2-1.EL.13.37.2.i386.rpm<br>


xorg-x11-devel-6.8.2-1.EL.13.37.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.13.36=
.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.13.25.1.i386.rpm<br>xorg-x11-devel-6=
.8.2-1.EL.13.25.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.13.20.i386.rpm<br>


xorg-x11-devel-6.8.2-1.EL.13.16.i386.rpm<br>xorg-x11-devel-6.8.2-1.EL.13.6.=
i386.rpm<br>xorg-x11-devel-6.8.1-23.EL.i386.rpm<br>lam-libs-7.1.2-15.el4:2.=
i386.rpm<br>lam-libs-7.1.2-8:2.i386.rpm<br>MySQL-python-1.2.1_p2-1.el4.1.i3=
86.rpm<br>


MySQL-python-1.0.0-1.RHEL4.1.i386.rpm<br>sysstat-5.0.5-19.el4.i386.rpm<br>s=
ysstat-5.0.5-16.rhel4.i386.rpm<br>sysstat-5.0.5-15.0.1.el4.i386.rpm<br>syss=
tat-5.0.5-14.rhel4.i386.rpm<br>sysstat-5.0.5-11.rhel4.i386.rpm<br>sysstat-5=
.0.5-7.rhel4.i386.rpm<br>


sysstat-5.0.5-1.i386.rpm<br>nmap-3.70-1:2.i386.rpm<br>[root@rpm tiago]#<br>=
<br>Att,</div><br clear=3D"all"><br>-- <br>Tiago Dias da Silva<br>Administr=
ador de Sistemas GNU/Linux<br>HomePage: <a href=3D"http://www.dias.eti.br">=
www.dias.eti.br</a><br>
Email: <a href=3D"mailto:[email protected]">[email protected]</a><br> &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; <br>&quot;A mente que se abre a uma nova id=
=E9ia jamais voltar=E1 ao seu tamanho original&quot; <br><br>(Albert Einste=
in)<br>

--0016e65097fed20e4d0461604c91--


--===============1203942072==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Redhat-devel-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/redhat-devel-list
--===============1203942072==--