Linux Subscriptions
2008-03-20 23:55:05 UTC
I'm trying to use the
rpm --Uvh command
to apply certain security patches in an automated way to some boxes I have
that can't connect outside of the intranet (so I can't use up2date in the
normal way).
For the x86 version of the patch in question, Red Hat provides 4 rpms, which
I have in a directory:
# ls *.rpm
openssl-0.9.8b-8.3.el5_0.2.i386.rpm
openssl-devel-0.9.8b-8.3.el5_0.2.i386.rpm
openssl-0.9.8b-8.3.el5_0.2.i686.rpm
openssl-perl-0.9.8b-8.3.el5_0.2.i386.rpm
Normally, my script can execute
rpm -Uvh *.rpm
To apply the upgrade.
However, when I try rpm -Uvh --test in this case I get:
rpm -Uvh *.rpm
warning: package openssl = 0.9.8b-8.3.el5_0.2 was already added, skipping
openssl < 0.9.8b-8.3.el5_0.2
error: error reading from file openssl-0.9.8b-8.3.el5_0.2.i686.rpm
I guess this is because I'm adding openssl-0.9.8b-8.3.el5_0.2.i386.rpm, as
well as the i686 optimized version
openssl-0.9.8b-8.3.el5_0.2.i686.rpm(since they are both supplied by
RedHat).
[[An aside: Note that the error message is incorrect, it says that it's
skipping openssl < 0.9.8b-8.3.el5_0.2, when in fact both versions are equal
to 0.9.8b-8.3.el5_0.2.]]
Question: is there a way to tell rpm to choose the correct rpm corresponding
to the architecture of the machine (and/or the already-installed openssl
rpm's architecture). Or do I need to write a custom script to 'figure out'
which one(s) to keep?
Thanks!
Hopefully Helpful Notes:
OS: RHEL 5 32 bit
rpm version: RPM version 4.4.2
#uname -a:
Linux myhost 2.6.18-8.el5PAE #1 SMP Fri Jan 26 14:28:43 EST 2007 i686 i686
i386 GNU/Linux
# rpm -qa --qf "%{name} %{version} %{release} %{arch}\n" | grep "^openssl"
openssl097a 0.9.7a 9 i386
openssl-devel 0.9.8b 8.3.el5 i386
openssl 0.9.8b 8.3.el5 i686
openssl-perl 0.9.8b 8.3.el5 i386
rpm --Uvh command
to apply certain security patches in an automated way to some boxes I have
that can't connect outside of the intranet (so I can't use up2date in the
normal way).
For the x86 version of the patch in question, Red Hat provides 4 rpms, which
I have in a directory:
# ls *.rpm
openssl-0.9.8b-8.3.el5_0.2.i386.rpm
openssl-devel-0.9.8b-8.3.el5_0.2.i386.rpm
openssl-0.9.8b-8.3.el5_0.2.i686.rpm
openssl-perl-0.9.8b-8.3.el5_0.2.i386.rpm
Normally, my script can execute
rpm -Uvh *.rpm
To apply the upgrade.
However, when I try rpm -Uvh --test in this case I get:
rpm -Uvh *.rpm
warning: package openssl = 0.9.8b-8.3.el5_0.2 was already added, skipping
openssl < 0.9.8b-8.3.el5_0.2
error: error reading from file openssl-0.9.8b-8.3.el5_0.2.i686.rpm
I guess this is because I'm adding openssl-0.9.8b-8.3.el5_0.2.i386.rpm, as
well as the i686 optimized version
openssl-0.9.8b-8.3.el5_0.2.i686.rpm(since they are both supplied by
RedHat).
[[An aside: Note that the error message is incorrect, it says that it's
skipping openssl < 0.9.8b-8.3.el5_0.2, when in fact both versions are equal
to 0.9.8b-8.3.el5_0.2.]]
Question: is there a way to tell rpm to choose the correct rpm corresponding
to the architecture of the machine (and/or the already-installed openssl
rpm's architecture). Or do I need to write a custom script to 'figure out'
which one(s) to keep?
Thanks!
Hopefully Helpful Notes:
OS: RHEL 5 32 bit
rpm version: RPM version 4.4.2
#uname -a:
Linux myhost 2.6.18-8.el5PAE #1 SMP Fri Jan 26 14:28:43 EST 2007 i686 i686
i386 GNU/Linux
# rpm -qa --qf "%{name} %{version} %{release} %{arch}\n" | grep "^openssl"
openssl097a 0.9.7a 9 i386
openssl-devel 0.9.8b 8.3.el5 i386
openssl 0.9.8b 8.3.el5 i686
openssl-perl 0.9.8b 8.3.el5 i386