Hi, I need a script which makes the package compa??o 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 at 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 at rpm tiago]# -- [root at 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 at rpm tiago]# Att, -- Tiago Dias da Silva Administrador de Sistemas GNU/Linux HomePage: www.dias.eti.br Email: tiago at dias.eti.br "A mente que se abre a uma nova id?ia jamais voltar? ao seu tamanho original" (Albert Einstein) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.centos.org/pipermail/centos/attachments/20090126/d8c8cf7f/attachment-0003.html>
On Mon, 2009-01-26 at 08:26 -0200, Tiago Dias wrote:> Hi, > > I need a script which makes the package compa??o 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?Looks like you want to see what the update packages are without doing the updates, and without an internet connection. About 5 years ago I would have suggest running 'rpm --freshen --test packagename-from-update.out'. Today, I'd suggest saving even more time and just a local instance of mrepo. Configure your yum repos in /etc/yum.repos.d/ to point to the repository, and install the yum-updatesd package to find out what the new packages are... Why reinvent the wheel? ;) -I
> From: Tiago Dias <tux.tiago at gmail.com> > I need a script which makes the package compa??o 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.Just for the fun (and did not really test it): cat pkg.out | awk ' { p=$1; n=match(p, "-[[:digit:]]+"); print substr(p,1,n); } '| while read PKG; dogrep "$PKG[0-9]" update.out; done I will leave you as an exercise to sort the results by versions and head (or tail) to keep the highest one... ^_^ But, if your update.out file contained only the latest package (and not all different versions), that should work. JD